On-call & runbooks
PulseBoard's built-in on-call catalog: users, rotation schedules with configurable shift lengths, override windows, and multi-step escalation policies — no external PagerDuty account required.
Users
Define users with name, email, phone, and linked notification receiver IDs. Users can be members of multiple rotations.
Rotation schedules
Each schedule has one or more rotations. A rotation is an ordered list of users with a shift length (hours) and a start timestamp. Override windows let you swap a specific user for a defined time range (vacation, illness, hand-off).
Escalation policies
An escalation policy is a multi-step ladder. Each step targets a schedule, a backup schedule, or a specific receiver. Configure the delay before each step fires.
POST /api/oncall/policies
{
"name": "payments-critical",
"steps": [
{"target": {"kind":"schedule","id":"payments-primary"}, "delayMin": 0},
{"target": {"kind":"schedule","id":"payments-backup"}, "delayMin": 15},
{"target": {"kind":"receiver","id":"slack-payments"}, "delayMin": 30}
]
}
Who-is-on API
GET /api/oncall/whoison/<scheduleId>
# → {"user":"alice@acme.com","since":"2026-06-22T08:00Z","until":"2026-06-23T08:00Z"}
Inline runbooks
Attach a Markdown step-by-step runbook to any alert rule. When the alert fires, the on-call engineer opens the runbook drawer, checks off steps, and acknowledges. PulseBoard records step completion, MTTR, and acknowledgement timestamps.
- Runbook steps are rendered as interactive checkboxes in Alerts → Firing.
- MTTR is tracked per alert fingerprint from
firedAttoack. - Incident analytics:
GET /api/runbooks/incidentsreturns per-rule aggregates (total incidents, resolved count, avg MTTR, most-skipped steps).