A complete guide to running a cold email sequence

Guillaume Odier
September 17, 2020

At Captain Data, we’ve mostly relied on word of mouth and inbound marketing.

But at some point, you always need to dig a bit deeper to find exactly what you’re looking for: qualified leads in a specific niche. Why? Well, in B2B it’s always a good idea to start with a niche: test on a small audience, validate, scale.

Working with niches enables you to craft very targeted sequences while aiming at high KPIs. For this exercise, I’m aiming to reach 400 companies with a 20% reply rate.

This means I want my sales team talking with 80 leads. I’m considering that a 25% closing rate is an achievable goal given what we’re selling. In the end, what I’m really targeting is a €4K MRR increase.

(400 companies with a 20% reply rate gives us 80 qualified leads; with a 25% conversion rate at a €200 average transaction per month, that amounts to €4K MRR.)

And it means one thing: we’re going hunting.

I’ve written this guide while doing this exact process; this way you have all the cards.

Drafting your process

Here’s the basic layout:

  • Defining your target(s): the first and maybe only thing that really matters is understanding who you’re talking to
  • Creating exclusive materials; in our case one landing page and an article (the one you’re reading is a bonus 😄)
  • Identifying & extracting leads
  • Refining the search
  • Creating the sequence layout
  • Setting up the email sequence in a tool
  • Review
  • Launch

Defining outbound targets

At Captain Data, we’re doing marketing automation. Obviously, marketing agencies seem to be a good target from the get go, right?

Now, we’re looking to expand, especially in the UK because we know the market is more mature than in France.

My persona is fairly easy to draft: an owner or executive that is working in a marketing agency. Their goals are clear: growth for their company (acquisition) and growth for their clients (process implementation).

Since we already have a few agencies as clients, it’s fairly easy to understand a few of their pains:

  • Scaling multiple clients is not easy
  • Each client is using multiple accounts and a different stack
  • Managing margins is a killer (highly competitive market)
  • Need for multiple data sources for different kind of processes

Anyway, as the list goes on, we realized that the best materials to address those was:

Creating exclusive materials

When creating content & materials, I’m a big fan of re-usability

The idea is the following: “What can I create once that I’ll be able to distribute on multiple channels?

In the case of the landing page “Phantombuster alternative”, it’s pretty easy:

  • Creating targeted ads
  • Sharing it on communities (Facebook/LinkedIn groups, Slack etc.) 
  • Sending cold emails
  • Identifying influencers and sending them the landing page

This way, I have content that scales, quality materials that I can re-use and distribute easily.

Measuring impact

When running an experiment, you should always run the numbers:

  • Who exactly are you targeting, what’s your audience size
  • How do you scale this audience? (if you can’t, it’s probably too niche or a one-shot)
  • What’s your MRR target?
  • What conversion are you tracking and aiming for?


We’re using ClickUp to follow everything but you could just use a spreadsheet to begin with, it looks like this:

Finding leads with Sales Navigator

The entire campaign is focused on Digital Marketing Agencies (DMA), the idea being to talk to owners and VPs.

As we often like to remind our customers to start small and then scale it, I decided to target only Internet DMA owners in the UK.

This way I can precisely craft my sequence later on for this specific market.

My initial search was the following (here’s the link): 

  • Selecting “Lead results” on Sales Navigator
  • Internet as industry
  • UK as geography
  • Owners as seniority
  • 1 to 200 employees

Which resulted in 240 found leads in the search: not bad considering I’m looking for a niche.

But looking at the results, I realised my search was not accurate at all 🧐

I changed my search for an “Account results” one: see the link, which found 596 companies.

I took a look at the last page and found that the results were still coherent. And it does make sense: it’s way easier to classify a company as a “Digital Marketing Agency” rather than directly finding people that are working in an agency.

Searching with keywords only searches for the entire result “snippet”, meaning anywhere in the profile’s data. And it’s definitely not always accurate.

