Overview
Annie Automation (URL:/automation, formerly /instructions) is where you teach Annie how to act on her own. When a message lands in Slack from a tracked source, Annie runs through your rules top-to-bottom and picks an action: a quick chat reply, a full Root-Cause Analysis (RCA), waiting for a human, or staying silent.
The page is divided into three scopes:
- Message routing (live today): the rules engine described in this doc.
- Scheduled tasks (coming soon): standups, weekly reports, on-call handoffs.
- Custom skills (coming soon): ad-hoc skills triggered by
@Annie, do X.
How a message flows through Annie
- Message lands: a tracked Slack identity posts in a tracked channel, or a teammate
@-mentions Annie. - Skip duplicates: if the same alert fired recently (within the duplicate-detection window), Annie links to the existing investigation instead of starting a new one.
- Match a rule: Annie evaluates rules top-to-bottom; the first matching rule wins.
- Default behavior: if no rule matches, Annie reads the message and picks the right response based on context.
Default behavior
Annie’s default behavior is fixed as “Annie decides”: when no rule matches, Annie reads the message and chooses between a quick chat reply, a deeper investigation, or staying silent based on context. This is intentionally not configurable. To get a different action for specific cases, add a rule below the default behavior card.Rules
A rule tells Annie what to do for a specific message. Each rule is built from four steps:WHEN a Slack message matches WHO, WHAT, and WHERE below, Annie does what you set in THEN.
Below the stepper, a live preview chip reads the values back as a sentence (“Annie will run a full investigation when PagerDuty posts severity:critical in #oncall”) so you can sanity-check the rule before saving.
Action types
Templates
The rules section opens with three starter recipes you can click to pre-fill the editor:- Auto-investigate critical pages —
severity:critical→ Run RCA. - Mute a noisy bot — Stay silent. Pick the bot in WHO.
- Manual RCA in a noisy channel — Wait for human. Pick the channel in WHERE.
Reordering rules
Each row has a drag handle on the left (grip icon) and ↑/↓ arrows on the right. Reordering matters: Annie evaluates top-to-bottom, first match wins.Duplicate
The copy icon on each row opens a new-rule editor pre-filled with that rule’s WHO/WHAT/WHERE/THEN. Tweak and save. Useful for forking a rule for a near-identical case without retyping.Grouped views
The Rules section has a 3-way pivot in the top-right (Sender / Channel / Flat).- Sender: one card per subscribed Slack identity. Each card shows that sender’s rules and a per-group fallback dropdown (see below). A multi-select rule scoped to several senders appears under each of them.
- Channel: one card per Slack channel mapping, same shape.
- Flat: the linear list, drag-sortable, ordered by
order_index.
Per-group fallback (the “Jean-Marc fix”)
When you subscribe a bot to Annie, every message from that bot is processed automatically. Without the per-group fallback, any message from that bot that didn’t match a rule would fall through to Annie’s default behavior — sometimes that’s the right call, often it’s not. The per-group fallback closes that loop. Each sender card has an inline dropdown at the bottom:Otherwise (no rule above matched), Annie will [stay silent ▾]Subscribed senders default to stay silent. Mention-only senders default to Annie decides. Channels default to stay silent. The dropdown writes through to
PUT /custom-instructions/{projectId}/group-fallbacks/{kind}/{scopeId} immediately.
Behaviour at evaluation time, when no rule matches:
- Per-sender override wins if set.
- Per-channel override wins next.
- For subscribed senders without an override row, Annie applies the implicit
silentdefault (the retroactive fix). - Otherwise, Annie’s global default behavior fires.
”Anyone” and “Any channel” rules
Rules with WHO empty (Anyone) or WHERE empty (Any channel) live under a synthetic group at the bottom of each grouped view. Their fallback dropdown is hidden — they already match every message that doesn’t get caught by a scoped group above.Slack identities
Below the rules, the Slack identities table lists every user and bot Annie can route on. Each row has a status pill:- Subscribed: Annie processes every message from this identity automatically, following any matching rule and the sender-fallback when nothing matches. This is the right setting for alerting bots (PagerDuty, Datadog, Grafana, Amazon Q).
- Mention-only: Annie only processes messages from this identity when they tag
@Annie. This is the default for human teammates so Annie doesn’t reply to every sentence.
Duplicate alert detection
A time window for suppressing repeated alerts. When enabled, Annie detects if the same alert was already processed recently and links to the existing investigation instead of starting a new one. Configurable per project from the same page.Examples
AWS Health Events via Amazon Q
AWS Health Events via Amazon Q
A common pattern for teams using Amazon Q to forward AWS Health Events to Slack:
- Subscribe Amazon Q from the Slack identities table.
- Switch the Rules pivot to Sender so Amazon Q has its own card.
- Add one rule inside the card:
WHO=Amazon Q · WHAT=AWS Health Event with RDS · THEN=Reply with a short answerwith instructions: “Validate whether the reported service had a real failure”. - Leave the per-group fallback at Stay silent (the default for subscribed bots).
Database Alert Investigation
Database Alert Investigation
WHO=anyone · WHAT=Alert contains "RDS" or "database" or "postgres" · WHERE=any channel · THEN=Run InvestigationInvestigation instructions:- Check recent schema migrations in the last 24h
- Review connection pool metrics and active connections
- Look for long-running queries (>30s)
- Check for recent deployments that might have changed queries
Skip Low-Priority PagerDuty Alerts
Skip Low-Priority PagerDuty Alerts
WHO=PagerDuty · WHAT=PagerDuty priority not P1 or P2 · THEN=Wait for human to trigger RCAAnnie posts a “Start investigation” button instead of investigating automatically. Team members click to investigate when they have time.Ignore Test Alerts
Ignore Test Alerts
WHO=anyone · WHAT=Alert tags contain "test" · THEN=Stay silentAnnie ignores test alerts entirely.Multi-rule per bot via grouped view
Multi-rule per bot via grouped view
For teams that have a single workflow bot forwarding multiple alert kinds:
- Subscribe the bot.
- Switch the Rules pivot to Sender.
- Inside the bot’s card, add focused rules ordered top-to-bottom (each with
WHO=that bot). - Set the card’s per-group fallback to Stay silent so anything that didn’t match falls quiet instead of triggering Annie’s default behavior.
Get Started
Create Account
Sign up for Anyshift
Request Demo
See Annie Automation in action