Integrations

Discord Integration

Deliver MonoDuty incident lifecycle updates to a Discord channel as a rich embed with durable retries and per-attempt delivery evidence.

Discord integration

MonoDuty delivers every incident action to a Discord channel as a rich embed carrying the incident title, latest detail, a link back to the incident, and inline Status and Severity fields.

Connect a channel

  1. In Discord, open Channel Settings → Integrations → Webhooks and create a webhook for the destination channel.
  2. In MonoDuty, open Organization → Integrations, choose Discord, and paste the URL.
  3. Trigger a controlled incident and confirm the embed, the link, and the delivery record.

Only HTTPS webhook URLs on discord.com or discordapp.com matching the /api/webhooks/<id>/<token> shape are accepted. A URL carrying credentials, a custom port, a query string, or a fragment is rejected.

Delivery guarantees

Each incident action reserves exactly one delivery under an idempotency key, written in the same transaction as the action itself. Repeated processing reuses that reservation, so a retry or worker restart cannot post the same update twice. Every attempt is recorded individually with its outcome. A delivery that exhausts its retries is retained rather than discarded and can be requeued by an admin against an allowlisted reason code, which is written to the audit log.

This channel is one-way. Acknowledging, investigating, and resolving happen in MonoDuty, through the customer API, or through the phone and SMS response paths. A chat message is not an alerting channel: it keeps the responding team in sync, while email, SMS, and voice remain the routes that reach a person on call.

Availability

Included on Pro and Business. A workspace may configure one integration per provider, and managing it requires a Billing Owner or Account Admin with a fresh step-up. The webhook URL is encrypted at rest and is never returned by the API. Setting an integration to DISABLED stops delivery while keeping its history.