Guides / On-call rotations

On-call rotations

Route alerts to whoever is on call right now — rotations with automatic handoffs, one-off overrides, escalation to the next responder, and SMS/voice paging.

On this page

On-call rotations

thump can route alerts to whoever is on call right now instead of blasting every channel on every incident. A schedule defines an ordered list of responders rotating on a fixed cadence; an on-call alert channel points a monitor at that schedule; at the moment an alert fires, thump resolves the schedule and notifies the current responder's channels — email, SMS, phone call, push, whatever you configured for that person.

The model in one minute

weekly / every 2 weeks), and the timestamp the first shift started. Handoffs happen automatically; nobody edits anything on rotation day.

channel ids that reach that person (their email channel, their SMS channel, …). Responders are positions, not user accounts — a contractor who never logs into thump can still be paged.

on call for its duration without touching the rotation.

schedule. Attach it to monitors like any other channel. It has a layer: layer 0 pages the current on-call, layer 1 pages the next person in rotation, and so on.

Setting it up

  1. Create the channels that reach each person (Channels → New): an

email channel per person, and — if your operator configured Twilio — an SMS or Phone call channel per person. Phone numbers are E.164 (+15551234567).

  1. Create a schedule (On-call → New schedule): name it, pick the

rotation length and the first handoff time, then add responders in order and tick each person's channels.

  1. Create an on-call channel (Channels → New → On-call): pick the

schedule, keep "Current on-call".

  1. Attach it to your monitors like any other channel.

That's it. When an incident opens, thump resolves the schedule at that moment and notifies the on-call responder's channels. The resolve notification goes to the same place. If the shift changed mid-incident, reminder re-pages reach the new on-call — routing is resolved on every send, never cached.

Escalation: page the backup if nobody acks

On-call channels compose with thump's escalation ladder:

  1. Create a second on-call channel on the same schedule with

"Next in rotation" (layer 1).

  1. Attach it to the monitor, and set Escalate after to e.g. 15 minutes

on that attachment (monitor → channel settings).

Now an incident pages the on-call person immediately; if it's still unacknowledged after 15 minutes, the next person in rotation gets paged too. Acknowledging the incident halts the ladder — the backup's phone stays quiet once someone owns the problem. Add a layer-2 channel with a longer delay for a third tier.

Pair this with reminder re-pages (monitor setting) to keep re-paging the on-call person until someone acknowledges.

Overrides

On-call → your schedule → Add override: pick who covers, from when to when, and an optional note. Overrides replace layer 0 only — "next in rotation" keeps following the base order, so escalation stays predictable. Deleting an override restores the rotation instantly.

SMS and phone calls (Twilio)

The sms and voice channel types send through the platform's Twilio account. Self-hosters set three worker secrets:

wrangler secret put TWILIO_ACCOUNT_SID
wrangler secret put TWILIO_AUTH_TOKEN
wrangler secret put TWILIO_FROM_NUMBER   # E.164 number owned by the account

Until they're set, SMS/voice dispatches fail with a clear "Twilio not configured" error (and are not retried). SMS bodies are kept short — a couple of segments; voice calls read the alert aloud twice, so a groggy pickup still catches the monitor name.

Notes

next responder) and next to each schedule in pickers.

and delivers to the current responder's real channels — the response tells you exactly what failed if something is misconfigured.

it (HTTP 409) — repoint or delete those channels first, so a monitor never silently loses its paging path.

responders — no recursion).