On-Call & Escalations

An alert that won't take silence for an answer.

Decide who gets paged first, who's next if nobody acks in ten minutes, and which channel catches the 3 a.m. call when the first person sleeps through it. Hoppla runs its own on-call engine: timezone-aware rotations, ordered steps, and up to ten repeats while nobody acks. Once a human acknowledges, no further step fires. On-call schedules are included from Starter, with no per-seat PagerDuty bill.

CALL / SAMPLE OUTPUT

incident +0m on-call(eu) · +10m backup · +20m repeat · ACK→halt

Fictional values. Not a live measurement.

01 / What it does

Paging that escalates until a person responds

An escalation policy is an ordered list of up to ten steps, each with a wait time; the waits add up from the moment the incident opened. Step one fires. If nobody acknowledges, the next step fires once its wait elapses, notifying either a channel directly or whoever's on call right now. On-call schedules hold the rotations: a user and a channel, with optional day-of-week and time windows, all evaluated in the schedule's own timezone. Once someone acknowledges or resolves the incident, no further steps fire.

What’s included

  • Escalation policies as up to ten ordered steps; each step's wait_minutes adds up from incident start
  • Steps notify a channel directly or whoever's currently on call
  • Timezone-aware rotations: user + channel, optional day-of-week and HH:MM window, overnight shifts supported
  • Acknowledging or resolving an incident halts all further escalation
  • repeat_count re-runs the whole policy, up to ten times, when nobody responds
  • Nobody on duty? The step falls back to its own channel when one is set
  • Fires only for unacknowledged, unresolved incidents; on-call schedules from Starter, no per-seat pricing
02 / How it works

Under the hood.

01

A confirmed incident starts the clock

When an incident opens and a matching escalation policy exists, Hoppla records the start time and starts tracking. Escalation only ever runs for incidents that are still unacknowledged and unresolved. Nothing fires for an alert a human already grabbed.

02

Steps fire on cumulative wait times

Every minute, the scheduler checks elapsed time against each step's cumulative wait_minutes from incident start. Step one might page at 0 minutes, step two at 10, step three at 25. As a threshold passes, that step notifies its target: a channel directly, or the people the on-call schedule says are on duty.

03

On-call schedules resolve who's actually up

A step pointed at a schedule resolves the current rotation in that schedule's timezone. It matches the day of week and the HH:MM window, handles windows that cross midnight, and pages everyone on duty on their own channel or the step's. If nobody is on duty, it falls back to the step's channel, as long as the step has one.

04

Acknowledge to stop, or repeat to insist

Acknowledging or resolving the incident marks escalation done, and no further steps fire. If the whole policy runs out with nobody responding, repeat_count re-runs it from the top, up to ten times, so an incident no one answers comes back instead of going quiet.

03 / Why it matters

The part that actually moves the needle.

01up to 10 repeats

An ignored page comes back

One missed notification is how an outage runs for hours unnoticed. When a policy burns through every step with no ack, repeat_count re-runs it from the top, up to ten times, and the incident keeps paging until a human grabs it. Silence doesn't read as handled.

02timezone-aware

The right person, at the right hour

Rotations resolve in the schedule's own timezone, match day-of-week and HH:MM windows, and handle shifts that cross midnight. Whoever's actually on duty gets paged, not whoever happened to sit first in a flat list.

03€0/seat

On-call without the per-seat tax

PagerDuty and Opsgenie bill per responder. Hoppla's on-call is part of the plan, from Starter. Starter includes five team members and Pro has no member limit, so there's no per-responder fee gating who you can page.

04 / For every team

Whoever you are, this lands differently.

Solo SaaS founder

You are the entire rotation, so the failure mode isn't 'who's on call', it's sleeping through the first alert. Build a two-step policy: step one pings your phone, and if you haven't acked in ten minutes, step two hits a louder backup channel. Set repeat_count so a real incident comes back instead of dying in a notification you swiped away half-asleep. Ack from bed and no further step fires.

Small agency

Two of you share the after-hours phone, and you'd rather not sign a PagerDuty contract to coordinate it. One schedule, one rotation per person split by weekday, plus a fallback step to a shared channel if neither acks in fifteen minutes. The person on duty takes the incident, the other isn't woken unless the fallback fires, and there's no per-seat bill for something this small.

Large agency

Responders sit in different timezones, and clients expect coverage that doesn't lapse at the seams of a shift. Each schedule is evaluated in its own timezone with real day-of-week and time windows, windows across midnight included. Stack a multi-step policy on top (primary on-call, then a team lead at 20 minutes, then a manager channel) with repeats while nobody acks, so a 4 a.m. incident keeps paging instead of sitting unowned while everyone assumes someone else has it.

Reseller / hosting provider

Managed on-call can be a premium tier you sell, without reselling PagerDuty and eating its per-seat cost. Hoppla's escalation engine is white-labeled and built in, so you hand each customer schedules and policies under your own brand and domain. The pages, the acks, all of it wears your name. You sell 24/7 incident response as your product, with no seat-based vendor invoice eating the margin.

Switching tools

Monitoring somewhere else? Bring your setup with you.

Import the monitors you already run in another tool. What comes across depends on the provider. Run both side by side for 24 hours or 7 days before you switch.

  • Guided import
  • Shadow run before you switch
  • Coverage varies by provider
Import from
  • Oh Dear
  • Uptime Robot
  • Better Stack
  • Pingdom
  • StatusCakeBeta
  • CronitorBeta
  • Healthchecks.ioBeta
  • Statuspage

The importer opens in your workspace once you have access.

Get early access
FOR HOSTERS & RESELLERS

Give customers managed on-call without per-seat PagerDuty costs, under your brand.

See the reseller program
05 / FAQ

Straight answers.

Is this just a wrapper around PagerDuty?

No. This is Hoppla's own on-call engine. The schedules, rotations, ordered steps, repeat logic and acknowledge-to-halt all run inside Hoppla, fed by the same monitors raising your alerts. You can still point a step at a PagerDuty service as one of your channels if you want it in the loop, but you don't need a PagerDuty or Opsgenie subscription to get full escalation.

How does escalation stop once someone's handling it?

Acknowledging or resolving the incident marks escalation done, and no further steps fire. Escalation only ever runs while an incident is both unacknowledged and unresolved, so once a responder grabs it, the chain stops. Acknowledging is all it takes.

What happens if nobody responds at all?

That's what repeat_count is for. When a policy runs through every step with no ack, it re-runs from the top, up to ten times, at a repeat interval you set. The incident keeps paging on the schedule you defined instead of falling silent, so an alert everyone ignored is less likely to turn quietly into a multi-hour outage.

Can on-call follow timezones and overnight shifts?

Yes. Each schedule carries its own timezone, and rotations take an optional day-of-week list plus an HH:MM start/end window evaluated in that timezone. Windows that cross midnight, say 22:00 to 06:00, are handled. One detail: the day-of-week list is checked against the local day at that moment, so the hours after midnight count toward the next day.

Your next step

Make the alert reach a person, and keep trying when nobody answers.

Checks, alerts and status pages in one workspace. Now in early access: join the list for an invite.