The right person, paged first

Route alerts to the person actually on call, escalate through email, SMS and voice until someone acknowledges, and stop the moment they do.

An escalation that stops when someone answers

A policy is a series of steps with delays between them. Each step notifies more loudly than the last, and the whole chain stops the instant anyone acknowledges — from an email link, an SMS, or by pressing 4 on the phone call. No dashboard login required at 3am.

incidents / disk-critical · web-01

Severity

Critical

Time to ack

31m

Policy

prod-critical

1
T+0mOn-call paged03:14

maya@ — email + Slack

2
T+15mNo acknowledgment — SMS03:29

maya@ · +254 7•• ••• 412

3
T+30mVoice call placed03:44

press 4 to acknowledge

T+31mAcknowledged03:45

voice:+254 7•• ••• 412

escalation stops the moment someone acknowledges — no login required

Email, then SMS, then a voice call — and it ends the moment it is acknowledged.

Every channel, chosen per step

Steps address the person who is on call at that moment, fixed addresses, or both. The on-call member is resolved live from the schedule, so a policy written a year ago still pages whoever is genuinely covering tonight.

  • Email to the on-call member or to a fixed list.
  • SMS to the roster phone number or to fixed numbers.
  • Voice call with a spoken summary and keypad acknowledgement — the one channel that reliably wakes someone.
  • Slack, Discord, Telegram for the channel the team already watches.
  • PagerDuty, Opsgenie or a generic webhook, deduplicated by escalation id so a repeat never opens a second incident on their side.

Rotations that survive real life

A schedule is built from layers. Each layer has its own members, its own rotation length, and optionally its own coverage window — so a business-hours layer and a nights-and-weekends layer can sit on the same schedule and hand off correctly between them. The topmost layer covering the current moment wins.

  • Handoffs are timezone-aware.The boundary happens at the handoff time in the schedule’s own zone, and it stays correct across a DST change rather than drifting by an hour twice a year.
  • Overrides beat everything. A vacation or a shift swap is a date range with a name on it; while it is active it takes precedence over every layer, with no need to rewrite the rotation.
  • The calendar shows the result. Layers, overrides and handoffs are rendered as one view, computed from the same code that decides who actually gets paged.

The bug most on-call tools ship

Rotations computed in UTC hand off an hour early or late twice a year, every year, when the clocks change. Ours are computed in the schedule’s own timezone, from the same code that decides who gets paged — so the calendar you see is exactly the pager that fires, DST week included.

One problem is one incident

When something fires, Atlas opens an incident and attaches the paging workflow to it. The Incidents page is therefore the single list of things going wrong, each row carrying its own live state — Paging · step 2, or Acked · maya@, with an acknowledge button inline.

There is deliberately no second list of active pages elsewhere in the product. Two views of the same problem is how a problem gets acknowledged in one place and worked in neither.

Alerts that do not train you to ignore them

The fastest way to make monitoring useless is to page someone about something that resolved itself. Several rules exist purely to prevent that:

  • State changes only. One notification when a problem starts, one when it recovers. Reminders while it is still firing are opt-in per rule, not the default.
  • Sustained-duration thresholds. A rule can require the condition to hold for N seconds, so a single spiky sample does not page anyone.
  • A flap guard. If a problem resolves within two minutes of firing, the recovery notice is suppressed — the pair of messages taught you nothing.
  • Offline servers cannot fire or resolve. A host that has stopped reporting produces an empty window, and an empty window is “no data”, never “recovered”.
  • Maintenance windows. Scheduled work suppresses firing notifications; recoveries always come through, so you still learn when the window ended cleanly.

Anomaly detection

For metrics where a fixed threshold is guesswork, Atlas learns 90 days of per-hour-of-week baselines and alerts on deviation instead — so “CPU at 70% on a Sunday morning” can page while the same number on a Tuesday afternoon does not.

Included, not billed per responder

PagerDuty and Opsgenie charge per responder, per month — the bill grows every time you add someone to the rotation. Here the on-call scheduling, the multi-step escalation, the SMS and the voice calls are part of the plan, not a per-seat line item. Put the whole team on a rotation without watching a meter.

And it is the same tool that already holds your metrics, uptime and incidents, so the thing that pages you is the thing that saw the problem — no integration to wire up, nothing to keep in sync.

14-day free Pro trial — no credit card required

Everything monitored. One bill.

Full Pro access for 14 daysNo credit card requiredDrops to the free plan if you don't upgrade