Escalation quickstart
By the end of this guide you’ll have an escalation policy that:
- Pages the on-call rotation first; waits 5 minutes for ack.
- If no ack: pages a secondary user; waits 10 minutes.
- If still no ack: pages the engineering manager; waits 15 minutes.
- Repeats once if no one ever acks.
You need the Primary on-call schedule from the on-call quickstart, plus a secondary engineer and an engineering manager in the account.
Paging more than one person needs a responder pack, and the people in this guide take more seats than the free plan includes. See plans and limits.
1. Create the policy
Section titled “1. Create the policy”-
Go to Respond → Escalation Policies and click New policy.
-
Name:
Primary escalation. Times to repeat:1. Leave When nobody acknowledges on Email the account’s Super Admins and Admins. Click Create policy.
With an API key exported as SITEQWALITY_API_KEY:
curl -X POST https://api.siteqwality.com/escalation_policy \ -H "Authorization: Bearer $SITEQWALITY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Primary escalation", "repeat_count": 1 }'Save the returned id as POLICY_ID.
2. Add the levels
Section titled “2. Add the levels”-
Open the policy and click Add level.
-
Level 1: Timeout (minutes)
5. Under Target schedules, pick thePrimary on-callschedule. Click Add level. -
Add level again. Level 2: Timeout (minutes)
10. Under Target users, pick the secondary engineer. Click Add level. -
Add level again. Level 3: Timeout (minutes)
15. Under Target users, pick the engineering manager. Click Add level.
target_user_ids takes user IDs, which GET /account/info lists. SCHEDULE_ID is the id of Primary on-call from GET /on_call_schedule.
# Level 1: page the on-call schedulecurl -X POST https://api.siteqwality.com/escalation_policy/$POLICY_ID/level \ -H "Authorization: Bearer $SITEQWALITY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "timeout_minutes": 5, "target_schedule_ids": ["'$SCHEDULE_ID'"] }'
# Level 2: page secondary usercurl -X POST https://api.siteqwality.com/escalation_policy/$POLICY_ID/level \ -H "Authorization: Bearer $SITEQWALITY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "timeout_minutes": 10, "target_user_ids": ["44444444-aaaa-4bbb-9ccc-bbbbbbbbbbbb"] }'
# Level 3: page eng managercurl -X POST https://api.siteqwality.com/escalation_policy/$POLICY_ID/level \ -H "Authorization: Bearer $SITEQWALITY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "timeout_minutes": 15, "target_user_ids": ["55555555-aaaa-4bbb-9ccc-cccccccccccc"] }'level_number is auto-assigned in creation order.
3. Check readiness
Section titled “3. Check readiness”Readiness says whether every level reaches someone before it times out, for critical and major incidents and for minor ones. Fix anything it lists, such as a user whose only rule is an unverified SMS number. See check readiness.
Open the policy. The Readiness panel at the top gives the verdict and lists every problem.
curl https://api.siteqwality.com/escalation_policy/$POLICY_ID/readiness \ -H "Authorization: Bearer $SITEQWALITY_API_KEY""ready": true means every level reaches someone at both urgencies.
4. Test it
Section titled “4. Test it”Attach the policy to a service, open a manual incident on that service, and don’t ack it. The on-call is paged first, then each later level as the one before it times out (after 5 minutes, then 10 more).
To test faster, use a temporary policy with 1-minute timeouts.