Back to resources
Lifecycle Operations·5 min readEN

The pre-send QA checklist

The checks worth running before a campaign goes out — with a bias toward the failures that never show up in a preview.

Most pre-send checklists check what is easy to see: typos, the subject line, whether the images load. Those are worth checking and they are almost never what goes wrong.

The failures that cost you are the ones that only happen to a subset of the audience — the segment with no first name, the locale nobody proofread, the recipient whose trial ended yesterday. A preview renders one version of the email, usually with your own tidy test profile, and tells you nothing about the other few thousand.

This is the list I automated after writing it out enough times. It is ordered by how expensive the failure is, not by how easy the check is.

Copy at the boundaries

  • No unreplaced placeholders anywhere in the final render — the ones that survive are the ones inside conditional blocks nobody triggered.
  • Every merge field has a fallback, and the fallback reads as a sentence. "Hi ," is the classic, and a stray space before a comma is its fingerprint.
  • Read every dynamic line with the value at zero. "You have 0 days left" is grammatically fine and commercially awful. Either suppress that audience or give the string a zero case.
  • Read it again with the value absent, which is a different case from zero and usually a different bug.

Personalisation

  • Render once against a deliberately empty profile — no name, no history, no attributes. This single test catches more than every other check on this list.
  • Any conditional that switches on a value needs a defined branch for values you did not anticipate, not just the ones you listed.
  • Confirm that data arriving from a feed or external source is present before the email depends on it, and that the email is still coherent when it is not.

Localisation

  • Every string exists in every locale you are sending to. A missing translation usually renders as a blank, not as an error.
  • Every link exists in every locale. Localised copy pointing at an English landing page is a silent conversion leak.
  • Avoid branching on language inside template logic. Once you have more than a couple of locales it becomes unreviewable, and the platforms have a locale feature precisely so you do not have to.

Links

  • No placeholder URLs. Not one. A link nobody replaced ships more often than anyone admits.
  • Every URL has a scheme. A missing https:// resolves relative to the ESP's domain and 404s.
  • Tracking parameters on every link, or on none of them deliberately. Half-tagged campaigns produce attribution you will argue about for a quarter.

Rendering

  • Alt text on every image — this is an accessibility requirement and it is also what a third of your audience sees first, because images are blocked by default in several clients.
  • Explicit width on every image. Without it, Outlook renders the image at its natural size and takes the layout with it.
  • The content width the template was designed for, actually applied. A 600px design that ships at full bleed looks broken on desktop.
  • At least one media query, or a layout that genuinely does not need one.
  • Email-safe CSS only. Whatever your builder allows, the client is the one that decides.

The one people skip

Check the email against the design that was approved, not against the last version you looked at. Templates drift: a field gets added during build, a block gets duplicated for a test and never removed. Nobody catches it because everyone reviewing the send has been looking at it for a week.

Automate the boring half

Roughly two thirds of this list is mechanical — placeholders, missing translations, link schemes, alt text, image widths, tracking parameters. A script checks those in under a second, every time, without getting tired at 6pm on the day of a launch.

What is left is the part that needs judgement: does the zero case read acceptably, is this the right audience, does the fallback sound like a person wrote it. That is where the review time should go, and it is the part a checklist can only prompt, never replace.

A preview shows you one version of the email. Your audience receives all of them.