Searching with title only searches inside the “title” data, so it’s more accurate but not very useful when it comes to searching for what I want.

Good news is, if the process works, I’ll be able to easily replicate it with any industry and country. Remember what I said about testing small then scaling it?

Since I know Captain Data by heart, I know we have a workflow that I could use straight out of the box. But I’d rather validate a few things first.

Double checking the process

One thing customers tend to forget about automation is that it’s not magic: you should always be manually testing what you’re doing before actually automating it.

I need to validate that the “Employees Title”, “Employees Keywords” and the “Seniority Level” of my search are accurate. This means that I’ll randomly test it on a few companies.

Take any page results and click on “View All Employees

This gives you the following kind of search: https://www.linkedin.com/sales/search/people/list/employees-for-account/2924381

Notice the “employees-for-account” part? This is what we’ll use later on.

So, I’m looking for owners, founders and VPs... Selecting “Owners” as seniority level, the URL changes with an additional parameter “seniorityIncluded=10”. Let’s keep this for later.

And it seems to work, as it filtered out the only owner for this company:

Yes, thank you, LinkedIn, I found what I was looking for 👍

I did the same for a couple other companies, especially looking at the employees count because I know that from one company to another, titles can change a bit.

It gives me one to two results per company: perfect, I don’t need more. It’ll roughly output 750 profiles in the end.

Given the fact that I’ll probably find around 50% emails (email finder tools never find 100%), I’ll find about 400 emails for my campaign, just about what I’m aiming at.

What if I don’t find the email? I’ll be able to run a LinkedIn sequence.

What if I don’t reach the owner, if they’re avoiding me, not replying? I’ll have the opportunity to create another campaign that will target employees on a director level or in a more operational role. 

This is more an ABM (Account-based marketing) approach that would require an entire article itself.

Extracting data

This is fairly easy once we’ve done everything above:

I just have to copy-paste my search URL into the “Inputs” section and add the parameter “10” to the seniority level.

As a reminder, I found this value by modifying the filter previously and extracting it from the URL when it updated.

This will apply the filter “Owners” to “Seniority Level”.

Behind the hood, the workflow does the following:

  • Accounts search
  • Extract the company page
  • Filters out the “Owners” for each company
  • Extract the owner(s) profile(s)
  • Aggregate the data
  • Find the email using an email provider

Note that when signing up to Captain Data, we’ll help you select the workflow that matches best what you want to do.

I just have to click “Launch” and wait for the results; it took me less than 30 seconds to configure 🎉

Crafting the sequence

Let’s draft out the sequence (and write this article!) while we’re waiting for the results.

I decided to test a new format: 6 emails distributed in 3 sequences.

The first three are solely designed to jump on a call, nothing else.

Starting with the 4th email, we switch the subject to try and qualify leads a bit more: are they using Phantombuster?

Here I’ve decided to start sharing the content we produced. That’s also why I’m “breaking” the sequence with this new subject, this way the lead does not notice that I sent 3 messages in the previous days.

The 6th email is the “smart-arse” one: I’m taking advantage of the fact that I’ve been writing about “them” (hello there if you’re reading this 👋) to let them know how I did it and why.

Anyway, I alway felt that sharing valuable content is always a win, because in the end it educates the market. And an educated market is a mature market. And a mature market buys more easily 💸

Configuring the sequence

By the time I finished the sequence layout, the workflow was not finished (though it was already at 50% completion, not bad), which gave me a bit of time to set up the sequence on Lemlist.

If you haven’t done it yet, check that the following are set up correctly:

  • SPF
  • DKIM

This is an absolute need: check out this email deliverability article by Lemlist if you need more details.

Cleaning data

When finished, the first workflow run on Captain Data found roughly 50% of the emails, not bad for a start. But emails are clearly not equal in terms of quality: some are valid, some look like catch-all, etc. 

