> ## Documentation Index
> Fetch the complete documentation index at: https://www.towbar.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Discord

> Register one or more Discord webhooks and choose events for each.

Create an incoming webhook for each Discord channel or use case that needs separate subscriptions. Discord gives each webhook an ID and token in a URL shaped like `https://discord.com/api/webhooks/<id>/<token>`. Store those two parts separately in Towbar's protected YAML file; the token is not shown in the dashboard.

```yaml title="/etc/towbar/towbar.yml" theme={"system"}
notifications:
  enabled: true
  providers:
    discord:
      - webhookId: "123456789012345678"
        webhookToken: "<webhook-token>"
      - webhookId: "234567890123456789"
        webhookToken: "<second-token>"
  routes: []
```

Run `sudo towbar config validate` and `sudo towbar restart`. Open **Manage → Notifications → Discord**. Towbar shows one row per webhook ID. Choose **Deployments**, **Backup & Restore**, and **Alerts & Incidents** independently for each row. New webhooks start with no subscriptions, so select a category before expecting operational events.

## Verify and maintain

Use **Test** to send a sample notification after confirmation. Check the intended Discord channel and the [delivery result](/docs/integrations/notifications#delivery-history). If delivery fails, check that the webhook still exists, its ID and token remain paired, and the target channel permits webhook posts. Adding or removing a pair requires editing YAML, validating, and restarting Towbar. Rotate an exposed webhook in Discord and update its token in Towbar; preserve the ID only when Discord preserves it.

Additional Discord destinations for one app or resource can be declared in its [manifest](/docs/deployment-manifest#route-notifications-for-one-app-or-resource). Do not put webhook tokens in that manifest.

<div className="towbar-doc-screenshot">
  <div className="towbar-product-light">
    <img src="https://mintcdn.com/avgeek/EgLPXnoUAEgajpP9/assets/release-v2/discord-notifications-light.jpg?fit=max&auto=format&n=EgLPXnoUAEgajpP9&q=85&s=aa2dbbb9deb69c934918bee1fafad912" alt="Discord webhook IDs and category subscriptions in Towbar." width="2560" height="1440" loading="lazy" data-path="assets/release-v2/discord-notifications-light.jpg" />
  </div>

  <div className="towbar-product-dark">
    <img src="https://mintcdn.com/avgeek/EgLPXnoUAEgajpP9/assets/release-v2/discord-notifications-dark.jpg?fit=max&auto=format&n=EgLPXnoUAEgajpP9&q=85&s=5877f9a771a93bc39e76d1789d706253" alt="Discord webhook IDs and category subscriptions in Towbar." width="2560" height="1440" loading="lazy" data-path="assets/release-v2/discord-notifications-dark.jpg" />
  </div>

  <p>Each configured Discord webhook ID has its own category subscriptions.</p>
</div>
