Merge tag checker

Finds the rows that would send "Hi ," because a field your template uses is empty.

1. Your list
CSV or Excel, up to 200,000 rows
2. Your email template
Reads {{firstName}}, {{first_name}}, {{ contact.firstname }} and fallbacks like {{firstName|there}}. The template is checked in your browser only.
Runs in your browser. The file never leaves your device.CSV or Excel, up to 200,000 rows

Next

Email me this report
A short summary of this run: the counts and settings, never your rows. Your file stays in your browser.
The counts from this runThe settings you usedNo file, no rows, no saved link
One email with the report. No sequence, no sales call.
Ken cleans every list you import, then verifies it.
Import once. Ken dedupes, formats and verifies every address, and keeps the flags with each lead.
Start free - 1,000 credits, no card

What the merge tag checker does

Paste your email template and drop your lead list. The checker finds every merge tag in the template, such as {{first_name}} or {{company}}, matches each to a column, and lists the rows where that cell is empty. Those are the rows that would send "Hi ," or "I saw is hiring".

It also catches tags with no matching column at all, which most sending tools print as blank or as the raw tag.

How to read the result

Each tag gets a line: the column it maps to and how many rows are empty for it. Tags with no column are marked separately. The problem table shows each broken cell with its row number, and the preview renders your template for any row. A row with several empty fields counts once, so the total is the number of emails that would go out broken.

How to use it

Run it after cleaning and before uploading. For each empty field, pick one fix:

  • Fill the cell from another source.
  • Drop the row.
  • Rewrite the sentence so it reads well without the tag.
  • Set a fallback value in your sending tool, if it supports one, that reads naturally, like "there" for a first name.

Why it matters for cold email

One "Hi ," tells the reader the email came from a list, and it goes to every row with an empty cell. Raw tags like {{company}} in a sent email are worse. Both are easy to prevent and impossible to take back once sent.

Questions

What is a merge tag?
A placeholder in an email template that your sending tool replaces with a value from the lead list, usually written in double curly braces like {{first_name}}. Each tool has its own syntax, so the checker reads the common ones.
Why did my email say "Hi ,"?
The first-name cell for that lead was empty and the tag had no fallback, so the tool replaced it with nothing. Run your list through this checker before sending to find those rows.
What is a good fallback for a missing first name?
"there", so the greeting reads "Hi there,". For company names, rewrite the sentence so it does not need one, since generic stand-ins like "your company" read as a template.
Does the column name have to match the tag exactly?
In most sending tools, yes, or the tag maps to nothing. The checker matches tags to columns while ignoring case, spaces and underscores, and shows which column each tag read, so you can rename the column before uploading.
Does it check spintax and conditional blocks?
It reads the tags inside them. To check that the spintax itself is valid, use the spintax generator, which validates and expands it.

More in CSV tools

14 tools.