Destination type

Discord Webhook Destination

Use Discord webhook destinations when routed events should become channel messages for alerts, community operations, release notes, or lightweight incident feeds.

DISCORD_WEBHOOKDiscord execute webhook APIPOSTCommunication
Discord Webhook destination delivery flowFastHook routes accepted events through a connection to a Discord Webhook destination and stores delivery attempt evidence.AcceptedRequestsource verifiedConnectionRoute branchfilters and transformsretry policyDISCORD_WEBHOOKDiscord WebhookDiscord execute webhook APIPOSTAttemptEvidencestatus + bodyDestination config owns target, auth, method, rate limit, disabled state, and delivery attempt evidence.
For HTTP destinations, FastHook sends the configured method to the receiver URL and stores response status, body, latency, and retry evidence.

When to use this destination type

Choose DISCORD_WEBHOOK when the receiver target is Discord execute webhook API. Destinations are outbound delivery targets: they do not decide whether a source request should be accepted, and they do not own connection filters or transformations. They own where the final delivery goes and how FastHook should authenticate, pace, disable, and inspect that delivery.

A destination can be reused by multiple connections when several source branches should feed the same receiver. Reuse keeps receiver capacity, credentials, and attempt evidence attached to one destination id.

FastHook dashboard fields

In the dashboard, create a destination, set Destination Type to DISCORD_WEBHOOK, then fill the fields below.

Webhook URL

Secret Discord webhook URL for the target channel.

Message text

Discord content template with FastHook tokens such as {{event_id}} and {{payload.text}}.

Username template

Optional sender display name override.

Avatar URL template

Optional sender avatar override.

Embeds JSON

Optional Discord embed payload after template rendering.

Allowed mentions

Controls whether rendered @mentions can ping users, roles, or everyone.

Max delivery rate

Built-in one message per second pacing.

API config fields

The REST API stores destination-specific behavior under config. Use PATCH for focused edits and PUT only when your request contains the full config you want to keep.

config.webhook_url

Required Discord execute webhook URL from the target channel integration settings.

config.content_template

Discord message content template. Defaults to FastHook event {{event_id}} plus {{payload}}.

config.username_template

Optional per-message webhook username template.

config.avatar_url_template

Optional per-message webhook avatar URL template.

config.embeds_template

Optional Discord embed JSON object or array. FastHook renders template tokens before parsing JSON.

config.allowed_mentions_parse

Optional array of mention categories: roles, users, everyone. Empty prevents mention pings.

config.rate_limit

Built-in delivery pacing for Discord webhook messages. Discord webhook destinations are fixed at 1.

config.rate_limit_period

Rate-limit period. Discord webhook destinations are fixed at second.

Discord Webhook destination config
{
  "name": "orders-api",
  "type": "DISCORD_WEBHOOK",
  "config": {
    "url": "https://api.example.com/webhooks/fasthook",
    "http_method": "POST",
    "auth_type": "FASTHOOK_SIGNATURE",
    "auth": {},
    "rate_limit": 10,
    "rate_limit_period": "second"
  }
}
Create Discord Webhook destination with cURL
curl -X POST "https://api.fasthook.io/v1/destinations" \
  -H "Authorization: Bearer $FASTHOOK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "orders-api",
  "type": "DISCORD_WEBHOOK",
  "config": {
    "url": "https://api.example.com/webhooks/fasthook",
    "http_method": "POST",
    "auth_type": "FASTHOOK_SIGNATURE",
    "auth": {},
    "rate_limit": 10,
    "rate_limit_period": "second"
  }
}'

Authentication

Destination authentication is outbound. It helps the receiver trust or accept FastHook delivery, and it is separate from source authentication that verifies the original webhook producer.

  • Discord webhook URL

HTTP methods and rate limit

This destination type uses the methods below for delivery attempts. Rate limits apply at the destination boundary, so every connection that targets the same destination shares that capacity.

POST

Rate limit: Locked to 1 request per second.

Delivery behavior

  • FastHook renders Discord templates per delivery and calls Discord's execute webhook endpoint with wait=true.
  • The webhook URL acts as the credential. Keep it secret and rotate it in Discord if exposed.
  • Embeds templates must render to a JSON object or an array of embed objects.
  • Allowed mentions default to an empty parse list so rendered @mentions do not ping recipients unexpectedly.
  • Discord webhook destinations are locked to 1 request per second to avoid message bursts.

Setup checklist

  1. In Discord, open the target channel settings and create a webhook.
  2. Copy the webhook URL and keep it secret.
  3. Create a FastHook destination and choose DISCORD_WEBHOOK as the destination type.
  4. Set message text, optional embeds JSON, and allowed mentions policy.
  5. Connect only Discord-worthy events through filters before routing to the destination.

Troubleshooting

Attempts fail with 401, 403, or 404.

Confirm the webhook still exists, belongs to the target channel, and was copied completely.

Discord rejects embeds.

Render the template with a sample event and validate that embeds_template is a JSON object or array accepted by Discord.

Messages post but mentions do not ping.

Set allowed_mentions_parse to users, roles, or everyone only when intentional. Empty is the safer default.

Related docs