Webhook Relay

Let an external service send updates through your bot using a secret webhook URL.

Pro

Let an external service send updates through your bot using a secret webhook URL.

Install Webhook Relay from your bot’s Modules tab. Configure the settings below, save, and deploy the bot to apply changes. See module setup for shared setup steps.

Set up and use

  1. Install and enable Webhook Relay on the bot that should send the messages.
  2. Choose Post to channel in its module settings, with an optional role mention. For multiple servers, configure the destination on each server’s settings page.
  3. Save and deploy the bot. Open the bot dashboard’s Webhook section and copy its secret URL.
  4. Configure your sending service to POST the payload below to that URL with Content-Type: application/json.

The URL selects the bot; the module/server settings select its Discord destinations. There is no bot or channel selector in the incoming payload. Anyone who has the URL can submit notifications. Keep it private; rotate it in the dashboard if exposed and update your sender with the new URL.

Payload

{
  "id": "release-42",
  "title": "New Update Released: 42",
  "description": "A fresh update is live!\n\n**Patch notes**\n- Improve onboarding\n- Fix command permissions",
  "url": "https://example.com/updates/42"
}
FieldUse
idUnique event ID, up to 128 characters. Reuse it when retrying the same event.
titleRequired, 1–256 characters.
descriptionOptional, up to 60,000 characters. Long notes are split into messages.
urlOptional public link to more details.

An Idempotency-Key header can supply the event ID instead. Without an ID, identical normalized payloads are treated as duplicates.

Delivery and troubleshooting

ResponseMeaning
202Accepted for delivery; it may not be in Discord yet.
400Invalid payload.
403The bot owner needs Pro.
404The secret URL is unknown or disabled.
413Request body exceeds 128 KiB.
429Rate or queue limit reached; retry after 60 seconds with the same event ID.

Up to 30 events per minute and 100 pending events per bot are accepted. Keep the bot running: accepted events wait for it and expire after 24 hours. Failed delivery is retried; disabling the module cancels pending events. Check recent delivery status and bot logs for channel or permission errors. After fixing a terminal failure, submit a new event ID.

Duplicate protection normally lasts up to seven days, subject to history limits; a rare retry can still produce a duplicate Discord message.

Connecting a release workflow

Configure your deployment service to send an event only after a successful deployment. Give each release a stable ID and put the commit titles in the description. For a silent release, skip that notification step. This is a generic JSON relay: providers must send this payload or transform their event into it. Native GitHub, Twitch, or payment-provider webhook formats and signatures are not handled automatically.

This module delivers notifications automatically and does not add a graph action.

Settings reference

SettingDefaultDetails
Post to channel (required)Choose a Discord channel.
Mention role on new eventChoose a Discord role.

Discord setup and troubleshooting

BotDen prepares the invite permission request automatically from your enabled modules and saved commands/events. Use the invite generated by BotDen.

If the feature does not work after saving and deploying, see troubleshooting for intents, existing-server permissions, channel access, and role order.