Skip to content

Alert delays & escalation ladders

View as Markdown

Not every contact should hear about a Down the instant it happens. Escalation lets you delay a contact’s alert and, for a longer outage, bring in further contacts only if the problem persists.

Give your fastest-reacting contact (a team chat channel, an on-call phone) no delay, and give slower or more disruptive channels (a manager’s phone call) a delay - so only an outage that’s actually serious enough to matter reaches them. This turns a flat list of contacts into a ladder that escalates on its own.

Setting (UI label) API field (v2) Type / allowed values Default Plan limits What it does for you
Alert delay alertDelay (on the contact) Minutes - one of exactly ten values: 0, 3, 5, 15, 30, 60, 180, 360, 720, 1440 0 (instant) - How long a confirmed Down must persist, continuously, before this contact is notified

The ten values read as: instant, 3 minutes, 5 minutes, 15 minutes, 30 minutes, 1 hour, 3 hours, 6 hours, 12 hours, and 24 hours. This is a fixed, closed list - it’s not a slider with arbitrary minutes; sending any other number is refused with 422 invalid_alert_delay (the legacy door’s equivalent is WrongAlertDelay). There’s no value between 30 minutes and 1 hour, or above 24 hours.

Each contact has its own alert delay - it lives on the contact, not on the subscription or the monitor, so the same behavior applies everywhere that contact is subscribed:

  1. Contacts with a delay of 0 are notified the moment a Down is confirmed.
  2. A contact with a delay only gets notified once the outage has lasted that long, continuously. If the monitor recovers before the delay elapses, that contact never hears about the Down at all - which is the point: a delay filters out outages too short to matter to that contact.

Give contacts increasing delays, chosen from the ten allowed values, to build a ladder - for example:

Tier Contact Delay
1 Team Slack channel Instant (0)
2 On-call engineer (SMS) 5 minutes
3 Engineering manager (voice call) 30 minutes

A short blip only reaches tier 1. An outage that drags on pulls in tier 2, then tier 3 - each later tier is a sign the problem is getting more serious.

Combine a delay with a still-down (repeatedly down) subscription to have a contact re-notified at intervals - roughly once per monitoring interval - for as long as the outage continues, instead of a single Down alert followed by silence. The alert delay only gates the first Down alert to that contact; it does not throttle how often still-down repeats afterward.

When the monitor comes back up, HostTracker sends the Up alert only to the tiers that had already elapsed - that is, contacts that were actually notified of the Down. A tier whose delay never elapsed (because the outage was too short to reach it) never received the Down alert, so it isn’t sent the Up alert either. This keeps the “how bad did this get” story consistent for every contact: you only hear the resolution for problems you were told about.

  1. Open the contact and expand Main Settings.
  2. Drag the Alert delay slider - the track is marked at 5 minutes, 30 minutes and 3 hours, with instant at one end and 24 hours at the other.
  3. Save.
PATCH /contact/{id}
{ "alertDelay": 30 }

MCP: update_contact(id, alertDelay=30), or set it at creation with create_contact(..., alertDelay=180). There’s no separate escalation-ladder resource to create - a ladder is just several contacts, each with its own alertDelay, subscribed to the same monitor.

  • Sending a value outside the ten-item ladder is refused, not rounded - there is no 45-minute or 2-hour option; pick the nearest allowed value.
  • A contact’s delay applies per subscription implicitly - since the delay lives on the contact, you can’t give the same contact a different delay for two different monitors. Create a second contact (same address, different delay) if you need that.
  • Active hours and alert delay are independent and both apply: a contact outside its active window still won’t receive the alert even once its delay has elapsed - see Active hours.