Outbound email is hard, outbound email copywriting is even harder. Having launched hundreds of campaigns and experimented with almost every tech stack imaginable, this is the guide I wish I had when I first started. It’s going to be packed with examples, best practices, and more importantly my thought process behind WHY I made those decisions to help you write and launch scalable personalized outbound cadences.
By the end of this guide, you should have a stronger understanding of:
Here is what this guide will not contain: email templates. Why? Well because I believe this is the wrong approach and will yield less than ideal results. This guide will also not cover deliverability as there are existing guides that better serve that topic.
Let’s take a step back. Unfortunately, in today's cold email landscape, bad emails are the norm. Having spoken to founders at some of the largest sales automation companies they admit that 80% or more of emails being sent through their platform are bad and likely spammy.
I believe that this is due to rampant misinformation on how to write cold emails, unmanageable expectations, and the process itself is incredibly difficult.
The reality is that most sales leaders that I speak to are generating 20% open rates and 1% response rates.
We all know these metrics are not great but are the standard nonetheless. This issue compounds when you look at how sales leaders attempt to fix this problem.
Rather than attempt to fix the response rate to get say even 5 responses out of 100 people reached (5% response rate) they feel pressure to dramatically increase the number of contacts touched to meet the number of conversations to hit quota.
This creates a negative feedback loop where: more emails are sent to new contacts → which means there are likely fewer contacts in your list that aligned with your ICP → which means more recipients are likely to mark your email as spam → which means you're going to have lower open and response rates due to deliverability → which means you're likely going to add more contacts to the top of your funnel.
If you are curious we have a short article covering 8 mistakes we often see in cold emails should you want to take a quick look.
It’s easy to see why this happens since it's far easier to ‘go buy more data’ than to try and troubleshoot the real issue here which is the campaign stats.
At Copyfactory we seek to disrupt the traditional copywriting process by giving outbound and sales leaders the missing tool in their sales stack to drive more responses and create personalized outbound cadences at scale.
Let’s start with the million-dollar question: “What is the definition of personalization at scale?”.
The term ‘personalization at scale‘ is highly opinionated within the B2B community, and for good reason. There is no consensus on what it truly means to personalize. Most refer to personalization at scale as only being achieved through the heavy use of merge fields and merge variables.
I disagree with this as it implies that personalization is truly unique at a contact level and through the use of technology. I believe only looking at personalization as being contact-driven is what biases outbound leaders to over-optimize on using technology and its tactical features versus a more strategic approach that may yield greater results.
I believe you can personalize at a campaign level and a contact level. The approach you take should be based on your market, available resources, and target metrics.
In an ideal world, everyone would spend 10 minutes researching and writing to every contact giving them the most compelling argument as to why they should consider your solution for a problem you know they likely have. In practice, however, you don’t have this luxury of time so we start compromising and building a list of assumptions.
Whenever I start a new campaign I always build a list of assumptions that I'm looking to prove either correct, incorrect, or irrelevant.
For example, I was running a campaign for a company looking to connect with enterprises that had legacy data systems. Here were a few of the assumptions I made:
Out of the 3 assumptions, the 3rd point proved to be irrelevant. Here is why. We had assumed that by showing that we know the current data stack they are using they would be impressed. The first line of the email looked something like this:
Hi {{first_name}}, while doing some research on companies that are currently
using {{legacy_data_system_name}} {{company}} came up [...].
Is {{legacy_data_system_name}} slowing you down from quickly getting insights
from your data?[...]
Although impressive that we can get this level of detail on a company tech stack (Tip: most major database providers can filter based on tech stack, Datanyze/Zoominfo being the leader) it didn’t work as well as the opening below:
Hi {{first_name}}, came across your profile while looking for data leaders at
companies that are likely using legacy data systems and thought it would be
worthwhile to reach out.
Are you finding yourself bogged down by siloed data and not being able to get
Here is why I believe the second approach worked better.
There is a fine line between proper research and forcing it into your copy. Even though we mostly all target based on company size we would never include “Hey reaching out because you are a company of size 10-50!”. Right? 😉.
The takeaway here is that just because you have done your research and collected custom research it does not mean you need to include it as a merge field or as a copy-paste.
Rather, you should look to weave in the context of the data point in the form of questions that show you understand the prospect’s current environment and how your product is the solution.
Remember, even though it took you 15 minutes to research the contact and gather this information the contact does not know this nor care.
Ultimately, outbound sales are highly experimental, and competitive and are a game of proving assumptions. The more assumptions you get right, the higher your response rate will be since your message will be relevant.
Every time you go into a database and query for contacts that match your ICP you are assuming they are the right ones to talk to. In most cases, these targeting decisions are primarily made based on gut instinct versus data.
For example, when we launch a new campaign we are often assume:
Along with most data points below.
Once you have defined your ICP you often go to our data provider and get a list back that is hopefully 80% or more accurate and upload the contacts to your sales automation of choice.
But now here is the problem… What do we write to them about? How confident are you in the data and the state of each account you are targeting?
This is when merge variables come into play and make our lives easier.
If we had 100% confidence in the data being the same we would ideally write something very specific with a clear purpose and context for reaching out that applies to every contact.
But since we lack this confidence or because we group several unique personas into one campaign (after all it’s time-consuming to write persona-driven campaigns) we need to amend the copy to work for ALL use cases in our data.
So instead of writing a very targeted email that is not automated such as:
Hi {{first_name}},
I found your profile after looking for other Founders at DocuTech companies
in the Bay Area [...]
We have to write:
Hi {{first_name}},
I found your profile after looking for other {{title}}s at software companies […]
We have to swap what made our opener unique into merge fields as the average marketer and sales leader is not equipped with the technology to create these personalized tokens programmatically.
Or, if you wanted to you could go with:
Hi {{first_name}}, I found your profile after looking for other {{title}}s at
{{industry}} companies in {{city}} […]
But do you want to? I don’t. I think it looks forced and automated. I’m simply not impressed and I believe the results will reflect that.
Also, notice how we quickly increased the number of merge fields through each example but the actual quality diminishes.
That’s because the role of merge fields is not to randomly insert company data but rather they are there to provide context at scale through the form of snippets and building authenticity.
The following framework that I will show you will hopefully give you insight into how I build highly scalable outbound campaigns that require minimal time investment for industry-breaking results like this:
Let’s get started.
Let’s break down the typical software platforms that you will need to launch outbound campaigns:
This is the minimum needed and depending on your industry will wildly vary in cost. I’m not going to dive deep into which tools are best since it is based entirely on your targeting criteria. Below is the tech stack we will be using:
Total investment: $88/M
Let’s go through them one by one.
Copyfactory: This will be used to build persona-driven sequences and personalize contacts in an automated way.
Typically writing an outbound sequence takes anywhere from 45 minutes to two hours depending on your experience.
Copyfactory allows us to store snippets of text, generate new ideas for our copy using AI, and automatically personalize contacts to include in our sequences.
If you are just starting or don’t have the time to write a sequence you can also have an expert outbound email copywriter write the sequence for you all within the platform.
Copywriting is often an overlooked piece of the outbound puzzle but leading outbound teams are including these tools to experiment and launch persona-driven campaigns faster.
Apollo: Used for building contact lists and launching email sequences.
I use Apollo as my ‘all-in-one’ outreach platform due to the value, feature-rich toolset, and the fact that they have everything I need in one centralized place.
I can quickly copy my messaging from Copyfactory, sync my contacts from Copyfactory as well as add A/B to test all my messaging. If you are getting started with outbound I would strongly consider taking a look to see if they are the right fit for you.
Also, with over 200M contacts it makes the entire process of finding relevant data and adding them to sequences extremely intuitive.
Phantombuster: Used for automating social data collection.
I use Phantombuster to collect social data and attempt to find people who are ‘in-market’ for my ICP. As you will see below I use the comment extractor to identify people commenting on relevant posts and articles.
Although there are risks with using social media automation tools like these since I use them for one-off jobs I have never run into any issues. They also provide plenty of documentation on what limits you should have in place to not run into any issues.
The following two sections will go over how to personalize sequences at a campaign level as well as a contact level. Both approaches are currently resulting in 15%+ response rates.
Since Copyfactory is a tool for outbound teams I’m going to be looking for those team leaders who are ideally already investing in their sales stack and who are looking to scale their personalized outreach campaigns or decrease the amount of time it takes to write new copy.
Some title keywords would include SDR leader, Head of Outbound, and Director of sales.
Now that we know who we are targeting, we need to create a sequence. Copyfactory lets us quickly create sequences that are persona-driven and well-structured to generate new ideas.
We're going to be building a 3-step sequence.
The first email will have the following structure:
The second email will have the following structure:
The third email will have the following structure:
I already have many of the snippets that I need to build a sequence since I have them stored as content blocks, so it takes about 15-20 minutes to write an entire cadence that is ready to go and test.
If ever I'm stuck, I could also generate new sales template ideas using AI directly in the editor.
If you want to take a look at the full 3-step sequence you can find the link below.
Great, now that our email structure is ready the last step is to prepare the custom snippet fields that you see in email 1 and 3.
For this campaign, I’m going to be targeting outbound leaders that engage with Cold Email influencers on LinkedIn.
Compile a list of LinkedIn posts in a spreadsheet relevant to my industry and have a decent amount of comments or likes. For our use case, we want to include any post mentioning outbound, cold email, sales copywriting etc..
For every post you add, include the post's content (we need this as context to personalize) and the author of the post).
If you do not have time to do this hire a virtual assistant online to spend 5 hours a week collecting and monitoring new posts. Upwork is what we use to find freelancers.
Use Phantombuster to pull all the people that have commented on the post. Here is a link to that phantom: https://phantombuster.com/automations/linkedin/2823/linkedin-post-commenters
Once scraped you will get a CSV back with the profile URL, name, occupation, comment, and other information pulled from Linkedin directly.
The next step is to join the data to your original spreadsheet with the post content that you uploaded to Phantombuster.
There are many ways of achieving this but the easiest is to use a VLOOKUP based on the comment URL to add the author and the post content to each exported row from Phantombuster.
If you are a Copyfactory customer reach out to support and ask how we can automate this entire process for you!
Let's take a second to assess where we are in the process. Right now we have:
Before continuing you may want to filter out titles that you don't want in your spreadsheet.
In Google Sheets you can use the filter functionality and do a 'contains' search for only the titles you want (Founders for example).
You may also want to enrich your contacts with an email address if you are doing email outreach. There are many ways of turning names, titles, and LinkedIn profiles into an email addresses so I leave that exercise up to the reader.
Almost done!
The final step is to create the personalization templates for the custom snippets that we are going to be inserting into our 1st and 3rd emails.
In Copyfactory, you can create customized personalization templates using any prospect research. In this case, we are going to be using the post content and the post author for our personalization.
If we wanted, we could also create one using the comment the prospect left, the title they have, or any other enriched information you have!
In Copyfactory (you can create an account for free if you don't already have one) head over to 'premise templates' on the left-hand side and select sentence premises.
Next, clone the premise template called 'Noticed you liked a LinkedIn post'.
At this point, you can either use the default template as is or customize the examples to change the language.
Here is what one of my examples looks like.
You don't need to change the example data - you only need to edit the 'what you would say'
Now let's duplicate this premise and change the 'what you would say' to be shorter for our 3rd email in the sequence.
Here is an example of what I put for this example, you can change it to be shorter, or longer.
Now that we have our personalization templates, prospect research, and enriched data we are ready to upload and automatically generate all of our snippets for our 1st and 3rd emails in the sequence.
In Copyfactory, create a playbook using both of the personalization templates we just created and assign them to a sentence field for email snippet 1 and email snippet 3.
You might notice that I have this playbook set to auto-sync to Apollo once new contacts are created. This integration means that the personalized sentences that Copyfactory will generate will be automatically pushed to the custom field snippets in Apollo.
Finally, upload the contacts using the new playbook we just created and the sequence we made earlier.
You are done!
Now, for every contact that you upload, Copyfactory will analyze the content, summarize it, generate 2 sentences for each of your personalization templates using the training examples you provided, and push that data over to Apollo so that they are ready to enroll.
This is one of the dozens of personalization workflows we run at Copyfactory to generate hundreds of responses every month while saving thousands of hours in the process.
Here are some of the stats from this workflow:
This type of workflow is simply not possible without the help of an AI copywriting and personalization platform that gives you full control over the research and generation output. If you want to get started you can create an account for free and start experimenting with true personalization and improve your response rates.