Paste your HTML.
Drop in your email HTML or load a sample. Every merge tag is found across all four ESP syntaxes and marked guarded or unguarded — in your browser, nothing uploaded.
Free tool · runs in your browser
Your email was designed for a subscriber whose first name is filled in and four letters long. Most of your list is not that subscriber. Paste your HTML and see what actually sends.
Runs in your browser · nothing uploaded · no signupThe preview substitutes the sample data itself, so it shows what the layout does — not what your ESP’s own renderer does with a conditional block, which each platform evaluates its own way. The tag list and the checks are the reliable part: every one maps to documented syntax for the platform it names. For the rest of the pre-send checks, work through the email QA checklist.
Personalization safety
Six checks and four stress profiles — the difference between an email that survives a real list and one that only survives a test send to yourself.
Fallbacks
Greeting collapse
Catches the "Hi ," defect — a greeting whose only word is a tag with no default value, on a list where most rows have no first name.
Tags with no fallback
Flags every subscriber field that has neither a default value nor a conditional wrap, anywhere in the body.
Unguarded tag in a link
Finds tags built into an href, where an empty value makes a malformed URL rather than a visible gap — invisible in any preview nobody clicks.
Portability
Mixed ESP syntax
Detects tags from more than one platform in one file. An ESP only resolves its own syntax; the rest sends as literal text.
Unmapped placeholders
Flags portable bracket placeholders like [FIRST_NAME] that no ESP resolves, so they ship as-is until you map them.
Translation
Rewrites every tag into Mailchimp, Klaviyo, MailerLite, ActiveCampaign or portable syntax, carrying the fallback across where the platform supports one.
Stress data
Blank fields
The subscriber who signed up through a form that only asked for an email — which on most lists is the majority of it.
Long values
Real names and company names run longer than the design comp. Shows the greeting wrap and the button overflow before you send.
Accents and symbols
Apostrophes, ampersands and accented characters are ordinary in real lists, and they break layouts built and tested on ASCII.
How it works
Drop in your email HTML or load a sample. Every merge tag is found across all four ESP syntaxes and marked guarded or unguarded — in your browser, nothing uploaded.
The email renders twice, side by side: the typical subscriber it was designed for, and the one it will actually be sent to. Blank fields, long names, messy casing, accents.
Each finding names the tag and the fix. When you are switching platforms, the translator rewrites every tag into the new syntax and carries the fallbacks with it.
Questions
Because the first name field is empty for that subscriber and the merge tag has nothing to fall back on. It is the most common personalization defect there is: a list built from a form that only asked for an email has no first name on most rows, so the tag renders as nothing and the comma is left stranded. Give the tag a default value and it reads “Hi there,” instead.
A token in your email that the ESP swaps for that subscriber’s data at send time. Mailchimp writes it *|FNAME|*, Klaviyo writes {{ first_name }}, MailerLite writes {$name} and ActiveCampaign writes %FIRSTNAME%. Same idea, four syntaxes, and none of them resolves another platform’s.
It depends on the platform. Mailchimp takes it inline as *|FNAME:there|*, Klaviyo as {{ first_name|default:'there' }} and MailerLite as {$name|default('there')}. ActiveCampaign has no default-value syntax at all, so the fix there is conditional content: %IF !empty($FIRSTNAME)% Hi %FIRSTNAME%, %ELSE% Hi there, %/IF%.
The ESP replaces it with an empty string and sends anyway. Nothing errors, nothing is held back — the email just goes out with a gap where the name should be. That is why the defect survives review: it never shows up in a test send to yourself, because your own record has every field filled.
The HTML travels fine, but the merge tags do not. Every tag has to be rewritten into the new platform’s syntax or it sends to your subscribers as literal text. The translator here does that rewrite in one pass and carries the fallbacks across wherever the target platform supports them.
Yes. The preview, the checks and the translator all run in your browser. Your HTML is never uploaded or stored.
Skip the checklist
EmailTemple writes the fallback into every personalized line it generates, in your ESP's own syntax — so a subscriber with no first name still gets a sentence that reads.