A Discord webhook is a channel-specific URL that lets an outside service post messages into a Discord channel. There is no bot to install and no OAuth flow: whoever has the URL can send a message to that channel, and nothing else.
How to create one
- Open the Discord channel you want to post to and click Edit Channel (the gear icon)
- Go to Integrations, then Webhooks
- Click New Webhook, optionally rename it, and confirm the channel
- Click Copy Webhook URL
You need the Manage Webhooks permission on the server. The URL looks like https://discord.com/api/webhooks/{id}/{token}. For a walkthrough with Yeethook, see how to create a Discord webhook.
What a webhook message can contain
A webhook message can carry plain text and rich embeds. An embed has a title, description, a color bar, field rows, an image, a footer, and a timestamp. The message can also set allowed_mentions, which decides whether @everyone, @here, role, or user mentions in the text actually notify anyone.
Keep the URL secret
The token in the URL is the only credential. Anyone who has it can post to your channel, so treat it like a password: don't commit it to a repository or paste it in a public channel. If it leaks, delete the webhook in Discord and create a new one. See Discord webhook security.
How Yeethook uses Discord webhooks
When you add a Discord channel in Yeethook, you paste the webhook URL and link the channel to your apps. Yeethook then:
- Posts every event as a rich embed — Headline, severity color, app name and bundle ID, fields like build number, version, tester, and device, plus screenshots, tester comments, and links to Yeethook and App Store Connect
- Disables mentions — Tester feedback that contains @everyone never pings your server
- Encrypts the URL at rest — The webhook URL is stored encrypted, like every other channel credential
- Handles failures — Rate-limited messages are retried, and if the webhook is deleted in Discord, Yeethook deactivates the channel instead of retrying forever
Discord and Slack channels share the same channel allowance on every plan, and you can route different apps and event types to either.