Case Study — FunnelEnvy Client Outbound
Cold outbound for five client accounts at once, about 9,000 emails each a month
FunnelEnvy is a growth agency for B2B software companies. I ran cold email outbound for five of its client accounts at the same time. I built one system to find buyers and check their work emails, and it researched each company, wrote the emails and sent every reply to the right person. On average, each client got 10 meetings and $151,962 in new pipeline, the value of new sales opportunities, a month.
What I Ran
Each client reached 1,000 companies a month, three people at each company, with a sequence of three emails. That comes to about 9,000 emails a month for each client, and up to 45,000 a month across the five. The client names stay private.
Each client had its own workspace holding its offer, its buyers, its proof, what earlier campaigns had taught us and that week's priorities. The system used that workspace at every step. That kept five different sets of buyers apart while one system wrote to all of them. Smartlead, the cold email sending tool, sent the emails. Contacts and deals went into each client's own CRM (customer relationship management system).
How It Runs
The map shows one client's month, and the same steps ran for all five. On a computer, the boxes with links jump to the section of this page that explains them.
1 TARGET AND QUALIFY
- 1A Client workspaceOffer, buyers, proof, past results and this week's priorities
- 1B Define the ICPIndustry, size, region, buyer job titles and who to leave out
- 1C Find accountsApollo by filters, Outscraper for local businesses
- 1D Research signalsAI agents read sites, job posts and news for a reason to write
- 1E Fits the ICP and qualifies?Yes: carry on. No: Dropped.
2 TIER AND FIND PEOPLE
- 2A Set the tierBy account value. Two signals in 30 days move it up one tier
- 2B Find peopleTwo or three buyers per account, by job title
- 2C Find emailsClay or my own script tries one provider after another until one finds it
- 2D Both checkers pass it?Yes: carry on. No: LinkedIn only, or dropped.
- 2E New to the client's CRM?Yes: carry on. No: Removed: customers, open deals, opt-outs.
3 WRITE AND SEND
- 3A Choose the angleICP, signal, gap and job title pick the offer and the proof
- 3B Write itThree emails, with three versions of the first one
- 3C Preview every emailMy preview tool flags broken fields. Only the checked file is sent
- 3D Load and sendGrouped by email provider, sent from matching inboxes
- Tier 1: every channelEmails written for each account, LinkedIn, calls
- Tier 2: email, LinkedIn, callA call if they accept the LinkedIn request
- Tier 3: email onlyThe three emails
4 ROUTE, TRACK AND LEARN
- 4A n8n sorts repliesAI reads each reply. I check every one marked interested
- Interested → CRM deal, Slack alert
- Gives a date → Paused, CRM reminder
- Wrong person → Back to find people
- Names a colleague → Short email to them
- Unsubscribes → Blocked the same day
- No reply → Waits for a new signal
- 4B Weekly reviewDelivery first, then positive replies by version, tier, signal
↺ Each week's review changes the next lists, tiers and emails
I split outbound into twelve parts, and the sections below cover all of them:
- Who to target
- Why now
- Where to find them
- Finding and checking emails
- Qualifying and tiering
- The offer
- The message
- The channel
- The sending inboxes
- Checks before sending
- Handling replies
- Measuring results
Who to Target
Every client starts with its ideal customer profile (ICP). It sets the industries, company sizes and regions the client sells to, the job titles of the people who buy, and who to leave out.
Apollo, a sales contact database, finds accounts and buyers through those filters, and Outscraper pulls local businesses from Google Maps. An account stays on the list only if it fits the ICP and passes the client's qualification checks. Accounts the client can't serve are dropped before anyone writes to them.
Why Now: Signals
A signal is a recent, public reason to write to an account this month. AI agents, research scripts built on a language model, read each company's website, job posts and news to find them.
The signals differ by client. Typical ones are a new leader in the buyer's role, a job post for the work the client sells, or a rival tool on the company's website. The weekly review shows which signals lead to meetings, so the list of signals changes over time.
Tiers and Channels
Once an account fits the ICP and qualifies, its value to the client sets its tier. Two buying signals within 30 days move an account up one tier. Each tier gets a different mix of channels:
- Tier 1, the most valuable accounts: an email written for each account, LinkedIn and phone calls.
- Tier 2: the three-email sequence, a LinkedIn connection request, and a call if they accept it.
- Tier 3: the three emails only.
The client's sender, the person whose name is on the emails, sends the LinkedIn requests, makes the calls and takes the meetings. I run the campaign itself, including the lists, the emails, the sending and the weekly report.
The tiers get tested too. If Tier 3 books meetings as often as Tier 2, the tiers are set wrong, and I change them.
Finding and Checking Contacts
Each account gets two or three buyers, found by job title. Clay, a data enrichment tool, or a Python script I wrote then asks one email data provider after another until one returns a work email.
An address counts only when two separate email checkers both pass it. Some company mail servers accept every address, real or not. These are called catch-all domains, and one check can't tell a real inbox on them from a made-up one. I test each domain with an address I invented, and if the server accepts it, I mark that domain as a risk. A buyer with no checked email can still be reached on LinkedIn if their tier includes it. Otherwise they're dropped.
Then the list is checked against the client's CRM. Customers, accounts with an open deal and anyone who opted out come off, so nobody gets a cold email from a company they already talk to.
Nothing sends until I've seen every email filled in. My preview tool shows each email for each lead and flags broken fields, such as a missing first name or company name. It exports the checked file, and only that file goes into Smartlead.
The Offer and the Message
Four details pick what each email offers and which proof it shows. They are the ICP the account fits, its signal, the problem the research found at that company, and the reader's job title.
Each lead gets three emails, and the first one comes in three versions, split evenly so the weekly review can compare them. Variables fill in details such as the person's name and company, and conditional lines appear only for the leads they fit. Spintax is a set of alternative wordings the sender picks between, so emails to similar people don't read word for word the same.
The Sending Setup
Every email goes from a dedicated outbound inbox in the sender's name. These inboxes sit on secondary domains, separate web addresses bought for sending, so a sending problem never touches the client's main company email. Every inbox is warmed first, so it builds a normal sending history before any cold email goes out. Each one then sends up to 30 emails a day.
The number of inboxes comes from a simple sum: the people to reach each month, times three emails, spread over 21 sending days at 30 emails per inbox.
When a campaign loads, leads are grouped by who runs their email: Google, Microsoft, or a security service such as Proofpoint that screens mail first. Each group sends from matching inboxes, and the three versions of the first email are split evenly inside every group. Tracking stays turned off, because it adds an invisible image and rewritten links to every email, and spam filters treat both as warning signs.
Every Reply Gets Routed
n8n, an automation tool, uses AI to read each reply and sends it down one of five routes. I check every reply marked interested, because sending tools often label a reply interested when it isn't.
- Interested: a deal opens in the client's CRM, and Slack tells the sender to reply within the hour.
- Gives a date, such as "try us after our renewal in March": the emails stop, and the CRM reminds the sender to write again 60 days before that date.
- Wrong person: the account goes back to find the right buyer.
- Away, and names a colleague: we find and check the colleague's email and send them a short email that says who pointed us to them.
- Unsubscribes: the address is blocked in Smartlead and the CRM the same day.
Accounts that never reply wait on a watch list until a new signal gives a fresh reason to write. Each deal moves through the client's pipeline: meeting booked, meeting held, proposal and customer. Slack also tells the team when a campaign pauses itself or finishes.
The Weekly Review and Results
Each week's review checks delivery before anything else. A provider group, such as all the leads on Microsoft, passes when bounces stay under 2% and test emails land in the inbox. A group that fails is paused and fixed, and its numbers are left out of the comparison.
In the groups that pass, the review compares positive replies by first-email version, by tier and by signal. From the second week, it also shows which step gets the replies: the second email, the third, LinkedIn or a call. The next month's lists, tiers and emails change to match. Testing new angles, new audiences and campaigns aimed at companies picked by name this way lifted reply rates 27%.
These are the average monthly numbers per client:
- 9,000 emails to 3,000 people at 1,000 companies
- 102 replies, from 3.4% of the people emailed
- 20 companies said yes to a conversation, and 10 meetings were held
- $151,962 in new pipeline
- $27,353 in closed revenue, 11.6 times what the campaign cost to run
How I Fix a Campaign
When a campaign underperforms, the numbers usually show which of the twelve parts broke, and I change that part first. For example, if bounces stay low and replies come in but almost none are interested, the emails are reaching real people. I would test a new offer or message before I touched the lists or the inboxes.
I run a smaller version of this system for my own offers, built on public data and free tools. It's written up as the Prospect & Outbound Engine. The rest of my FunnelEnvy work, across growth, go-to-market and Reform, the form builder FunnelEnvy owns, is in the FunnelEnvy case study.
Let's build something meaningful together.
I’m open to full-time or in-house work where you need an ongoing plan or someone to lead marketing for the long term. I also offer specific marketing and GTM services for teams that need help with the work itself.