The Red ThreadImpact, roles, evidence, next steps.
Incident paging · by the Zimac Incident Commander
Every incident has a red thread. Paige holds it.
Alerts in, pages out, on the clock — every pager does that part. The Red Thread is the part they don't have: one computed command board for impact, roles, facts versus hypotheses, and the next-update clock.
Incident commandEvery signal routed. Every role clear.
Always on the clockPages out. Updates land.
Your stack, your pagerBring the tools you already run.
The Red Thread: command, computed.
Other pagers stop at "somebody acked." Paige promotes an alert into an incident and computes the command frame the room actually needs — the desktop Paige's instrument, hosted.
Control state, honestly
COMMAND HELD, DRIFTING, or UNFRAMED — derived from named checks: impact stated, one IC, owned actions, a committed next-update clock. Missing structure stays visible.
Facts ≠ hypotheses
Known, hypothesis, and the largest unknown are separate columns on the board. SEV1 demands comms and a scribe; the frame says so before the retro does.
Blameless postmortems, scored
Paste the write-up; get a dimension-by-dimension score with reasons. Blame language caps the score at 69 — completeness can't buy it back.
Calm is a control surface.
Paige is the composed operator in the room: direct about customer impact, exact about what is known, and unwilling to let a clock, role, or follow-up drift out of sight.
- Name the impactSeverity follows customers, not channel volume.
- Hold the clockEvery update has an owner and a committed time.
- Close the loopEvery role is filled and every follow-up stays owned.
Alerts in. Pages out. On the clock.
Intake & dedup
Every integration gets its own API key. Repeated events with the same
alert_key fold into one alert with a count — a flapping monitor is one
page, not forty.
The first page is instant
Level one is paged inline at intake — email and webhooks (Slack included), with a delivery receipt on the alert. Paige never claims a page she can't prove.
Escalation ladders
Each level names its targets — the schedule's on-call, a person, the whole team — and its ack timeout. Unacknowledged alerts climb, on the clock, with repeats.
Ack stops the clock
One acknowledgment stops the ladder and names the responder. Un-ack resumes it immediately. Close writes the record. The alert timeline is the audit log.
curl -X POST https://paige.zimac.ai/events/$PAIGE_KEY \
-H 'content-type: application/json' \
-d '{"title":"DB p99 over 800ms","priority":"P2","alert_key":"db-latency"}'
On-call is people. Paige counts the cost.
Deterministic rotations
Daily, weekly, or custom shifts from an explicit anchor — the same math answers the same name on every replica. Overrides are new facts, never edit races.
Dead-man's-switch heartbeats
Your cron pings Paige; the absence of the ping is the alert. The failure mode ordinary alerting can't see — the monitoring stack itself dying — is covered.
Load, fairness, night pages
Pages per responder per week, the night-page share, rotation fairness, MTTA/MTTR — computed from delivery receipts, not from the rota on paper. Thresholds shown, never hidden.
Tenant-scoped by construction.
Identity from the token
Your workspace comes from your Zimac credential via the auth service — never from a request body. A caller can only ever see the tenant their token proves.
Keys hashed, shown once
Integration API keys are displayed exactly once and stored as SHA-256 — Paige keeps the hash, never the key.
Webhooks checked twice
Webhook destinations are SSRF-checked at write time and again before every send, and generic webhooks are HMAC-signed so you can verify the sender.
Receipts everywhere
Every page carries a delivery record — who, when, which level, which channel, and whether it worked. The pager's word is checkable.
Nine dollars. Every responder.
Per-responder pricing taxes you for adding the person who could have answered. Paige is one flat price per workspace — put the whole team on call, add the new hire on their first day, and the bill does not move.
or $90 a year — two months free.
- Unlimited responders, schedules, services, and integrations
- Dedup intake, escalation ladders, and dead-man’s-switch heartbeats
- The Red Thread command board: impact, roles, facts vs hypotheses
- Email and webhook delivery, including Slack Block Kit
- Per-member fallback channels and receipted retry
- Read-only MCP access from the Zimac desktop app
A Zimac account gets you in; no card for the trial. Paige pages over email and webhooks (Slack included) — there is no SMS or voice channel today, so wire the Slack app you already keep loud at night.
Fair questions.
How do alerts get in?
Create an integration, get a pgk-… key, and POST JSON events to
/events/<key>. action:"close" with the same
alert_key closes on recovery. Heartbeats ping
/events/<key>/heartbeat/<name>.
How fast is the escalation clock?
The first page is sent inline at intake. After that, a background engine re-checks every armed workspace on a short interval (30s by default) and advances any ladder whose ack window has passed.
What notification channels exist today?
Email (SES) and webhooks, including Slack incoming webhooks with proper Block Kit formatting. Generic webhooks are HMAC-signed so you can verify the sender.
Does the desktop Paige know about this?
Yes — the same agent that commands incidents in the Zimac desktop app can read your paige.zimac.ai workspace over MCP (read-only): open alerts, who's on call, incident frames, on-call health.
Time zones?
Schedules anchor to an explicit epoch instant, so your handoff hour is whatever you anchor it to. Night-page analytics use a fixed 22:00–08:00 UTC window and say so rather than guessing anyone's timezone.
Open your pager.
Sign in with your Zimac account. First time? A personal workspace is created on first touch.
Open your workspace
One click with your Zimac account — no card for the 30-day trial.
Or paste a seat token
Your token stays in this browser and is only sent to this service. New to Zimac? Create your account.