How to Personalize Cold Emails With Merge Tags That Don't Break

A practical walkthrough for adding names, cities and categories to every email, cleaning your data first, and testing before anything goes out.

Updated Nov 6, 2026 · 5 min read

Sending the same email to 300 businesses feels efficient until you read it from the other side. A plumber in Leeds gets a message that could have gone to anyone, and it reads that way. Writing 300 custom emails by hand is not realistic either. Merge tags sit in the middle: you write one email, and each recipient gets their own name, city and business type dropped in.

The catch is that merge tags only work as well as the data behind them. A blank field or a messy business name can make an email look more automated, not less. This guide walks you through doing it properly, today.

Step 1: Decide what you can actually personalize

Before writing anything, open your lead list and look at which columns are reliably filled. Personalization you cannot back with data is just a gap waiting to show.

The fields that tend to be useful for small business outreach:

  • Business name: almost always present, often messy.
  • First name: valuable, but frequently missing for local businesses.
  • City: usually present and easy to use naturally.
  • Category: tells you what they do, so you can match your pitch.
  • Website: useful for a specific reference, and a signal they are reachable online.

If you are building a list from scratch, it helps to understand what a good lead list contains and which firmographics matter for your offer. Pick two or three fields you trust. That is enough.

Step 2: Clean the data before you write

This is the step people skip, and it is where most embarrassing emails come from. Go through your list and fix:

  • Business names with extras. "Smith & Sons Electrical Ltd - 24hr Emergency Electrician Near You" is a listing title, not a name. Trim it to "Smith & Sons Electrical".
  • All caps or all lowercase. "JOE'S PIZZA" reads like a database dump. Fix the casing.
  • Categories that don't read well in a sentence. "Electrical installation service" may need to become "electricians". Decide on the phrasing you want to appear in the email.
  • First names that aren't names. "Info", "Admin" or "Team" sometimes end up in a name field. Delete them.

A quick spreadsheet pass is fine. If you import a CSV into a tool, do the cleanup first so you are not fixing it twice. Sort each column alphabetically, since odd entries tend to cluster at the top or bottom.

Step 3: Write sentences that survive a blank field

The rule of thumb: every sentence with a merge tag should still make sense if you imagine the worst value going in.

Compare these:

  • Risky: "Hi {{params.firstname}}, I loved what you did with {{params.website}}." If the name is empty you get "Hi ," and the website line sounds fake anyway.
  • Safer: "Hi {{params.firstname}}," sent only to leads where the first name exists, and a separate version opening with "Hi there," for the rest.

The cleanest approach is to split your list. Put leads with a confirmed first name in one folder and the rest in another, then run two versions of the same campaign. It takes five extra minutes and removes the most common failure.

Some patterns that read naturally:

  • "I was looking at {{params.category}} businesses in {{params.city}} and came across {{params.name}}."
  • "Quick question about {{params.name}}'s website, {{params.website}}."
  • "Most of my work is with {{params.category}} owners around {{params.city}}."

Read each one aloud with a real row from your list. If it sounds like a form letter, rewrite it.

Step 4: Use the exact merge tag format

Typos in merge tags are silent. The email sends, and the recipient sees raw curly braces or nothing at all.

In GetClient, the tags must be written exactly like this, because only this form gets filled in at send time:

TagWhat it inserts
{{params.name}}Business name
{{params.firstname}}Contact's first name
{{params.website}}Website
{{params.city}}City
{{params.category}}Business category

Not {{name}}, not {{Params.Name}}. Copy and paste them rather than typing them by hand. The same care applies to the subject line, which is where a broken tag is most visible.

Step 5: Preview every step with real rows

Never send a personalized campaign without checking how it renders. In GetClient's campaign builder you can preview each step, which matters because follow-ups get written quickly and often carry their own tags.

What to check in the preview:

  1. Pick three or four leads, including the messiest one you can find.
  2. Read the subject line and first line for each.
  3. Check follow-up steps, not just the first email.
  4. Look for doubled words ("Smith Electrical electrical") caused by a name that already includes the category.

Then send a test to yourself from the actual account you will use, whether a connected Gmail or another SMTP account, and read it on your phone.

Step 6: Add one line merge tags can't write

Merge tags make an email feel addressed. They do not make it feel researched. For your best-fit leads, add one sentence you wrote yourself: something you noticed on their site, a review theme, a service they don't list. Keep it short and specific.

You don't need this for every lead. A sensible split is tags-only for the broad list and a hand-written line for your top tier. Keep the rest of the email focused on one call to action so the personal touch isn't buried.

If you want examples for a specific trade, the restaurant cold email templates show how category and city can be worked into the copy.

Step 7: Test whether it's helping

Personalization takes effort, so check it earns its place. Run two versions to similar slices of your list: one with the business name in the subject line, one without, for example. Change one thing at a time. The guide to A/B testing cold emails covers how to set this up without fooling yourself with tiny samples.

Watch replies more than opens. A personalized subject line that gets opened but no answers isn't doing its job.

If you'd like to try this with a list and campaign in the same place, GetClient gives new accounts free credits with no card needed; see plans and credits.

Frequently asked questions

The tag is replaced with nothing, so you can end up with "Hi ," or a sentence missing a word. Filter or split your list so leads without that field get a version of the email that doesn't use it.

AI-powered lead generation from 8 sources

Live leads from Google Maps, Yelp, Yellow Pages, YouTube, Facebook Ads, TrustMRR, Skool and Skool Discovery — AI finds the owner, emails and socials for every one. Start with free credits.

More from Blog

See all