ai
Anomaly Watcher: An AI Agent That Explains Alerts and Pauses Sends
An AI agent for marketing anomaly detection should not be the thing that detects. On the Anomaly Watcher's rail (L1, L4 pause), statistics and thresholds raise the alert, a written rule can pause one send, and a model writes the explanation. Marketing-operations teams use it beside any customer data platform (CDP). It never judges an anomaly alone, cancels or resumes a send, or touches transactional mail.
Rail level: L1, L4 pause · Risk: medium · Function: marketing operations
By Art Kukharenko · Published · Updated
All AI agent railsIts rail is part of the vendor-neutral AI agent rails method.
Rail at a glance
Two separate paths share the Anomaly Watcher's rail, and the table covers both. A rule service owns the pause and takes numbers alone, while the model session holds read tools and has no route to the pause call.
Scroll horizontally to see all columns.
| Field | Value |
|---|---|
| Job | Explain anomaly alerts in context, and pause a send when a pre-approved threshold is crossed. |
| Trigger | An alert from a statistical detector or a threshold rule. |
| Data scope | Campaign metrics, campaign calendar and change log. No customer profiles, and no free text on the pause path. |
| Tool scope | Read: metrics, calendar, change log, data freshness. Propose: an alert explanation with hypotheses. Execute: pause one send under a written rule. |
| Output contract | An explanation with hypotheses and evidence links, and a pause record if the rule fires. |
| Gate | The pause rule is approved in advance, and only a person resumes a send. |
| Limits | Written threshold, minimum send volume, exempt list for time-critical sends, and a cap on pauses per day. Transactional mail is excluded. |
| Ledger | Metric values, threshold version, send paused, time, who resumed and why. |
| Evaluation | Replay of past incidents and of quiet periods. |
| Owner and kill switch | Owned by the head of marketing operations; disabling the pause rule leaves alerts flowing to a person. |
What it does and who uses it
The Anomaly Watcher answers two questions during a send: is this number bad enough to stop, and why might it have moved? Specialists read the explanations, and the head of marketing operations owns the rule.
Take an illustrative morning. A product-launch email starts going to 400,000 people at 09:00. By 09:20 the hard-bounce rate on the first 30,000 messages is 6%, against a written limit of 4%. The send clears the minimum volume and is not exempt, so the rule service pauses it and writes this record (illustrative values, not a product API):
{
"event": "send.paused",
"metric": "hard_bounce_rate",
"value": 0.06,
"threshold": 0.04,
"threshold_version": "pause-rule-v7",
"data_age_seconds": 120,
"resumed_by": null
}
The model then reads the change log and offers two hypotheses. A list import at 08:40 added an old file, which fits hard bounces. A provider block would show different bounce codes, so it ranks lower. The specialist removes the import, and a named person resumes the send with a reason.
Detection tools and pause rules work at different speeds. Adobe Analytics anomaly detection uses a 95% prediction interval at day granularity 3, and Amplitude's Prophet-based Anomaly + Forecast does not support real-time charts 4 (both checked 1 November 2026). Detectors like these suit explaining a move better than stopping a send.
Where Amazon Simple Email Service (SES) is the sending layer, it reviews an account at a 5% bounce rate or a 0.1% complaint rate, and may pause sending at 10% or 0.5% 1. Those are account rates over a representative volume, so a per-send limit should sit well below them. Google's spam-rate lines, below 0.10% and never reaching 0.30%, apply over days 2, so they belong to the Deliverability Watcher.
Why this level
The Anomaly Watcher carries two levels because explaining and pausing carry opposite risks. A bad explanation misleads a reader who can check it. A pause delays a campaign, while a bad send cannot be recalled, so stopping early is the cheaper mistake.
Meta's Agents Rule of Two applies per path 5. The explanation session reads change notes and calendar entries, so it holds untrusted input, but no profiles and no state-changing tool. The pause path changes state but takes only numbers, which leaves no text for an instruction to hide in.
L4 normally expects auto-revert, and a pause deliberately has none, because a timer would restart a send while the cause is unknown. An immediate alert to the owner and the daily cap stand in for that safeguard. A breached false-pause budget or an open incident returns the rule to alert-only.
Three ways it fails, and the control for each
The Anomaly Watcher fails differently on each path, so the table says where each control sits.
Scroll horizontally to see all columns.
| Failure | What it looks like | Control |
|---|---|---|
| Stale data read as collapse | A tracking outage or a late feed makes clicks appear to fall to near zero. | The rule service checks data age first. Stale data sends an alert to a person and cannot trigger a pause. |
| Plausible story, wrong cause | The explanation blames a subject line when the real cause was a list import. | The contract allows only hypotheses with evidence links, and "cannot tell" is a valid answer. |
| Noise treated as signal | A 95% band flags about one normal point in 20 by design, so 40 series can raise two false alarms a day (illustrative arithmetic). | Statistical alerts never pause anything. The threshold rule needs a minimum send volume, and alert precision is tracked per metric. |
How to evaluate it
Evaluate the Anomaly Watcher in two parts, because the rule path can be proved while the explanation path can only be graded.
For the rule path, write tests with a known answer and require every one to pass:
- A value just below the threshold, and one exactly on it.
- A breach on a send under the minimum volume, on an exempt send, and on a transactional send.
- A breach with stale data behind it, and one after the daily cap is used up.
Then replay history. Past incidents measure time to contain, from the first bad metric to the stopped send. Quiet periods and seasonal peaks measure false pauses.
For explanations, a reviewer checks whether the true cause appeared among the hypotheses. Finish with a drill: disable the pause rule, and confirm that alerts still reach a person.
Where it runs
The Anomaly Watcher's action path uses rules only, so no model sits between a metric and a pause. A model writes the explanation, and the on-premise LLM guide covers the private option, preferred because change notes are commercially sensitive. PrivyCDP's AI-assisted review extends to unusual events, while the rail itself stays yours to define.
Related
- Marketing anomaly detection on rails: the use case, step by step.
- AI agents for marketing operations: the playbook this watcher belongs to.
- Rail card template: a place for your threshold and exempt list.
Other watchers and reviewers are listed under AI agent rails. To record your own pause rule, download the rail card template.
Browse use casesFunction playbooksAgent roster
FAQ
Can AI detect marketing anomalies by itself?
This rail says no. Statistical detectors and thresholds do the detecting, because they can be tested. The model adds context a detector lacks, such as a list import or a holiday.
Why can't the agent resume a paused send?
Resuming means judging that the cause is fixed, and that needs someone accountable. A wrong resume sends the problem to the remaining audience.
What happens when the daily pause cap is reached?
Further breaches alert the owner instead of pausing. A shared cause can trip every send at once, and a day of blanket pauses should be a human decision.
Sources
Further reading
- AI Agents for Marketing Operations: A
- Marketing Anomaly Detection With an AI
- Kill switch (AI agents) — definition
- Agent rails
- AI Agent Permissions Template Download
Published: · Updated:
Editorial dates describe content changes. Confirm current sources before making legal, security or purchasing decisions.