Skip to content

Discord integration

The Discord integration uses an incoming webhook URL from a Discord channel. Site Qwality posts embeds with a colored bar (red when a monitor goes down, green when it recovers) and named fields: Monitor, Status and URL on every alert, Reason when the check reported one, and Started and Resolved on a recovery. The embed has no link back to Site Qwality.

  1. In Discord, open the target channel’s settings → Integrations → Webhooks → New Webhook.

  2. Name it (for example Site Qwality Alerts) and copy the Webhook URL.

  3. In Site Qwality, go to Manage → Integrations and click the Discord card. Give the integration a name, paste the URL into Webhook URL and click Add integration.

Or through the API, with POST /integration/discord:

Terminal window
curl -X POST https://api.siteqwality.com/integration/discord \
-H "Authorization: Bearer $SITEQWALITY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"friendly_name": "Discord ops",
"url": "https://discord.com/api/webhooks/<id>/<token>"
}'

The URL must be a Discord webhook URL (https://discord.com/api/webhooks/...).

Right after you add the integration, the dashboard offers to do this for you: choose a group or create one, choose which monitors alert that group (the ones that already do, every monitor, or ones you pick), then send a test. If you skipped it, Route alerts on the integration’s card opens the same step. To do it by hand:

  1. Go to Respond → Notifications. Click a group’s name to open it, or click Add group to make a new one.

  2. Under Notifications, click Add notification method. Set Notification type to Discord and choose this integration under Integration.

  3. Click Done editing, then Save changes (Create group for a new group).

Through the API, create the channel with POST /notification:

Terminal window
curl -X POST https://api.siteqwality.com/notification \
-H "Authorization: Bearer $SITEQWALITY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"notification_group_id": "<your-group-id>",
"type": "discord",
"details": {
"discord_integration_id": "<discord-integration-id>"
}
}'
  • One integration per Discord channel. Create multiple integrations for multiple destinations.
  • A failed send is not retried later, so a send that Discord rate-limits can fail. See delivery guarantees.
  • Heartbeat (cron) monitors and DNS record changes do not post to Discord. See the coverage table.
  • Webhook URLs are secrets, since anyone with the URL can post to the channel. If one leaks, delete the webhook in Discord, add a new integration with a new URL and move your channels to it, then delete the old integration.