Notification delivery

Embed
Preview of the card
<a href="https://forumulate.com/p/watchtower/docs/notification-delivery"><img src="https://forumulate.com/api/public/orgs/watchtower/spaces/docs/pages/b403e96f-0173-4df5-9e5f-fab8a0915bf6/social-card.svg?v=3e7ae33eec8b" alt="Notification delivery" width="600" height="315"></a>

The Go notifier (go/notifier) delivers the notification_outbox written by the router. Delivery is at-least-once; webhook receivers dedupe on X-Watchtower-Idempotency-Key. Webhooks are always HMAC-signed (X-Watchtower-Signature); the API generates the signing secret when none is supplied and shows it once.

notification_failed alerts

When a message ends failed (5th failed attempt or a permanent error), the notifier opens one alert per receiver: alertname=notification_failed, source=notifier, receiver_id, project_id, severity high. The next successful delivery to that receiver resolves it in the same transaction as the delivery is recorded.

The alert reaches people only through the routing tree: add a route matching source=notifier (for example to the team that owns the receivers). The router has no project-wide default receiver, so with no matching route the alert is visible in the alerts list but is not sent anywhere. A fallback to a default receiver is not built.

Folded messages

At most one message per minute per (receiver, route, group) is sent; the rest wait in state folded and are settled together with the digest that reports their count.

Updated