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

stepsarrayrequiredbody

Ordered list of escalation steps.

max_repeatsintegerbody

How many times to loop through the policy if no one acks. Default 1.

Each step:

FieldTypeDescription
layer_idstringWhich layer to page. Resolves to current on-call at fire time.
wait_secondsintSeconds to wait for ack before moving to next step (0 = immediate next step)
channelsarrayAlert 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.

Ask a question... ⌘I