Merge-Variable Checker

A single broken merge tag — like sending Hi {{first_name}}, or Hi , to a thousand decision-makers — instantly destroys campaign credibility and damages sender reputation. This free validator audits your email templates for unclosed brackets, missing fallback defaults, spacing traps, and CSV header mismatches. Everything runs in your browser, so your campaign copy and prospect data are never uploaded or stored.

Free tool · nothing is uploaded

Merge-Variable Checker

Validate {{first_name}} syntax, catch unclosed braces, verify fallback defaults, and preview empty-field rendering.

  • Brackets & syntax
  • Fallback coverage
  • Punctuation hazards
  • CSV header match

Email template & variables

Paste subject and body. Detects {{tag}}, {{tag|fallback}}, {{tag | default: 'val'}}, and *|TAG|*.

Select to enforce specific fallback and syntax rules.

Paste key-value pairs or CSV header columns to verify mapping.

Validation health score

Enter or paste an email template above to audit merge tags and view health metrics.

Detected variables & audit findings

Variable Name Raw Tag Fallback Value Format CSV Match Status
No merge variables detected yet. Paste a template above.

Audit findings & recommendations

  • Info Enter copy in the template field above to run automated checks.

Live rendering simulation

Compare how your email renders when recipient data is populated versus when a prospect field is empty.

Populated prospect preview Lead: Sarah · Acme Corp

Awaiting template input...

Empty-field fallback audit Simulates missing CSV cells

Awaiting template input...

Blue mark = Populated prospect value Green mark = Safe fallback applied Amber/Red wavy = Missing fallback & punctuation trap

Why Merge-Variable Errors Ruin Cold Outreach Campaigns

Personalization is the cornerstone of effective outbound sales. Research consistently demonstrates that relevant, customized cold emails achieve significantly higher reply rates than generic blast templates. However, when merge tags fail, the damage is immediate, severe, and irreversible. A broken merge tag — such as an email opening with Hi {{first_name}}, or Hi , — instantly reveals that the recipient is just another line in an automated spreadsheet.

The consequences extend far beyond a momentary embarrassment. Deliverability algorithms monitored by Google Workspace and Microsoft 365 Defender track recipient engagement signals. When prospects receive obviously automated emails with broken merge variables, spam complaints and instant deletions surge. High spam complaint rates degrade sending domain reputation, causing subsequent outreach sequences to land directly in spam folders. Validating merge variables prior to importing campaigns into your sending platform prevents embarrassing delivery failures and protects your domain health.

Understanding Merge-Tag Formats Across Outreach Platforms

One of the primary causes of broken personalization in cold outreach is platform syntax inconsistency. Different email sending platforms, customer relationship management (CRM) software, and marketing automation engines use distinct templating languages. What functions seamlessly in one platform will render as broken, unparsed code in another.

Outreach Platform Standard Tag Syntax Fallback (Default) Syntax Case Sensitivity
Instantly & Smartlead {{firstName}} or {{first_name}} {{firstName|there}} Sensitive to CSV mapping
Lemlist {{firstName}} {{firstName|there}} Strict camelCase mapping
Apollo.io {{first_name}} {{first_name}} (Set in UI settings) snake_case standard
HubSpot {{contact.firstname}} Set via personalization token UI Lowercase dotted object
Mailchimp *|FNAME|* *|FNAME:Friend|* Uppercase merge tags
ActiveCampaign %FIRSTNAME% Set in contact field preferences Uppercase percent tags
Salesforce / Pardot {{{Recipient.FirstName}}} Pardot default merge values Triple-curly bracket format
Liquid / Jinja Engines {{ first_name }} {{ first_name | default: 'there' }} Strict template filter

The Top 5 Merge-Tag Blunders and How to Prevent Them

1. Naked Greeting Variables and the "Hi ," Trap

The single most common mistake in cold email is sending a greeting variable without an explicit fallback default. When your prospect CSV contains empty cells for first names, an email written as Hi {{first_name}}, evaluates to Hi ,. This leaves an awkward isolated comma with an unnatural space before it. To prevent this, always specify a natural fallback value such as {{first_name|there}}. When the lead record has a name, it renders as Hi Alex,. When the field is blank, it renders gracefully as Hi there,.

2. CSV Column Header Mismatches

Sending software maps merge variables directly against the column header names in your uploaded CSV file. If your template references {{first_name}} (snake_case) but your CSV column is labeled First Name (with a space) or FirstName (PascalCase), the sending platform may fail to populate the variable. Depending on the software, it may either send an empty string or output the raw code {{first_name}} into the email body. Always normalize your CSV headers before importing lists.

3. Mismatched and Unclosed Braces

