AI SDR Shadow Mode: Test What the Agent Would Have Done Before It Sends
Shadow mode is where you find out what an outbound agent does when nobody is checking. Most teams use it to grade writing. The mistakes that should hold up a launch are about who the agent would have emailed, and when.
Nothing sends. That is the whole idea.
The agent researches accounts, picks contacts, writes the first touch and schedules the follow-ups exactly as it would on a live campaign, and then every outgoing email stops one step short of the mailbox. You read what piled up. If you like it, you turn sending on.
The pages that rank for this agree on most of it. Unify lays out a 90-day rollout in four phases with shadow mode in weeks one and two, and has reps rate whether a majority of the drafts are accurate and usable. Freshdesk, describing its support agent, suggests about two weeks of drafts filed as private notes before going live. LeadHaste goes furthest: a labeled test set with opt-outs and complaints in it, and proposed actions scored by consequence. All three are sensible. Two of them are still grading prose, and none of them says which specific mistakes should block a launch outright, versus which ones you fix as you go.
That is the decision a buyer actually faces at the end of week two, so this page answers it.
Switch off the send, keep everything else real
Put the shadow flag inside the send tool, the same function where our AI SDR kill switch keeps its pause flag. When the flag is on, the tool does every check it would do on a live send, then writes a record and returns without calling Gmail. Teams that build a separate fake send tool for testing end up testing a separate program, one that never hits the CRM timeout or the rate limit that will bite them in week three.
The exclusion check in particular has to run live, against the real CRM, on every shadow send. Our exclusion list guide explains why a lookup that cannot reach the CRM should refuse the send. Shadow mode is the cheapest place on earth to learn that yours does the opposite.
The would-have-sent ledger
Every stopped email becomes one row: recipient, mailbox it would have gone from, sequence and step, scheduled time, each research fact with the URL it came from, and the exclusion result. It is the same record our audit log writes before a real send, with a flag that says it never left. Sort the ledger by recipient company before you read it. Problems with targeting show up in clusters (four people from one account you already sell to) that you would never spot reading drafts one at a time.
Then sort what you find. We use four buckets, and they are not equal.
An excluded account reached the send tool
Zero allowedOne is enough to stop. It means the exclusion lookup failed open somewhere, or a subsidiary slipped past the parent-company match, and in live mode that is an email to a customer or to a deal your AE is closing this quarter.
A fact the cited page does not say
Zero allowed in first touchesOpen the URL the research step logged next to each fact. If the page does not support the line, the agent invented it. Invented details about a stranger’s own company are the fastest way we know to turn a reply into a screenshot on LinkedIn.
Wrong step, wrong day
Fix, then rerunStep two queued before step one, two touches in a single afternoon, a follow-up to someone the CRM marks as in a conversation. Usually a scheduling bug and usually cheap to fix. Rerun the shadow after the fix, because the same bug tends to have a cousin.
A dull draft
Scored, not blockingGeneric openers, a value line that could go to anyone. Worth counting and worth improving. A flat email to the right person costs you a reply. It does not cost you a customer.
Our opinion, and the one we would defend to a skeptical VP of Sales: the first two buckets decide the launch and the last one barely matters to it. A shadow run with a hundred mediocre drafts and zero exclusion hits is ready for the approval queue. A run with beautiful drafts and one email addressed to your biggest customer's CFO is not ready for anything.
Nobody replies to an email you never sent
Shadow mode tests the outbound half and leaves the half that goes wrong most expensively untouched.
Replies are where an agent unsubscribes someone, or fails to, and books meetings. Since nothing went out, nothing comes back, so you have to bring the replies yourself. Export a few hundred from your team's own past outbound, strip the names if you want, and replay them through the classifier with every tool set to shadow. Make sure the pile includes the awkward ones: an opt-out phrased politely enough to read as a maybe, an out-of-office that names a colleague, a forwarded thread, a reply in another language. Check each against the six labels in our AI SDR reply handling guide. An opt-out filed under anything else is the third zero-tolerance mistake.
How long to run it
Two weeks is a calendar answer, and sequences do not run on calendars that short. If your last follow-up sits at day 21, a fourteen-day shadow never fires it, and the breakup email (the one most likely to read as passive-aggressive) goes live untested. Our rule is that a shadow run ends when every step of the longest sequence has fired for real contacts at least once, and when the ledger has shown zero excluded accounts and zero unsupported facts across the whole run. Whichever comes later.
If you would rather not build the ledger, the replay set and the flag in the send tool yourself before you know whether an agent books meetings for your market, this is roughly what a pilot is for. Ours is free: we run your first campaign, you see who was contacted and what came back, and the free pilot costs nothing if it does not work.
Leaving shadow mode
Turn sending on for a small slice, and route every one of those sends through the approval queue, including categories you plan to loosen later. Keep the ledger running alongside. After the first live week, compare the two: anything the agent did live that it never did in shadow is a code path you did not test, and you should find out why before raising volume.
Keep the flag. You will want it again the next time someone rewrites the prompt.
Why we care
After the free pilot we get paid per qualified meeting, and a qualified meeting is one where the prospect shows up. Mira runs 24/7 on OpenClaw from a Mac mini in San Francisco, so the first time a new sequence runs at 3 a.m. there is nobody awake to catch it. Shadow mode is the only time we get to watch it do that. The MCP tool permission matrix decides what the agent may touch once it is live, and how Mira works walks through the rest, from first email to booked call.
Jascha Kaykas-Wolff founded Mira Outbound and runs Mira, the outbound agent described across this site, on OpenClaw. These guides come from the guardrails that agent actually uses. kaykas.com