The first provider I used was ColdCRM, which is quite good in terms of quantity/quality. 

I then uploaded the file, still in Captain Data, to use Dropcontact enrichment.

And then did the same with Hunter for the emails I did not find with Dropcontact.

All in all, I ended up with 300 emails, about 75% valid.

Note that I know that Hunter does not validate everything, so I ran an additional check with Neverbounce. I’m always targeting less than 5% bounce, since it impacts deliverability and my domain reputation.

The Neverbounce analysis found 33 “invalid” emails, which I excluded right away; we’re now left with 252 valid emails. 

Even though I’m targeting 400 leads, I’ll settle for this since I need to test anyway.

Taking another look at the data, I also found various titles I’m definitely not interested in: web analyst, e-commerce specialist, professor, student… This is typically the reason why you always need to double-check your spreadsheet.

If you want to scale things later, you’ll need to include “NOT” terms in your title boolean search for each title you know isn’t interesting for you. 

But it’s never that easy, and LinkedIn is not always very smart, as you can see in the next section.

Refining the search

After analyzing everything, I decided to immediately refine the search.

Indeed, I knew that I’d want to scale this all a bit later, so I started adding everything that was not relevant in the title field.

It’s a little tedious to do at first, because you need to iterate through each page to validate that results are still relevant. But if you’re not doing it, you’ll eventually have to do it on your spreadsheet later, which will be way more painful, believe me.

This gives me the following query for the “title” filter:

NOT ("developer" OR "assistant" OR "student" OR "professor" OR "technical" OR "e-commerce" OR "specialist" OR "manager" OR "CTO" OR "account" OR "consultant" OR "advisor" OR "strategist" OR "designer" OR "non executive" OR "member" OR "consultancy" OR “president” OR “advocate” OR “board of advisors” OR “intern” OR “product” OR “partner” OR “board” OR “junior” OR “licensing” OR “specialist”)

Sometimes LinkedIn classifies interns as owners or VPs, so definitely take that into account 😂 

When do you know you’re good to go? When the last page of results are still relevant :)

From the initial search with 612 results, the boolean search resulted in 371: a nice clean list, we might say.

Finally, I checked every line, especially the title one, and deleted the leads that were not in my target, ending up with a bit less than 300 leads.

Importing data

We’re using Pipedrive as a “Single source of truth”, meaning that everything related to leads lies inside Pipedrive.

I won’t go into the details here because it is strictly related to how we manage things at Captain Data. 

The process looks like this - it’s a bit technical, stay with me:

  • I apply our “Leads Model” template to my spreadsheet: we have a specific model that ensures data quality that I need to respect
  • I first launch a workflow on Captain Data that reads value in my Google Sheets
  • After this, a webhook (trigger) is sent to Integromat
  • Inside Integromat, we download the data, and apply a bunch of filters:
  • Do we know this person? This company?
  • Do we need to update the data? Add it?
  • We’re tagging everything accordingly to be able to filter it later on

The process is (almost) 100% automated.

Once I have everything in Pipedrive, I just need to select the filter in Lemlist.

The campaign

It’s still running obviously (16/09/2020) so I’ll update this later!

Improving the campaign

WIP 🙂

Conclusion

All in all, it took me roughly a day to:

  • Create a landing page
  • Write a blog post
  • Collect 300 qualified leads
  • Create a sequence
  • Validate everything
  • Set up & launch the sequence on Lemlist
  • And finally write this article!

Once your process is optimized and you know how to scale it, believe me it can become very efficient.

If the campaign runs successfully, I’ll be able to scale:

  • From one country to another
  • Using different verticals
  • Using “similar companies”

If it’s not working, I’ll let the leads sleep a little and try something else in 2/3 months (a lead is never dead).

Growth hacking is a matter of efficiency, and it does not come from the tools but the process.

If you have the worst process with the best tools, you’ll end up nowhere 🤘 

A good process with the best tools? You got it.