Alerts & evidence
An alert is one sentence with its proof attached. Channels are set per team in Settings → Notifications, and every channel gets the same evidence.
Anatomy of an alert
- The sentence. What changed, in plain words: “Acme raised the Team plan from $12 to $15 per seat.”
- Before and after. The excerpts behind that sentence, or a unified diff on the exact-diff tier.
- Confidence. The model's own certainty, as a percentage. Semantic and agent tiers only.
- Screenshot. On the browser-agent tier, the full page as it was checked, viewable in the timeline.
- The trail. Every alert links back to the monitor's timeline, which holds the full history of changes and evidence.
The bar we hold ourselves to: you should be able to forward an alert to a teammate or paste it into a ticket without anyone reopening the page to check it.
The default channel. Add one or more alert addresses in Settings → Notifications: a shared inbox, a ticketing system's intake address, individual teammates. If you configure no email channels at all, alerts go to every team member, so the core loop works with zero setup.
Slack
Alerts post to any Slack channel through an incoming webhook: the summary sentence in bold, the before and after as a fenced diff, and a context line with the confidence score and a link to the evidence. To set it up:
- 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, and monitor_paused when a monitor auto-paused after repeated failures. Turn on heartbeats for a channel and you also get run_completed 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 with the channel 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, with the sentence, the confidence score, and the before and after in each item. The feed URL lives in Settings → Notifications and contains a secret token, so treat it like a password. Point a feed reader, a Slack RSS app, or internal tooling at it for an integration with no code.
Delivery reliability
Alerts fan out to every enabled channel, and each channel is best-effort on its own. A dead webhook or a bounced email never affects the check itself or the other channels, and the change event is recorded in the timeline either way. The timeline is the source of truth. Channels are copies of it.