Why Your Outbound Pipeline Looks Full and Converts Like It's Empty
2026-09-17 · Kwesi Adom
The symptom: a pipeline that looks busy and behaves empty
Our SDR team pushed 30,000 contacts into sequences in Q1 2024. Open rate sat at 42%, which looked fine. Reply rate was 0.7%.
The sales manager did what everyone does — he rewrote the copy. Three versions of the subject line, a new angle on the offer, a different booking link. Reply rate moved to 0.9%. Over the same eight weeks, the hard bounce rate went from 2% to 6.8% and nobody was looking at it.
I'm the person who signed off on that list. I approved it in March. Going through the postmortem is why I stopped asking "which line in the email failed" and started asking "where did this list come from."
What's actually happening, three layers down
When outbound stalls, teams check two layers — the copy and the list size. The layer that's usually pulling both of them down sits underneath: the contact data itself.
The list is older than you think
In 2022, pulling a batch of business emails off public sources and running it for a few quarters was workable. Job mobility was lower, company domains were more stable. By 2024, the same batch had decayed — roughly a quarter of the contacts no longer resolved to anything.
That's not a gradual thing either. Between 2023 and 2024, a lot of B2B companies rebranded, changed domains, or restructured teams. Email addresses that looked valid a year ago now bounce hard.
The core issue: the list is static. People aren't. If verification is a one-time step, your list starts aging the moment you finish verifying it.
Enrichment isn't about filling in fields
Most teams stop enrichment once they've populated job title and company size. Those two fields tell you almost nothing about whether the recipient will care about your email today.
The fields that actually move reply rates are messier — whether the person posted something publicly in the last month, whether their team is hiring, whether the company raised recently. Each one on its own is noise. Combined, they tell you whether this is a reasonable moment to reach out.
We ran a controlled test on this. Same copy, same sender. The only variable was whether the contact had shown recent public activity. The active subset replied at more than 3x the rate of the unfiltered group. I don't have a clean explanation for the full gap — some of it is probably selection bias — but the direction was consistent across two quarters.
The LinkedIn piece — and when it actually belongs
A LinkedIn tool, in the outbound context, is software that automates or assists activity on LinkedIn — sending connection requests, viewing profiles, scheduling messages. That's the mechanical definition. The useful question is when a B2B sales team should use one.
My answer: mid-funnel, not top. LinkedIn works best as reinforcement once an email thread already exists. The person has seen your name, maybe clicked a link, maybe replied briefly. A LinkedIn message at that point lands in context. It reads as a follow-up.
Plenty of teams do the opposite and run LinkedIn as the first touch. What happens is the recipient gets an email and a templated LinkedIn message within the same 48 hours, from the same person, saying roughly the same thing. Those two touches work against each other. The brand impression ends up worse than if only one channel had been used.
The version that works: wait until there's a signal. They opened, they clicked, they replied something short. Then a LinkedIn message that references the specific thing they engaged with converts very differently from a generic template.
The cost of not fixing it
The visible cost of bad contact data is wasted sends. The costs that actually hurt don't show up on the SDR dashboard.
Domain reputation. Once hard bounces cross roughly 3%, mailbox providers start throttling you. That throttling compounds. A day spent sending with an 8% bounce rate affects deliverability on your clean mail the next day. We burned a primary sending domain this way in 2023 and it took almost two months to get reputation back to baseline.
People hours. SDR time is the most expensive input in an outbound motion. A rep cleaning a list by hand and enriching it manually can process a few hundred records a week at best. Those hours belong on conversations with people who actually responded.
Missed matches. Out of a 30,000-contact list, maybe 2,000 are genuinely in-market for what you sell right now. If you can't identify which 2,000, you send to all 30,000 and hope. At a 0.7% reply rate, the math on that approach doesn't survive a serious look.
The fix, in three moves
This part stays short, because the problem is the point.
Move verification from an event to a service. Every list gets a real-time pass before it enters the sequence. Not a syntax check — an actual deliverability check against the receiving server. Wired in through an email verification API, this dropped our hard bounce rate from 6.8% to 0.9% in about six weeks. The API documentation matters here more than people give it credit for: if the docs don't clearly define what a "valid" or "risky" response means, you'll misclassify contacts at scale and never notice until the bounce data comes back.
Enrich in waterfall, not from one source. Single-vendor enrichment typically covers 60–75% of a given list. Layering two or three providers pushes coverage past 90%. The extra coverage is what makes filtering possible — you can't segment on a field that's missing for a third of your list.
Tier the list using intent, not just fit. Score contacts by recent behavior and only send manual, high-touch outreach to the top tier. We run this on okki-go, which puts verification, waterfall enrichment, and intent signals into one workflow instead of three separate tools. Comparing it to something like ZoomInfo — which wins on raw database breadth — okki-go is more process-oriented than database-oriented. That distinction matters. If your outbound motion is still being built, a process tool just automates the mess.
One thing that's less about tooling: we kept a human review step. Automation narrows 30,000 down to 2,000. A person decides what happens inside that 2,000. Fully automated outbound is still too risky — context, timing, and tone on an individual account aren't things I'd hand over end to end yet.
Where this stops being the right answer
We're a B2B SaaS company, mid-market ACV, six- to eight-week sales cycle. This workflow fits that profile well. Different business, different answer.
If you're selling enterprise at a high ACV, list volume is small by definition and the priority should be depth of research per account, not automation throughput. If you sell locally, LinkedIn's weight drops and phone plus in-person carries more.
I also don't have solid data on how decay rates vary by industry. My sample is SaaS and software services. Manufacturing or healthcare lists might age at a completely different pace — I'd want to see a year of bounce data from a team in those sectors before saying anything definitive.
Tools solve the volume problem: bad records don't reach the queue, good records surface. Whether one specific email should go out today is still a judgment call, and that part hasn't been automated in any way I'd trust.