How does dynamic content work?

Still have a question, spotted an error, or have a better explanation or a source we should cite?

Dynamic content works on three moving parts. Subscriber data, conditional rules, and a template that knows how to pick. Your ESP evaluates the rules for each recipient at send time and renders a personalized version on the fly.

The mechanism, step by step.

  1. Subscriber data lives in your ESP or CRM. Fields like location, plan tier, last product viewed, language, signup date. Some fields are static (home city), some update over time (last order value), some stream in from integrations (abandoned cart from Shopify).
  2. Your template includes conditional blocks. These look like {% if country == "US" %} show block A {% else %} show block B {% endif %} or the click-to-configure version in your ESP's editor.
  3. At send time, the ESP loops over each recipient, reads their fields, evaluates the rules, and renders the version that applies.
  4. A single campaign goes out to the list. Each person sees their version. You see one set of analytics for the whole send.

Where the data comes from. Native ESP fields (the columns you see on a contact record), CRM syncs (Salesforce, HubSpot), commerce platform feeds (Shopify, Magento), and real-time API lookups for things like inventory or price. The quality of the output depends entirely on the quality and freshness of these inputs.

Common setup mistakes.

  • No fallback. If the field is blank, what shows? Always define a default block so missing data doesn't produce an empty email.
  • Overlapping rules. Two conditions that can both be true at once cause inconsistent rendering. Order your rules, or make them mutually exclusive.
  • Testing in isolation only. Your ESP preview shows one version at a time. Before you send, seed test addresses that hit every rule path so you see the real render.
  • Hardcoded values. "Hi John" instead of {{firstName | default: "there"}} is a classic ship-to-the-whole-list disaster.

See static vs. dynamic personalization tokens for syntax patterns, and how to test merge fields before you trust the logic.

One thing people forget. Dynamic content can't salvage a bad list. If the subscriber record is stale (someone who changed jobs two years ago), your "Hi Jane at OldCorp" email looks ridiculous. Validate and refresh contact data regularly, and clean out the invalids with Review My Emails before you wire up conditional rules.

Contributors

Who worked on this answer

Every name links to their profile. Every company links to their site. Real people, real accountability.

Ask an AI · tailored to your setup

Plan my dynamic content test pass

I'm setting up dynamic content in ESP for the first time. My template will pull fields, e.g., firstName, country, lastProductPurchased. I want to show number of variations. Walk me through the fallback rules, the test plan, and the things that are most likely to break on my first send.

Edit the yellow boxes, then send to the AI of your choice.