Configure outbound webhooks
Subscribe an HTTPS endpoint to status, SLO, and agent events.
Outbound webhooks deliver Observer events to an HTTPS endpoint as JSON. They are the integration path for paging tools, ticketing systems, and chat notifications.
Available event types
| Type | Trigger |
|---|---|
metric.status_changed | A metric's status flips after dwell gating. |
metric.no_data | A metric enters no_data because the agent could not collect a sample. |
page.status_changed | A status page's rolled-up status flips. |
slo.burn_started | An SLO crosses below its target. |
slo.burn_resolved | An SLO recovers. |
agent.offline | An agent misses its expected heartbeat window. |
Configure a subscription
Create the subscription
In the console, open Webhooks, then New subscription. Configure:
- Endpoint URL: an HTTPS endpoint that accepts POST requests with a JSON body. HTTP is rejected.
- Signing secret: optional shared secret. When set, Observer
signs every delivery with HMAC-SHA-256 in the
X-Observer-Signatureheader. - Event types: tick the events the endpoint should receive.
Save the subscription. The first delivery confirms reachability.
Verify deliveries
The subscription detail page lists recent deliveries with their HTTP response code and round-trip time. Successful deliveries return a 2xx response within the timeout window. Failed deliveries are retried with exponential backoff.
Verify the signature (recommended)
When a signing secret is set, every delivery includes the header:
X-Observer-Signature: sha256=<hex>Compute
HMAC-SHA-256(secret, raw_body)on the receiving side and compare against the header value. Reject deliveries whose signatures do not match.
Quotas
Webhook subscription quotas vary by plan. Endpoints over the cap on a downgrade remain configured; new endpoints are blocked until the plan is upgraded or an existing endpoint is removed.
Payload reference
See the webhook payload reference for the JSON shape of each event type.