Skip to content

HTML email QA

HTML Email QA Before It Reaches Your ESP

Auto QA ranks what can break the send. Blockers first. Polish last. The file stays here until the mechanical problems are visible.

Start building free

Problems that should never reach the ESP

A link that 404s, an unsubscribe a client will not see, a merge tag that renders as raw braces, HTML heavy enough for Gmail to clip. These do not show up in the inbox you test on your own machine. They show up in a subscriber’s client, or in a translation you do not read.

An email QA tool has one job: surface those failures on the compiled template, per translation, before anyone pushes to Mailchimp, Klaviyo, Brevo, HubSpot, ActiveCampaign, or Omnisend.

Findings ranked by how much they matter

Auto QA sorts findings into blockers, high risk, fix soon, and signals. Blockers are must-fix before send. High risk can break the template or the data. Fix soon matters, and does not hold the release. Signals are polish, so they do not bury a missing unsubscribe.

Quick fix resolves the deterministic ones in one click. The rest stay listed next to the preview, with the translation they belong to, so you are not hunting through a flat log.

Auto QA beside the email preview, with blockers, high risk, fix soon, and signals for the active translation.

The active ESP changes the unsubscribe check

A visible unsubscribe link is not the same string in every ESP. If Klaviyo is the active connection, a plain word in the footer is not Klaviyo’s unsubscribe tag. Auto QA checks the placeholder that ESP expects, and says so, instead of treating every vendor as identical.

That is as far as this page goes on any one ESP. Which tags a vendor wants, and how push names the template, belong with that integration. QA’s job is to stop the wrong file leaving.

Human review is a different job

Auto QA does not decide if the French reads well, or if the layout actually holds in Outlook. Those calls stay with a person. Comments on the email, the final checklist, and approval state live on review and approval.

Empty translation keys are a QA finding. Filling them is localization. The check and the translation grid are not the same screen, on purpose.

Questions

Does Auto QA replace inbox testing?

No. It catches mechanical failures: links, unsubscribe, unresolved tags, weight, missing alt, empty translation strings. Whether the layout holds in a specific client is still a human check.

What is a blocker versus a signal?

Blockers must be fixed before send. High risk can break the template or the data. Fix soon is important and does not hold the release. Signals are polish, so they stay out of the way of a real failure.

Does QA look at every translation?

Yes. Findings are tied to the translation you are previewing, including empty translation keys. A clean primary translation is not a clean send.

Run QA before the template hits your ESP

Create an account. Shared HTML, translations, QA, and ESP push in one workspace.

Start building free