Back to blog
merge tagscold emailpersonalizationoutbound

Cold Email Merge Tags Best Practices (2026)

How to use merge tags in cold email correctly in 2026 — fallback handling, dynamic content, and the merge-tag mistakes that flag emails as spam.

MapsLeads Team2026-05-029 min read

Cold email merge tags are the quiet difference between a sequence that lands at twelve percent reply and the same sequence at three percent. Done well, merge tags let one template feel hand-typed for a thousand prospects. Done badly, they leak curly braces into subject lines, salute strangers as "Hi there," and signal to filters that the sender is running a template factory. The mechanics are not complicated, but the discipline around fallbacks, dynamic content, and pre-flight testing is what separates senders who scale clean from senders who burn domains.

For the broader playbook the merge-tag layer sits inside, read the Cold email prospecting complete guide 2026. For the strategy that decides which tags are worth using, see Cold email personalization at scale. For the sequencer choices that affect tag syntax, the Cold email tools compared 2026 breakdown is the companion piece.

The anatomy of a merge tag

A merge tag is a placeholder in your email template that the sequencer replaces with a row-level value at send time. The shape varies by tool — Smartlead and Instantly use double curly braces around the field name, Outreach uses curly braces with no doubling, Lemlist supports both. The principle is identical. Three things must line up for a tag to render correctly. The column name in the CSV must match the tag exactly, the field has to exist on every row, and the value has to be the right shape for the position it lives in.

Tag names are case-sensitive in most modern sequencers and forgiving of nothing. A column called "First Name" with a space will not match a tag written as first_name. The cleanest convention is lowercase with underscores — first_name, business_name, city, rating, review_count. Pick the convention once at list-build time and never deviate, because fixing a mismatched header across forty templates after launch is brutal.

The position of the tag inside the sentence matters too. A tag at the start of a line capitalises naturally. A tag mid-sentence inherits the casing of whatever the data layer wrote. If your CSV stores city as "san francisco" and the tag sits at the top of a paragraph, the email reads "San francisco operators have…" — the small wrongness that registers as machine-written even if the reader cannot articulate why.

Fallback values, the most under-used feature in cold email

A fallback is a default the sequencer renders when the row does not have a value for the tag. Every modern sequencer supports them, almost nobody configures them, and missing fallbacks are responsible for more "Hi ," embarrassment than any other failure mode in 2026.

The syntax varies. Smartlead and Instantly use a pipe — first_name|"there". Outreach uses a default operator inside the braces. Lemlist exposes a fallback field on every variable. Whatever the syntax, the rule is the same. Every merge tag that can be missing must have a fallback, and the fallback has to read naturally inside the surrounding sentence whether the value was found or not.

The wrong way is to fall back to "there" or to the empty string. "Hi there," tells the reader you do not know who they are and tells the spam filter you are running a list. The right way is to write the sentence so the fallback completes a valid version of the message. If first_name is missing, the line "Saw the recent five-star review at …" still works without a salutation. If business_name is missing, the email should not send at all — fail the row, do not fake it.

Dynamic content blocks, where merge tags graduate

Once basic field tags are clean, the next move is dynamic content blocks. A dynamic block is a chunk of text that swaps based on a condition, not a single value. Outreach calls them snippets, Smartlead calls them spintax-plus, Lemlist calls them liquid blocks. The mechanic is the same: an if-then ladder that picks one of several pre-written sentences depending on a row attribute.

The most useful dynamic blocks are segment-aware proof points and review-driven openers. A segment-aware proof point swaps the case study based on industry. If the row is a Pilates studio, the email cites a Pilates outcome. If the row is a dental practice, it cites a dental outcome. One template, two industries, and the prospect cannot tell that the same email went to both.

Review-driven openers are richer. A dynamic block reads the rating field, the review_count field, and the review_keywords field, and assembles an opener like "Saw the -star average across reviews — the pattern is unusual for the segment." When the data is clean, it reads like a one-to-one note. When the data is dirty, the same template fires garbage. Dynamic blocks amplify both directions, which is why the testing layer underneath has to be airtight.

Eight must-have tags and five to avoid

The eight tags worth standardising on for local-business cold email are first_name, business_name, city, category, rating, review_count, review_keywords, and a free-form research_note that a researcher or an AI step writes at list-build time. These cover most useful openers, proof points, and middle-of-email references. They are also the eight that map cleanly out of a MapsLeads export with no manual reshaping.

