Escalation policies

An escalation policy is a sequence of follow-up steps that fire when an incident goes unacknowledged. Notify the on-call first; if they don't respond, notify their manager; if neither responds, page the platform team.

How it kicks in

A routing policy can attach an escalation policy in its Escalation policy dropdown.

When an incident hits its Renotify if still unacknowledged after window, ObserveKit advances to the next escalation step. Each step waits its configured delay, then notifies its target. If someone acknowledges the incident, the policy halts.

After the last step, the policy can either stop or loop back and run the steps again — controlled by the policy's repeat behavior (RepeatPolicy: loop_from_step, up to LoopMaxIterations, default 3) and its final-step action (stop or notify_fallback_channel). When steps and repeats are used up with no ack, the escalation is exhausted and the incident stays open until manually resolved.

Form fields

Name & description

Use a name that describes who gets paged. "On-call → manager → platform" beats "Policy 3".

Steps

Ordered list. Add as many as you need. Each step has:

  • After this delay — a duration like 15m, 30m, 1h. Counted from the previous step (or from incident creation for the first step).
  • Notify — one target per step: a channel or a user. (Team- and role-targets aren't wired up yet.) To page two places at the same tier, use two steps with a 0m delay, or a channel that fans out.

> Repeating is configured at the policy level (loop back through the steps), not per individual step — a per-step repeat field may appear but isn't what drives re-paging.

Reorder

Drag-reorder is on the roadmap. For now, edit a step or delete-and-recreate to change the order.

Example: 3-tier escalation

Step 1 — After 15m: Slack #oncall channel
Step 2 — After 30m: PagerDuty (primary)
Step 3 — After 1h:  PagerDuty (secondary)

Total time before the top tier is paged: 15 + 30 + 60 = 1h45m. If the policy is set to loop (loop_from_step), it runs the steps again up to LoopMaxIterations times before exhausting.

Tips

  • Acknowledge promptly. Even a "looking into it" ack stops the escalation clock.
  • Don't put your most-disruptive channel on step 1. That's why escalation exists.
  • Test escalations by creating a low-severity test alert and watching the steps fire.