Alerts & evidence
An alert is one sentence with its proof attached. Channels are configured per team in Settings → Notifications; every channel gets the same evidence.
Anatomy of an alert
- The sentence — what changed, stated plainly: “Acme raised the Team plan from $12 to $15 per seat.”
- Before / after — the excerpts (or unified diff, on the exact-diff tier) that support the sentence.
- Confidence — the model's own certainty, as a percentage (semantic and agent tiers).
- Screenshot — on the browser-agent tier, the full page as it was checked, viewable in the timeline.
- The trail — every alert links to the monitor's timeline, where the full history of changes and evidence lives.
The design goal: an alert should be forwardable to a teammate or filed in a ticket without anyone re-opening the page to verify it.
The default channel. Add one or more alert addresses in Settings → Notifications — a shared inbox, a ticketing system's intake address, individual teammates. With no email channels configured, alerts go to every team member, so the core loop works with zero setup.
Slack
Alerts post to any Slack channel via an incoming webhook — the summary sentence in bold, the before/after as a fenced diff, and a context line with confidence and an evidence link. Setup:
- In Slack: channel → Integrations → Add an app → Incoming Webhooks → copy the webhook URL.
- In modsignal: Settings → Notifications → paste it under Slack webhook URL.
Webhooks
For your own systems. modsignal POSTs JSON with a type field — change_events when the change you described happened, monitor_paused when a monitor auto-paused after repeated failures, and (opt-in per channel) run_completed heartbeats after every check for liveness tracking. Every delivery is signed:
X-Modsignal-Signature: t=<unix seconds>,v1=<hmac-sha256 of "t.body">
The signing secret is generated when the channel is created and shown in Settings → Notifications. Payload shapes and a copy-pasteable verification snippet are in the API reference.
RSS feed
Every team has an RSS 2.0 feed of its latest change events — sentence, confidence, and before/after in each item. The feed URL lives in Settings → Notifications and contains a secret token (treat it like a password). Point a feed reader, a Slack RSS app, or internal tooling at it for a zero-code integration.
Delivery reliability
Alert delivery is fan-out to every enabled channel, and it is deliberately best-effort per channel: a dead webhook or a bounced email never affects the check itself or the other channels, and the change event is always recorded in the timeline regardless. The timeline is the source of truth; channels are projections of it.