When outbound underperforms, the first thing everyone rewrites is the email. New subject line, new opening, a shorter ask. Then the reply rate doesn’t move, and the conclusion is that cold email is dead.
It usually isn’t the email. It’s that the person receiving it shouldn’t have been on the list, or the reason you’re writing is wrong, or the data that made you write is six months stale. No sentence survives that.
Three failure layers, in order of cost
List. The most expensive failure and the least discussed. A list built from a job-title filter contains people who don’t do the job, companies that don’t have the problem, and duplicates across sources. Every downstream metric inherits that error. If forty percent of the list is wrong, your reply rate is capped at sixty percent of what it should be no matter what the copy says.
Data. A correct list with stale fields is nearly as bad. Wrong company size, a title from two years ago, a funding event that already closed. Each wrong field is a reason for the reader to conclude you didn’t do the work, and readers are extremely good at detecting that in one line.
Message. Last, and the one everybody starts with. If the first two layers are sound, message is a genuine lever. If they aren’t, message is a rounding error.
What building it properly looks like
The work is unglamorous: a database with a real schema, a source and a date attached to every record, a dedupe step that runs before enrichment rather than after, and a scoring rule that decides who is worth spending money on.
Then the sending layer. Separate domains, warmup that isn’t skipped, volume that ramps on reputation rather than on ambition, and reply handling that routes a positive response to a human within the hour. Reply speed is the most under-engineered part of most outbound systems: a good reply that sits for two days is a lost meeting.
Then the write-back. One path into the CRM. Not a Zapier chain that fails silently, but a job that either writes the record or raises an alert. If the CRM doesn’t know what happened, the next campaign repeats the mistake.
Where AI actually helps
Not in writing the email. Generated copy reads like generated copy, and recipients have been trained by volume to spot it in the first line.
It helps in the parts that were previously too expensive to do per-record: reading a company website and extracting what they actually sell, deciding whether a specific event is a real trigger or noise, cleaning a job title into a role, summarising a reply into a next action. That’s work that used to be done badly by hand or skipped entirely, and doing it well raises the input quality that the message depends on.
AI is a data-quality tool that happens to write. Treat it as the former and the output improves.
The measurement that matters
Meetings per hundred contacts, traced back to the source record that produced them. That single number tells you whether the list, the data or the message is the constraint, because it collapses the whole chain into something you can compare week to week.
Reply rate on its own lies. It goes up when you send to warmer lists and down when you expand into a new segment, so it moves for reasons that have nothing to do with quality. Meetings per hundred is harder to game and closer to the thing you actually want.
The trade-off is real: building this takes longer than writing a sequence and pressing send. The first month produces no pipeline at all. What you get is a system where month three is better than month one, instead of starting over.
Written by the Max Momentum team.
See GTM engineering