When drafting and editing email copy, it is easy to accidentally delete a single bracket or introduce unbalanced braces. Common syntax errors include {first_name}} (single opening brace with double closing), {{first_name} (double opening with single closing), or {{first_name (completely unclosed). Most outreach software will fail to parse malformed brackets, displaying raw, broken code directly to your prospect.

4. Spacing and Preposition Hazards

Variables placed immediately adjacent to prepositions create awkward phrasing when left without fallbacks. For example, the sentence "I noticed your recent announcement at {{company}}." reads naturally when populated. However, if company is blank and has no fallback default, the sentence becomes "I noticed your recent announcement at .". When personalizing company names, either configure safe fallbacks like {{company|your team}} or structure the sentence so that a blank value does not create grammatical errors.

5. Accidental Spaces Inside Variable Names

Typing a space inside double braces — such as {{ first_name }} instead of {{first_name}} — is supported in Liquid and Jinja engines, but breaks variable parsing in several popular cold outreach tools. Keep variable tags compact without unexpected interior spaces unless your platform specifically documents support for them.

Step-by-Step Guide: How to Safely Configure Fallbacks

  1. Audit your greeting lines: Ensure every introductory line uses a fallback. Recommended fallback words include there, friend, or a relevant professional term. Never use generic corporate words like "Customer" or "Valued Client" in cold outreach.
  2. Audit company mentions: If you reference a prospect's company with prepositions ("at {{company}}"), use fallbacks like your team or your organization.
  3. Check punctuation placement: Verify how commas and exclamation points interact with your fallbacks. A greeting configured as Hi {{first_name|there}}, guarantees correct punctuation in both populated and fallback states.
  4. Verify CSV column headers: Export your prospect list as a CSV file and verify that the column header names exactly match the variable names in your template.
  5. Send a live test email to an empty profile: Before activating a sequence, dispatch a test email to a record where all custom fields are intentionally blank. This verifies that your fallbacks trigger correctly in real inbox environments.

How the 100-Point Validation Heuristic Works

The Merge-Variable Checker calculates an objective 0–100 health score based on four critical dimensions of template hygiene:

  • Syntax & Braces Integrity (up to 65 point deduction): Catches unclosed brackets, mismatched opening/closing braces, empty tags, and platform syntax incompatibilities.
  • Fallback Default Coverage (up to 30 point deduction): Penalizes naked greeting variables and unshielded company tags that risk leaving blank holes in sentences.
  • Punctuation & Spacing Hygiene (up to 25 point deduction): Identifies stuck tags (missing whitespace before or after braces) and punctuation traps like trailing commas after missing names.
  • CSV Header Alignment (up to 30 point deduction): Compares template variables against your provided CSV column list and alerts you to missing or mismatched columns.

Honest Limitations of Client-Side Checking

While this tool catches syntax errors, bracket slips, and fallback deficiencies with high precision, client-side validation has specific operational boundaries:

  • Platform Account Settings: Some outreach tools allow users to set global fallback defaults inside account preferences (e.g., globally defaulting missing first names to "there"). Client-side tools cannot inspect your private platform settings.
  • Dynamic CRM Formulas: Advanced Liquid logic containing nested {% if %} conditions, loops, or custom date math cannot be completely executed without a full server-side Liquid engine.
  • Live CSV Data Integrity: This tool verifies that your template variables match your expected column names; it cannot verify whether specific rows in your spreadsheet contain invalid emails, typos, or corrupted characters.

Frequently Asked Questions

What happens if I send {{first_name}} without a fallback and the CSV cell is empty?

Depending on your sending platform, one of two failures occurs: either the platform replaces the variable with an empty string — producing Hi , with a dangling space and comma — or it fails to parse the tag and prints the raw code Hi {{first_name}}, directly into the recipient's inbox. Both outcomes immediately signal an automated blast.

Does Instantly and Smartlead support Liquid filters like | default:?

No. Instantly and Smartlead do not use the full Liquid templating syntax. Instead, they use a simplified pipe fallback syntax: {{firstName|fallback}}. Using Liquid filters like {{ firstName | default: 'there' }} will result in the literal filter text being printed in your email.

How should I handle punctuation after greeting variables?

Place the punctuation outside the closing brackets, and ensure your variable has a fallback. For example, write Hi {{first_name|there}},. If the contact has a first name (e.g. Alex), it reads Hi Alex,. If the contact has no name, the fallback fires and reads Hi there,. In both scenarios, the comma sits in the grammatically correct position.

Why did my email tool send {{company}} as raw text instead of the prospect's company?

This typically occurs due to a column header mismatch. For example, if your template references {{company}} but your CSV spreadsheet column is titled Company Name or Account, the sending engine cannot find a matching key and outputs the raw variable. Verifying your CSV headers with this checker prevents that error.

What is the difference between {{firstName}} and {{first_name}}?

{{firstName}} uses camelCase, whereas {{first_name}} uses snake_case. Some outreach tools (such as Lemlist) natively expect camelCase, while others (like Apollo) standardise on snake_case. Many modern tools like Instantly auto-map both, but matching your tool's native documentation prevents synchronization errors.

Can I test custom personalization tags beyond first name and company?

Yes. The checker detects any custom merge variable, including custom icebreakers ({{icebreaker}}), industry tags ({{industry}}), city names ({{city}}), or reference snippets ({{p1}}). You can paste your custom fields into the sample lead box to verify how they render.

Explore Related Outreach Tools

Combine merge variable validation with our suite of free deliverability and copywriting utilities to optimize your cold outreach performance: