Skip to content

Discord’s incoming webhooks accept a JSON body and post it as a message. That makes a Discord webhook URL a perfectly ordinary destination — which means any source you already have can also notify a channel.

  • Manage Webhooks permission on the target Discord channel.
  • A source that is already receiving events.

In Discord: channel Edit Channel → Integrations → Webhooks → New Webhook. Name it, pick the channel, and Copy Webhook URL:

https://discord.com/api/webhooks/<id>/<token>

Treat it as a secret — anyone with the URL can post to the channel. To check the URL works and shape an embed before wiring it up here, use the free Discord webhook tester.

In Webhooker, open the source → Destinations → Add destination → Create new:

  • Namediscord-alerts.
  • URL — the Discord webhook URL.
  • Response timeout — 10 seconds.
  • Sign outbound requests — leave off. Discord will not verify a signature, and the URL is the credential.

3. Make the body something Discord renders

Section titled “3. Make the body something Discord renders”

Discord renders the content field of the JSON body (and embeds). A raw provider payload has no content, so add one with a transformation: Edit routing on the row → Merge body fields:

{ "content": "New event from {{source.name}} — id {{event.id}}" }

The provider’s own fields stay in the body; Discord renders content and ignores the rest.

For a per-event summary, template from what the payload actually contains — the placeholders available are {{event.id}}, {{source.name}} and {{timestamp}}.

A channel that gets every event becomes noise. Filter to the ones worth interrupting people for:

{
"operator": "or",
"rules": [
{ "path": "body.type", "op": "eq", "value": "invoice.payment_failed" },
{ "path": "body.type", "op": "contains", "value": "dispute" }
]
}

Send a test event from the provider, or resend one from the event log. A message appears in the channel, and the delivery row shows succeeded — Discord answers 204, which counts as success.

SymptomCause
Delivery failed with 400The body has no content or embeds that Discord can render. Check the merge rule.
Delivery failed with 404The webhook was deleted in Discord. Create a new one and update the destination URL.
Deliveries exhausted, 429 in the attemptsDiscord rate-limits webhooks. Tighten the filter or give this gateway a longer retry schedule.
Messages are unreadable JSONYou are posting the provider payload as content. Template a short human sentence instead.