IGSendMail
All articlesList Building

Dynamic Content in Email, Done Right

Dynamic content lets one email be several emails. Used well it removes work; used badly it produces the uncanny 'Hi {FirstName}' failures everyone has received.

Dynamic Content in Email, Done Right
EM
Erin Moore
Founder, IGSendMail
September 27, 20265 min read
Share:

Dynamic content is a single email that renders differently for different recipients, based on data you hold about them. One campaign, one send, several versions — product recommendations by purchase history, a different hero by location, a paragraph that appears only for customers.

It is worth using because the alternative is building four campaigns by hand, and it is worth being careful with because every conditional is a branch you have to test.

Three mechanisms, often confused

Merge tags substitute a value: first name, company, last order date. The simplest form and the most commonly broken. See email merge tags.

Conditional blocks show or hide a section based on a rule. "If the subscriber has ordered before, show this; otherwise show that."

Dynamic feeds pull content from a source at open time or send time — recommended products, latest posts, live inventory. The most powerful and the most fragile, because it depends on an external system being available and correct.

Where dynamic content earns its keep

Customer versus non-customer. The most valuable single condition most senders can add. A newsletter that says "since you bought the starter kit" to customers and "here's what the starter kit does" to everyone else is two useful emails for the price of one, and the alternative — writing for both audiences at once — serves neither.

Product recommendations. The clearest revenue case. A block showing items related to what someone has bought outperforms a static block showing this week's promotion, because relevance is doing the work.

Location. Store hours, shipping cutoffs, event dates, currency. Anything where the wrong answer is actively unhelpful.

Lifecycle stage. A different call to action for new subscribers, active customers and lapsing ones, inside one newsletter. This is lifecycle marketing implemented cheaply.

Language. Where a mistake is not cosmetic.

Where it does not

Trivial variation. Swapping a button colour by segment is complexity with no return.

Anything requiring a genuinely different argument. If the two versions of the email need different structure and a different point, write two emails. A conditional block is for a section, not for a rewrite.

More than three or four conditions in one email. The number of combinations grows fast, and each is a version somebody has to check. Four independent conditions produce sixteen possible emails.

The rules that stop it breaking

Every dynamic element needs a fallback. "Hi ," renders as "Hi ," for everyone whose first name you never collected, which on most lists is a large minority. Set a default — "there", or restructure so the greeting does not need a name. Most platforms support a default value in the tag syntax; use it every time.

Conditions must be exhaustive. An if customer / else if lapsed with no plain else leaves a hole, and someone will fall through it. Always have a default branch and write it as though it will be the most-seen version, because sometimes it is.

Fields must be clean. Names imported from a form where people typed anything render as "Hi jane," or "Hi JANE SMITH," or "Hi ." Normalise capitalisation on import, and never merge a field you have not looked at.

Test every branch, not the email. Create a test contact per condition and preview each. Most platforms let you preview as a specific subscriber; the ones that do not make this genuinely risky.

Do not personalise voice. Personalise the offer, the products, the timing. An email that references someone's recent browsing in a chatty tone reads as surveillance, and the line between helpful and unsettling is closer than most marketers assume.

Dynamic content versus separate campaigns

The trade-off is real. One dynamic campaign is a single build, a single QA pass across several branches, and one set of statistics that averages over all versions. Separate campaigns are more work to build and give you clean per-version results.

The rough rule: use dynamic content when the versions share a purpose and differ in details, and separate campaigns when the versions have different purposes. And if you want to know which version performed, separate campaigns, because aggregate reporting on a dynamic send hides exactly the comparison you want.

For measuring any of it properly, email conversion rate covers the denominators.

Frequently asked questions

What is the difference between dynamic content and personalization?

Personalization usually means substituting values like a first name. Dynamic content changes which blocks appear at all. Personalization changes words; dynamic content changes structure.

Does dynamic content affect deliverability?

Not directly. It can indirectly if a conditional produces an email that is nearly empty, or if a feed fails and leaves broken images and dead links, both of which look like low-quality mail to filters. Always render something sensible in the default branch.

How many dynamic blocks is too many?

Past three or four independent conditions the combinations exceed what anyone will actually test, and untested branches are where broken personalization ships. If you need more variation than that, separate campaigns are safer.

Why do my merge tags show as blank?

Because the field is empty for those subscribers and no fallback was set. Always supply a default value in the tag, and check what proportion of your list actually has the field populated before you build an email around it.

Enjoyed this article?

Get The Send: one email a month with the best of the blog and one practical tip.

No spam. Unsubscribe with one click.