Turn a finished campaign into a change your agent can read.
“Our outbound campaign finished. What worked, why, and what should the agent change next time?”
Rebuilds the decisions behind one outbound campaign, ties every number back to one of them, separates what worked from why it worked, and writes one specific change into the list, the angle library, or the instructions.
What this skill does
You coach your reps. Nobody coaches your agents.
Your outbound agent has been running for months. It has made a decision on every email it sent, the list it built, the angle it picked, the words it wrote, and not one of those decisions has been reviewed by anything. A rep on that record would be on a plan by now. So the same lesson gets re-taught by hand every time somebody notices it, instead of the agent learning it once.
This skill runs the review. It takes one finished campaign, rebuilds what the agent actually decided, attaches the outcome to each decision, and produces one change specific enough to write back. Reply rate tells you a campaign worked. This tells you why, or tells you honestly that the data cannot say why yet and what to start capturing.
One campaign, one loop. It will not blend tiers or roll up a quarter. A blended number hides which motion failed, which is the whole reason nothing gets learned.
Inputs
- Works today with: a campaign export with one row per send. Even sends, replies and the list it came from produce a real readout.
- More powerful with your list build: the filters the list was built on turn "this worked" into "this filter worked."
- More powerful with your copy: the angle and the variant per send is what makes the why answerable at all.
- Sharper with a CRM: replies become meetings and opportunities, so you can tell a good reply rate from a good campaign.
- Sharper with the agent's own instructions: the readout can be written as the exact diff to the file the agent reads.
How it works
- 11. Name the campaign and the tier
One finished campaign. Name it, name its tier, name the offer. If the export contains more than one campaign, it stops and asks which one, because broad, focused and niche fail for different reasons and a blended number hides which one failed.
- 22. Rebuild the decisions before you look at any number
This is the step everyone skips, and skipping it is why readouts change nothing. Before a single metric, reconstruct what the agent actually chose:
- The list it built. What filters produced this set. Firmographics, technographics, a trigger, a hand-built account list.
- The angle it picked. What problem the email claimed they had, and what it offered.
- The words it wrote. The variant, and the constraints the copy ran under.
A number that cannot be attached to one of these three is a number the agent cannot use. Anything that cannot be reconstructed gets listed as unknown, not guessed.
- 33. Attach the outcome to each decision
Not one reply rate. Outcomes cut by the decisions from step 2, so each number rides with the choice that produced it. Reply rate by filter. Reply rate by angle. Reply rate by variant. Where the CRM is connected, the same cuts carried through to meetings, because a good reply rate on a bad list is a good reply rate.
Every figure carries its denominator. A 12 percent reply rate on 25 sends is three replies and it is not a finding.
- 44. Separate what worked from why it worked
Two lists, never blended.
- Evidenced. The difference is visible in the data and the sample supports it.
- Hypothesis. A plausible reason that this campaign cannot confirm. It is written as a question with the test that would settle it.
Most first runs are mostly hypotheses. That is the honest answer and it is the point. The reason a campaign worked usually lives nowhere, not in the reply, not in the CRM, not in the agent, because nobody captured it.
- 55. The carry-over
One change. Specific enough to write back, aimed at exactly one target:
- The list, a filter to add, drop, or tighten.
- The angle library, an angle to retire, promote, or bound to a segment.
- The instructions, a constraint the agent must obey on the next send.
It is written as the edit to the file, not as advice. "Add a headcount growth filter" is advice. "In LIST_HOME, add: headcount growth over 10 percent in the last 6 months" is a change.
If nothing in the data supports a change, it says so and stops. A forced change is worse than none.
- 66. The logging gap
The most useful output of a first run. What the readout could not answer, and the single field to start capturing so the next one can. Usually the angle, the variant, or the filter set, recorded at send time rather than reconstructed after.
This is what turns one review into a loop. Without it, the next readout is as blind as this one.
- 77. The human gate
The readout is presented for a yes or a no on each proposed change. Nothing reaches LIST_HOME, ANGLE_HOME or INSTRUCTION_HOME until you accept it. Accepted changes are written as a dated entry so the next readout can tell whether the change did anything.
Output format
CAMPAIGN READOUT · "Ops leaders, Q3 trigger" · tier: focused · 1,240 sends
THE DECISIONS BEHIND IT
List 6 filters. Headcount 200-1000, hiring an ops role in 90d,
uses a named billing tool, US, not a current customer, not in
an open opp.
Angle "Your billing ops is a headcount problem you can stop hiring for."
Copy 78 words avg, one ask, no link in email one.
Unknown Which variant each send used. Not recorded at send time.
WHAT HAPPENED
Sends 1,240 · replies 71 (5.7%) · positive 22 (1.8%) · meetings 9 (0.7%)
BY FILTER
hiring an ops role in 90d 41 of 380 replied 10.8% positive 16
no hiring trigger 30 of 860 replied 3.5% positive 6
BY ANGLE
headcount angle only angle used. No comparison available.
WHY IT WORKED
EVIDENCED
The hiring trigger is doing the work. 3x the reply rate and 73% of the
positives came from 31% of the sends. n=380, the gap holds.
HYPOTHESIS
The 78 word cap may be carrying some of this. This campaign cannot say,
every email ran under the same cap. Test: hold the trigger, run one arm
at 120 words.
THE CARRY-OVER · one change · target: LIST_HOME
Add as a required filter, not a boost:
hiring an ops role in the last 90 days
Everything without it replied at 3.5% and produced 6 positives from 860
sends. That is the floor you are paying for.
THE LOGGING GAP · start capturing: variant ID at send time
Every "why" question this readout could not answer came back to not knowing
which words went to whom. One field fixes it and makes the next readout
twice as useful.
ACCEPT? The change above writes to LIST_HOME. Nothing has been written yet.
Tips
- No number without the decision it traces to. Reply rate on its own is a scoreboard, not coaching.
- Every figure carries its denominator, and anything under MIN_SENDS is labelled directional.
- Evidenced and hypothesis are never blended. A guess is labelled a guess.
- One campaign, one tier. It refuses to roll up.
- No metric is invented. If the export does not contain it, it is listed as missing, not estimated.
- At most one carry-over change per run, aimed at one named target. If the data supports none, it proposes none.
- Every run ends with a logging gap, even a clean one.
- Nothing writes back without a person accepting it. WRITE_BACK is off and stays off.
Build a signal library that fires, decays, and combines.
Which signals actually mean now?
relevance
Run the four-part relevance check on a cold message before it sends, or on a draft that already exists.