On-call and escalation
On-call is off-hours work by definition, so its reminders and escalations are never held back by the quiet gates. The chain walks itself until someone owns the problem.
Rotations
Add shifts one by one or import a whole rotation from CSV or XLSX. People are matched by chat ID or display name; unmatched names become placeholder users so nothing silently disappears. The calendar shows the primary and secondary per day, and the same shifts export back to CSV.
- Reminders go to the primary the day before at 18:00 UTC, on the day at 09:00 UTC, and one hour before the shift starts.
- Each person can see their own past and upcoming shifts.
user,start_at,end_at,role,notes @omar:example.com,2026-06-01T09:00:00,2026-06-01T17:00:00,primary,Mon shift Lina K.,2026-06-02T09:00:00,2026-06-02T17:00:00,secondary,Backup
The escalation chain
WhatsApp reach is outbound through the WhatsApp Business Cloud API with a template message; credentials are stored encrypted and a test send verifies them.
| Immediately | the primary is messaged directly and the ticket is assigned to them |
|---|---|
| After 5 minutes | the backup is paged (oncall_t1_minutes) |
| After 15 minutes | a post in the fallback room and a WhatsApp message (oncall_t2_minutes) |
| On reply | a direct-message reply from the on-call auto-acknowledges the ticket |
Hand-off recap
Every day at 09:00 the current primary of each team receives a recap: open blockers, open support tickets with high and urgent first, and open escalations. A clean board sends nothing.
pulse.oncall_handoff_enabled
Coverage and the score
- Coverage metrics over 7, 30 or 90 days per team, and a list of every team with an active shift right now.
- On-call and support load handled feeds the Responsibility pillar, which is additive-only: with no load the pillar drops and its weight is redistributed.
- A leave request that overlaps a person’s on-call shift with no backup routes to a human so cover can be arranged.
- The weekly manager digest flags next week’s coverage gaps.
Communication policy
Concerns about a person escalate by tier according to how often they have recurred, their severity and the person’s role: observe (log only), nudge in the room, direct message, warning, then action to an admin. Flexible accounts and superadmins are never nagged for routine matters, and active messaging is deferred during quiet hours. Critical concerns go straight to admin action.
dm.quiet_hours_enabled dm.quiet_hours_start_hour dm.quiet_hours_end_hour