What it does
Beyond each person's own preference, an owner or admin can route any alert kind to someone or something else — a client's IT lead's email, a Slack incoming webhook, a generic outgoing webhook, or a specific teammate regardless of their own preference — optionally scoped to just one client or one site instead of your whole fleet.
How to
- Under Settings → Notifications, find "Who else should hear about this?" and click + Add recipient.
- Pick a recipient type: team member, plain email, Slack webhook URL, or generic webhook URL.
- Choose which alert kind(s) to route, and optionally scope it to one client or one site.
- Choose cadence: Immediate or Daily digest (folds every matching alert into one message a day).
- Click Send test to prove the route actually works before relying on it.
- Remove a route at any time.
Limits & defaults
| Setting | Default |
|---|---|
| External email footer | Explains why they got it and who added them, plus a one-click unsubscribe that disables the whole route |
| Webhook delivery | Queued with 3 retries (15s, 90s, 5min backoff); a failure is recorded and shown against the route |
| Webhook signature | X-WPClientHub-Signature: sha256 HMAC of the raw JSON body, keyed with a per-route secret shown once at creation |
| Slack payload | A compact Block Kit message — no signature header, matching Slack's own incoming-webhook contract |
| Permissions | Any role can read the routes; only owner/admin can add, edit, remove or test one |
Webhook payload shape:
| Field | Meaning |
|---|---|
| event | e.g. "downtime", or "daily_digest" for a digest-cadence route |
| occurred_at | ISO-8601 timestamp |
| organization | Your agency's name |
| site | {id, name, url} or null when the alert has no site context |
| ticket | Help Desk ticket reference or null |
| data | Kind-specific detail, e.g. {title, status} |
| link | Deep link back into the app |
Troubleshooting
A webhook route shows an error
Check the route's last error message — it's recorded on every attempt, success or failure, and cleared the moment a delivery succeeds.
I lost the webhook signing secret
It's shown only once, at creation — remove the route and create a new one to get a fresh secret.
A route stopped delivering after a role change
A member-type route still respects the same role gate as their own preference — a demoted member is no longer eligible even if the route still names them.