ProductNotifications
Reaches the right people, where they already are.
One status change, rendered natively for Slack, Teams, PagerDuty, Jira and six more. Recoveries always get through.
One event, every channel
Routed once, then rendered natively for each destination.
Every channel
One incident, as each channel receives it.
Step through an outage on Checkout API. Each preview is drawn from the exact body Observer sends, built by the same code that delivers it.
What each channel did at this step
Slack5 deliveries
#incidents
ObserverAPP14:02
🟠 Metric "Checkout API" is degraded
Was healthy. Value: 2.4.
Checkout API · severity: major · degraded
View metricObserverAPP14:06
🔴 Metric "Checkout API" is unhealthy
Was degraded. Value: 7.9.
Checkout API · severity: critical · unhealthy
View metricObserverAPP14:09
🔴 Investigating: Checkout payments failing
Acme Cloud · severity: major · investigating
View incidentObserverAPP14:31
✅ Metric "Checkout API" recovered
Was unhealthy. Value: 0.3.
Checkout API · healthy
View metricObserverAPP14:34
✅ Resolved: Checkout payments failing
Acme Cloud · severity: major · resolved
View incident
Routing
Who hears what, per channel.
Each channel picks its events and its bar. Recoveries and resolves pass every filter, so nothing a channel opened is left open.
What this channel receives
- Metric "Checkout API" is degradedFilteredmetric.status_changed · major · degradedbelow this channel's bar
- Metric "Checkout API" is unhealthyDeliveredmetric.status_changed · critical · unhealthy
- Checkout payments failingFilteredincident.published · major · investigatingbelow this channel's bar
- Metric "Checkout API" recoveredDeliveredmetric.status_changed · no severity · healthyrecoveries pass every filter
- Checkout payments failingDeliveredincident.resolved · major · resolvedrecoveries pass every filter
With critical only, the degraded flip and the major incident stay quiet, while the recovery and the resolve still arrive.
Snooze
Mute a channel for 1, 8 or 24 hours.
A snoozed channel hears nothing until it wakes. Clear the snooze any time from Alerts.
Maintenance
Quiet during planned work.
Metric alerts are held while the metric's pages are inside an active maintenance window, and logged as skipped. A channel can opt out.
Bursts
A burst arrives as one message.
Chat and email channels collect metric alerts for 60 seconds and send one message with the latest state of each metric. When an agent stops reporting, its metrics' no-data pings fold into one line. On-call channels keep one alert per metric.
Digest
Or batch it into one summary a day.
A channel set to digest gets one message a day listing what it would have received.
Delivery
Retried, paced, and on the record.
A provider having a bad minute doesn't lose an alert, and a bad config doesn't retry forever.
Retries
Up to five attempts.
Timeouts, rate limits and 5xx responses retry after 10, 20, 40 and 80 seconds. A 4xx or a broken config goes straight to the dead-letter queue.
Pacing
Inside each provider's limits.
Slack and Teams get one message a second, Discord two, Telegram thirty, so a busy hour doesn't get a webhook throttled.
Once
Each event reaches each channel once.
Deliveries are keyed on event, destination and channel, so a replayed job never posts twice.
On the record
Every attempt, with its payload.
Open a row to see exactly what was sent and what came back. Replay a failed delivery, or send a test from Alerts.
The delivery log, as it appears under Alerts
Latest alerts
What was sent, where, and whether it arrived. Open a row for the payload.
| Status | Alert | When |
|---|---|---|
| Delivered | Checkout payments failingEmail | |
| Delivered | Checkout payments failingJira | |
| Delivered | Checkout payments failingPagerDuty | |
| Delivered | Metric "Checkout API" recoveredSlack | |
| Retrying | Metric "Checkout API" recoveredHTTP 503 · http_503Generic webhook | |
| Delivered | Metric "Checkout API" recoveredPagerDuty | |
| Failed | Metric "Checkout API" is unhealthyHTTP 404 · http_404: {"message": "Unknown Webhook", "code": 10015}Discord · a page | |
| Skipped | Metric "Search API" is unhealthyHeld during maintenanceEmail |
Subscribers
Your customers hear it from you.
Status page subscribers get each incident in your page's name, logo and colour, with a one-click unsubscribe. Every page also publishes RSS and Atom.
When you publish
[Acme Cloud] Investigating: Checkout payments failing
When you resolve
[Acme Cloud] Resolved: Checkout payments failing
Opt-in
Confirmed before the first email.
Subscribers confirm by email. Free pages email up to 5 subscribers.
Scoped incidents
Only the customers it concerns.
An incident scoped to one customer reaches that customer's subscribers and no one else's.
Feeds
RSS and Atom on every page.
Each published incident update and maintenance step is an item. Feeds of private pages are gated like the page.
Plans
Alert channels on every paid plan.
Each enabled channel counts against your plan. Free pages still email up to 5 subscribers and publish feeds.
Starter
0channels1,000 deliveries a dayPro
0channels100,000 deliveries a dayBusiness
0channels500,000 deliveries a dayEnterprise
Unlimitedno daily cap