GuidesAlerts

Email, text and voice

A webhook is for your systems. These are for people, and people should not be woken for everything, so each channel has a floor.

Three severities

Every alert type has a fixed severity. A channel's floor says which it carries.

SeverityMeansFor example
infoWorth knowing, no action.A spike ended. A payment failed.
threatSomething is off; look when you can.A repeat caller. A long call. A prefix cluster.
criticalIt is happening now.Rotating numbers. A volume spike. A suspicious live call. Spend past its ceiling.

The full list, type by type, is on the webhooks page.

The channels

Webhookany plan
Every alert, signed, to one URL. See webhooks. No floor: your code filters.
Emailany plan · floor: threat
Up to twenty addresses. On from the start, to the address the account was opened with. One email per alert: a heading, the number that matters, the facts, one button into the dashboard.
TextGuard · floor: critical
Up to ten phones, North America. A masked one-line version of the alert: the caller's middle digits are hidden in a text, in full in the dashboard.
Phone callGuard · floor: critical · 3 a day
Up to ten phones. We ring and read the alert out once. Capped per day so a bad night is a few calls, not a hundred; the cap is yours to set, up to twenty.

Floors can be lowered to threats or all, or raised to critical, per channel, under Settings → Alerts. Any member of the account may change them.

Proving a phone

Texts and calls go only to a phone the account has proved it holds. Settings → Alerts → add a phone → a six-digit code arrives by text → type it. Once proved, the phone can be used for texts, calls, or both. A number that has not been proved is refused with 403 phone_unverified wherever it is set.

This is why a stolen API key cannot start paging a stranger, and why the first proved phone becomes the text destination automatically: the person who proved it is the person who wants the alerts.

One alert, not a thousand

Every channel is behind the same cooldown: one alert per type per subject per fifteen minutes. The subject is the caller, the pattern, the number or the call, whichever the alert is about. A flood of five hundred calls from one run of numbers is one caller.rotating_numbers on every channel, with count in it, not five hundred texts.

If Guard ended the call, the alert says so: hung_up: true on the webhook, "Call ended." in the text. The person reading it at three in the morning knows whether there is anything left to do.

Where they land

GET /v1/alerts shows every alert with delivered.email, .sms and .call: true it went, false it was tried and failed, null the channel was off, below its floor, or not on the plan. See alerts.