Escalation
Configure how an unacknowledged page escalates between layers.
Escalation policies
Escalation policies define what happens when a paged on-call person doesn't acknowledge in time. Pages walk up the layer stack until someone acks or the policy exhausts.
Get policy
GET /oncall/schedules/{schedule_id}/escalation
json{ "data": { "id": "esc_abc", "schedule_id": "sch_xyz", "steps": [ { "layer_id": "lyr_primary", "wait_seconds": 300, "channels": ["slack-page"] }, { "layer_id": "lyr_secondary", "wait_seconds": 600, "channels": ["slack-page", "phone"] }, { "layer_id": "lyr_manager", "wait_seconds": 0, "channels": ["slack-page", "email"] } ], "max_repeats": 1 }}
Update policy
PUT /oncall/schedules/{schedule_id}/escalation
Ordered list of escalation steps.
How many times to loop through the policy if no one acks. Default 1.
Each step:
| Field | Type | Description |
|---|---|---|
layer_id | string | Which layer to page. Resolves to current on-call at fire time. |
wait_seconds | int | Seconds to wait for ack before moving to next step (0 = immediate next step) |
channels | array | Alert channel IDs to use for this step |
Acknowledge
POST /oncall/pages/{page_id}/ack
Stops escalation immediately. Can be called by the paged user or anyone with incidents:write.
json{ "data": { "acknowledged_at": "2026-04-17T20:03:14Z", "acknowledged_by": "usr_alice" } }
Acknowledgement also happens automatically if Slack DM is replied with ack or ok.