Skip to content
IRIS
Live SMS + Voice/IVR

The escalation engine that reaches a human

Most alerting is send-and-forget. IRIS treats every alert as a stateful state machine — a Durable Object that routes, notifies, waits, escalates and resolves, then proves it happened. Not a fragile chain of automations that breaks at 2 AM.

alert · lab-oncall · round 2
  1. Anna — notified 02:00 · no reply
  2. Mikael — notified 02:05 · awaiting
  3. Priya — next in 5 min
escalating · state persisted

The lifecycle

One stateful flow, signal to proof

Each alert lives as a single Durable Object that holds its own state across every step — so timing, rounds and replies are reliable by design, not by polling.

  1. 01 received

    Ingest

    A sensor, monitoring system or script posts one alert to the REST endpoint. IRIS creates a stateful alert instance — a Durable Object — that owns this event from signal to proof.

  2. 02 routing

    Route

    The alert resolves to a receiver group and an ordered on-call list. Each recipient carries their own number mapping and language — so the message is addressed correctly before it ever leaves the edge.

  3. 03 notifying

    Notify

    IRIS notifies the first recipient across the configured channels (SMS and Voice/IVR today), in their language, with a clear acknowledge/escalate instruction.

  4. 04 awaiting ack

    Wait

    A timed wait window opens. The state machine holds — durably, with no fragile cron chain — until a reply arrives or the window closes.

  5. 05 escalating

    Escalate

    No acknowledgement in time? IRIS advances to the next person on call and notifies again — round by round, up to ~20 rounds — until a human responds.

  6. 06 resolved

    Resolve & prove

    A recipient replies “1” to acknowledge or “2” to escalate. On acknowledgement the alert resolves, and IRIS writes an audit-grade record of every step — who, what, when, in which language.

Two-way by design

The recipient is in control. A single keypress closes the loop — and every reply is captured against the alert.

Live
  • 1 Acknowledge

    The recipient owns the alert. IRIS stops escalating, records the acknowledgement, and resolves the event.

  • 2 Escalate now

    The recipient hands it on. IRIS skips the wait window and advances to the next person on call immediately.

  • No reply

    The wait window closes and IRIS escalates automatically — silence never stalls a critical alert.

Under the hood

Everything the escalation needs

Routing, timing and proof are first-class — configured once, enforced on every alert.

Receiver groups & ordering

Define who is on call and in what order. IRIS walks the group top to bottom, so the right person is always next in line.

Per-recipient number mapping

Each recipient is reached on their mapped number, with country-aware sender numbers for the best deliverability.

Per-recipient language

Messages render in each recipient’s language across 6 supported languages — no manual translation step.

Scheduling & rounds

Configurable wait windows between rounds, up to ~20 rounds. The state is durable, so timing survives restarts and redeploys.

Two-way reply capture

Inbound replies hit a secure webhook; “1” acknowledges, “2” escalates. Every reply is interpreted and logged against the alert.

Completion reporting

On resolution IRIS writes an audit-grade event record — exportable for GxP, HACCP and ISO audits.

State machine, not a chain

Why a Durable Object, not an automation chain

We ran on 26 chained automations before. They have no memory between steps, lose track of who was notified, and break silently under load. IRIS gives every alert one durable, single-threaded instance that remembers its own state — so escalation is reliable, ordered and replayable.

  • Remembers who was notified
  • Durable timers — no polling
  • Ordered, replayable rounds
  • Every step audit-logged

See an alert escalate end to end

Spin up a trial workspace with 1,000 credits, no credit card, and watch a real two-way escalation resolve.