The five tags to avoid in 2026 are last_name in the salutation, company_size when it is auto-guessed rather than verified, generic industry, today's date in any visible position, and any time-of-day reference such as "this morning." Last names in salutations read corporate and aged. Auto-guessed company size is wrong often enough to undermine credibility. Industry tags pulled from category fields tend to render as "Restaurants" mid-sentence and look automated. Date and time-of-day tags are spam signals because they confirm the sender is running a script.

The one exception worth mentioning is a custom_intro tag — a researcher-written or AI-written first line stored in a dedicated column and inserted as a single tag at the top of touch one. It is the highest-leverage tag in cold email and the one that consistently moves reply rate by three to six points when the rest of the sequence stays constant.

Testing merge tags before sending

Test before you launch, not after. The pre-flight test is the highest-return habit in cold email and the one most teams skip when they are behind on quota.

Send the full sequence to yourself with five sample rows mixed in — one with all fields populated, one with first_name missing, one with business_name missing, one with rating missing, and one with non-ASCII characters in the business name. Read each rendered email out loud. Listen for the awkward join, the "Hi ," with the missing comma, the doubled space where a tag did not render, the curly brace that leaked through. Where the test fails, fix the fallback or exclude the prospect.

Most sequencers expose a preview view that shows the rendered email per row. Use it. Sort by missing-value count and audit the bottom decile before you press send. Five minutes here prevents the breach where a thousand prospects receive an email addressed to "Hi ,".

How MapsLeads exports map cleanly to merge tags

The reason merge tags work cleanly out of MapsLeads is that the export was designed with sequencer columns in mind. The path is short. Open Search, set the category and geography, run the search. Add Contact Pro to surface verified emails and direct phone numbers for the decision-maker, then layer Reputation to pull rating, review count, review velocity, and the keyword themes that show up in the recent review window. Run dedup, export to CSV.

The CSV columns map one to one to the merge tags you actually want to use. The first_name column lands on first_name. The business_name column lands on business_name. The city column lands on city, the category column lands on category. The rating column lands on rating with the decimal preserved so "4.6" reads correctly inside a sentence. The review_count column lands on review_count as a clean integer. The review_keywords column lands on review_keywords as a short comma-separated string ready to be dropped into a dynamic opener.

This matters because the most common reason cold-email merge tags break is the reshape step between source data and sequencer. Every manual rename, every Excel cleanup, every re-typed header is a chance for a casing mismatch. MapsLeads exports skip the reshape. Map by name in Smartlead, Instantly, Outreach, Lemlist, or Salesloft and the tags resolve on the first try. Credits run roughly 1 Base per result, plus 1 for Contact Pro, plus 1 for Reputation, plus 2 for Photos when the angle needs visual coverage.

Common mistakes

Sending without a fallback. The single most common failure, and the one that puts curly braces in a real customer's inbox.

Capitalisation drift between header and tag. "First_Name" in the CSV does not match in the template, and the sequencer fails silently on most platforms.

Using rating as an integer when it is a float. "Saw the 5-star average" when the actual rating is 4.6 reads wrong. Preserve the decimal at export.

Stuffing too many tags into one sentence. A sentence with three tags is fragile. If any one of them is missing or oddly cased, the whole line breaks. Two tags per sentence is the practical ceiling.

Falling back to "there." The "Hi there," fallback is the spam-filter tell. Restructure the sentence so the fallback is invisible.

Pre-launch checklist

Tag names lowercase with underscores. Every tag in every template has a fallback configured. Every fallback reads naturally inside the surrounding sentence. The five-row test fired and reviewed by a human. Dynamic blocks audited for the if-else branches. CSV exported from MapsLeads with Search, Contact Pro, and Reputation, dedup applied. Wallet topped up before the build so the export does not stall.

FAQ

What syntax does my sequencer use. Smartlead and Instantly use double curly braces with a pipe for fallbacks. Outreach uses single curly braces. Lemlist supports both and exposes a fallback field. Check the docs once and standardise across templates.

How many merge tags should one email use. Two to four for the body, plus a single custom_intro at the top. More than five and the email reads stitched.

Should the subject line have a merge tag. One, at most. business_name in a subject line lifts open rate. first_name in a subject line is a spam signal in 2026.

Can I personalise the breakup email with merge tags. The salutation, yes. The body, no. The breakup works because it sounds generic and human, not because it sounds bespoke.

Ready to feed clean merge-tag-ready exports into your sequencer. Start on the Get started page, run a Search, layer Contact Pro and Reputation, export to CSV, and the tags will resolve on the first preview.