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.
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 URLSecret Discord webhook URL for the target channel.
Message textDiscord content template with FastHook tokens such as {{event_id}} and {{payload.text}}.
Username templateOptional sender display name override.
Avatar URL templateOptional sender avatar override.
Embeds JSONOptional Discord embed payload after template rendering.
Allowed mentionsControls whether rendered @mentions can ping users, roles, or everyone.
Max delivery rateBuilt-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_urlRequired Discord execute webhook URL from the target channel integration settings.
config.content_templateDiscord message content template. Defaults to FastHook event {{event_id}} plus {{payload}}.
config.username_templateOptional per-message webhook username template.
config.avatar_url_templateOptional per-message webhook avatar URL template.
config.embeds_templateOptional Discord embed JSON object or array. FastHook renders template tokens before parsing JSON.
config.allowed_mentions_parseOptional array of mention categories: roles, users, everyone. Empty prevents mention pings.
config.rate_limitBuilt-in delivery pacing for Discord webhook messages. Discord webhook destinations are fixed at 1.
config.rate_limit_periodRate-limit period. Discord webhook destinations are fixed at second.
{
"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"
}
}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.
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
- In Discord, open the target channel settings and create a webhook.
- Copy the webhook URL and keep it secret.
- Create a FastHook destination and choose DISCORD_WEBHOOK as the destination type.
- Set message text, optional embeds JSON, and allowed mentions policy.
- 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.