There are really only three ways to personalize cold email at scale, and they are not equally good. Merge tags drop a stored value into a fixed template. AI variables generate a custom snippet per contact and slot it into that template. Full draft generation throws out the template and writes the whole email from scratch for each person. This piece compares all three honestly, including where each one is genuinely the right call.
It helps to be clear about what "personalization" even means before comparing methods. The reader does not care how clever your system is. They care whether the email feels like it was written for them. The three methods differ mostly in how much of the message actually changes from one recipient to the next.
Method 1: Static merge tags
This is the original, and it is still everywhere. You write one template with placeholders like {{first_name}} and {{company}}, and the sending tool fills them in from your spreadsheet. Almost every email platform supports it, and it costs nothing extra.
What it does well: it is simple, instant, and reliable for warm audiences who already know you. For a newsletter or a re-engagement email to existing contacts, a first name is plenty.
Where it breaks: the body of the email is identical for everyone. On cold outreach, a visible merge field now reads as a tell rather than a touch. "Hi Sarah, I saw Acme is growing fast" signals a form letter, because the only thing that changed is the label. If a tag fails to populate, the seam shows even more, and you get the dreaded "Hi {{first_name}}."
Method 2: AI variables
This is the current mainstream upgrade. Instead of inserting a stored value, the system uses AI to generate a fresh snippet for each contact — most often a personalized opening line — and then slots that into your template. Clay popularized this with its enrichment-plus-AI workflow, and senders like Smartlead and Instantly offer their own versions. Apollo bundles similar AI writing alongside its data.
What it does well: a custom first line that references the contact's company or recent activity is a real step up from a static tag, and it scales to large lists. For many teams this is the sweet spot of effort and quality, especially when paired with good enrichment data.
Where it breaks: only the variable is personalized. The rest of the email — and crucially every follow-up in the sequence — is still the same template for the whole list. You have moved the seam down a sentence, not removed it. The opener says one thing about the reader and then the email snaps back into generic pitch. You also still own and maintain the template, and you still have to debug variables that come out awkward or wrong.
Method 3: Full draft generation
This is the newest approach and the most different. There is no template. The system researches each contact, picks an angle, and writes the entire email — subject and body and every step of the sequence — from scratch for that one person. Two contacts on the same list might get emails that share no sentences at all.
What it does well: every line can reflect the specific person, not just the opener. Because there is no shared scaffold, there is nothing for the reader to recognize as a template, and nothing for you to maintain or debug. It is the only method where the follow-ups are as personalized as the first touch.
Where it asks more: you are trusting the system to write the whole message, so the quality of the research and the writing matters more, and a review step becomes essential. Done well, that review is built in. Done badly, you are just generating generic emails faster, which helps no one.
The three side by side
| Merge tags | AI variables | Full draft generation | |
|---|---|---|---|
| What changes per contact | A stored value | One generated snippet | The entire email |
| Template underneath | Yes | Yes | No |
| Follow-ups personalized | No | Rarely | Yes |
| Maintenance | Low | Medium | Low |
| Best for | Warm lists, newsletters | Cold lists wanting a custom opener | Cold lists wanting every line to fit |
So which should you use?
If you are emailing people who already know you, merge tags are fine and you should not overthink it. If you are running cold outreach and want a real lift without leaving the template model, AI variables are a sensible default, and the tools above do them well. If your reply rates have flattened because buyers see through templated openers, or you want your follow-ups to carry the same weight as your first email, that is where full draft generation earns its place. We go deeper on the Clay-specific version of this question in Clay's AI personalization vs writing the whole email.
Frequently asked questions
Tools referenced: Clay, Smartlead, Instantly, Apollo.