Dynamic Email, Explained: What It Means, What Inboxes Render, and the Build That Stops "Hi {{firstName}}"
By Pitchlane team · March 13, 2024 ·
Dynamic email is any email whose content changes per recipient: a merged name, a block swapped by a rule, an image fetched as the message opens, or a link to a video rendered for that one person. Vendors use “dynamic email” for all four, which is how a cold outbound team ends up on a demo for software built to sell sneakers. If you send cold, you need the first and the last and can ignore the two in the middle.
Whichever kind you build, it breaks at the spreadsheet long before it breaks in the editor. One blank cell sends “Hi ,” to a VP, and one scraped company name sends “at ACME HOLDINGS INC. (USA)” to their whole team. Treat every changing element as a row with a source, a rule, a fallback and a test. If you’re sending cold, delete the blank row and skip the fallback entirely. Building that takes an hour, and it’s the difference between looking personal and looking broken.
What does “dynamic email” mean? Four things, plus one Gmail setting
| Type | What changes | When it’s decided | Use it for cold email? |
|---|---|---|---|
| Merge variables | A value in the copy, like first name or company | At send | Yes, and your sequencer already does it |
| Conditional blocks | A whole section, picked by a rule | At send | Rarely. Write separate campaigns per segment |
| Open-time content | An image or value fetched as the email loads, like a countdown or stock level | At open, in theory | No |
| Hosted personalized media | A GIF or thumbnail in the inbox linking to a video or page made for that person | Before send, then on click | Yes. This is the one that changes replies |
In Gmail’s own settings, “dynamic email” means something narrower: AMP for Email, which puts forms and carousels inside the message. It renders only in Gmail, Yahoo Mail, Mail.ru and a few smaller clients, everyone else gets your HTML fallback, and you have to register each From address separately with SPF, DKIM and DMARC passing on a production sample first. A cold program rotating 30 inboxes would be filling in 30 forms and retiring the inboxes before the approvals arrived. Neat technology for a retailer mailing its own customers from one address; don’t let anyone sell it to your SDR team.
Which automated email templates let me easily insert a recipient’s name or other dynamic data?
All of them. Name insertion is table stakes in every sequencer and email platform, so choose on whether it handles blanks properly. The syntax for the main platforms, each with a safe default:
HubSpot {{ personalization_token("contact.firstname", "there") }}
Klaviyo {{ first_name|default:"there" }}
Mailchimp *|IF:FNAME|*Hi *|FNAME|*,*|ELSE:|*Hi there,*|END:IF|*
Braze {{${first_name} | default: 'there'}}
For cold outreach, Instantly, Smartlead and lemlist turn each column in your uploaded list into a variable like {{firstName}}. You name the column and you get the variable. That makes the upload your real template engine, which is why the cleaning below matters more than any editor feature.
Three platform traps worth knowing before they bite:
- HubSpot’s sales templates have a placeholder token for values you type in by hand. If nobody fills it in, the email still sends, with the placeholder text showing.
- HubSpot marketing emails require a fallback on every token, and HubSpot’s own example is “valued customer”. Please don’t use that one on anybody.
- Mailchimp’s conditional merge tags don’t work in subject lines or test emails, so your test send will look wrong even when the campaign is right.
“Hi there” is the worst fallback in cold email
Lifecycle marketers need fallbacks because they can’t drop a paying customer from a shipping notice. You can drop a cold lead from your list, and you should. “Hi there” tells the prospect you had no idea who you were emailing, and it reads like a mail merge because it is one.
So the rule for cold email is different. Required fields block the row: no first name, no send. Optional fields get written out of the copy with a formula, so you never ship an awkward half sentence. In Google Sheets it looks like this (Clay’s formula column does the same in JavaScript):
=IF(ISBLANK(trigger), "", "Saw the " & trigger & " role is still open. ")
The sentence exists when the data does, and the email reads complete either way. While you’re in that sheet, normalise company names too: strip “Inc”, “GmbH” and “LLC”, and fix the ALL CAPS. Nobody calls their own employer “ACME HOLDINGS INC.”
Dynamic content email examples you can steal
1. Trigger line with a clean exit. The {{trigger_line}} column comes from the formula above, blank when you have no signal.
{{firstName}}, {{trigger_line}}Most teams {{company}}‘s size lose their first SDR inside a year. Want to see what we’d do instead?
2. Per-segment proof. One column holds a proof sentence per industry, written by you and mapped by a lookup. It’s only worth having if each sentence names a real customer.
{{firstName}}, {{segment_proof}} Happy to show you how that maps to {{company}}.
3. Conditional offer. For a lifecycle list on Mailchimp, where you can run real branching:
*|IF:PLAN=Trial|*Your trial ends soon. Here's what to set up first.*|ELSE:|*Here's what's new this month.*|END:IF|*
4. Hosted personalized video. It looks like the most effort to the reader and takes the least work from you. The per-lead GIF and link are just two more columns in the list:
{{firstName}}, recorded you a minute on what we’d do for {{company}}.
[GIF of the video over their website, linked to their page]
Spintax: dynamic wording, not dynamic content
Spintax rotates phrases per send, in a syntax Instantly, Smartlead and lemlist all read:
{Hi|Hey|Hello} {{firstName}}, {quick one|one quick thing} about {{company}}.
The reader gets one clean sentence. Your domain gets 3,000 emails that aren’t byte-for-byte identical, which is the one thing spam filters find easiest to catch. So spintax beats a merge field whenever the variable wasn’t personal anyway: {{firstName}} looks like a mail merge, while a sentence that varies across sends looks like a person typing. Three cases where it earns its place: greetings, sign-offs, and the connective sentence between your trigger line and your ask.
It turns spammy the moment it touches the pitch. Spin the value proposition and you’ve written three weaker versions of it, and the prospect who forwards your email to a colleague who got another variant has just learned exactly how the sausage is made. Rules that hold: two or three variants per slot, the same register in each, never inside a sentence with a merge field in it, and read every variant aloud before sending. The free spintax generator builds and tests them, and the spam words checker tells you whether the words left over are the real reason you’re in the promotions tab.
Build the worksheet before you touch the editor
One row for every element that can change. If a row has no owner or no test, that element doesn’t ship.
| Element | Source | Rule | Fallback | Test record |
|---|---|---|---|---|
firstName | Apollo, cleaned in Clay | Required | Drop the row | Seed with blank name |
company | Apollo, normalised | Required | Drop the row | Seed with “ACME HOLDINGS INC.” |
trigger_line | Job-post scrape | Include if found in the last 30 days | Empty string | Seed with blank, seed with a stale date |
video_gif | Pitchlane | Required for the video step | Send the text-only step instead | Seed with missing link |
landing_link | Pitchlane | Must match the same lead as the GIF | Drop the row | Open it, check the site is theirs |
Keep the branches few. Every condition doubles the versions you have to read, so three conditional blocks is already eight emails. If you need more than that on a cold list, those are separate campaigns with separate copy, and they’ll perform better for it.
Seed records that catch what previews miss
Send the campaign to your own inboxes using fake rows built to break it. Ten rows catch nearly everything:
- a complete, normal record
- blank first name
- blank optional trigger
- a 60-character company name
- an all-caps company name with “Inc.”
- a name with an accent or apostrophe (José, O’Brien)
- a first name that’s actually an initial or a job title, which happens constantly with scraped data
- a record matching two segments
- a record matching none
- a missing or dead video link
For each one, write down what should appear before you send, then read the email on a phone. You’re checking for raw tags in the subject, preview text and links, which are the spots an editor preview loves to skip. Then look at it with images off and in dark mode. The call-to-action has to survive without the GIF.
What does an inbox really render?
Less than the editor preview implies, and these limits decide what’s worth building.
Video doesn’t play in the inbox. The HTML video tag has about 24% estimated support across email clients. Gmail replaces the tag on web, iOS and Android; Outlook’s apps accept it and then a content security policy stops it playing. Nothing autoplays, anywhere, so any vendor promising “video in email” means a thumbnail or GIF with a link.
Opens aren’t a real event any more. Apple Mail Privacy Protection downloads remote content in the background and Gmail fetches images through its own proxy. Apple accounts for 76.56% of tracked opens in Litmus’s September 2026 numbers, so most of your “open rate” is a machine loading a pixel. Any logic triggered by an open, whether a resend to non-openers or a “they read it” alert to a rep, runs on noise. Fire follow-ups on clicks, plays and replies.
JavaScript doesn’t run, images get blocked, dark mode recolours. The email has to make sense as plain text with a broken image, and a long company name will break your button.
Add those up and the design answer is obvious: keep the email small and plain, put the rich experience one click away, and buy the platform for the list you actually have. Klaviyo, Braze, Mailchimp’s conditional blocks and HubSpot are the right dynamic email tools for your own subscribers, where rules and behaviour earn their keep. For cold prospects, Instantly or Smartlead handle the text and Pitchlane handles the per-lead video and page on top. A sales team buying from the first group for cold outreach is the classic mistake: those platforms are built around opted-in lists, their terms say so, and they close accounts long before the block editor pays off.
How to implement hosted video as dynamic content
Treat the thumbnail, link, page and copy as a single unit, because a mismatch here is much worse than a typo. Sending Company A a video over Company B’s website tells both of them exactly how your campaign works. That’s why these are per-lead columns generated together.
Video playback belongs on the page, because the inbox won’t play it. The flow:
- Record your pitch once in Pitchlane, without naming anyone. Your recording stays the same for all leads, and the prospect’s name goes in the email and title.
- Upload your cleaned list with each lead’s website or LinkedIn link.
- Check the test video, then let it render a video, GIF and landing page per lead.
- Send those links and GIFs to Smartlead or Instantly directly, or by CSV, webhook or Zapier to the rest of your stack.
- Spot-check five rows by clicking through to the landing page, and make sure the site behind you matches the person in the email.
Then launch to 100 leads, read the replies and any bounces, and only then release the rest. Judge the campaign on positive replies per segment, since most tracked opens are machines. For how to run the whole campaign around this, see the personalized outreach build.
If your list is clean by now, you’re one recording from the fourth example. The 14-day Pitchlane trial includes 250 videos, enough to find out whether that “linked GIF” column does more for your replies than every merge tag above it.
Questions
Frequently asked questions
What is dynamic email?
Dynamic email is any email whose content changes per recipient: a merged name, a block swapped by a rule, an image fetched at open, or a link to a video made for that person. The term covers four different technologies, and a cold outbound team needs only the first and the last of them. The other two belong to lifecycle marketing.
What are the types of dynamic email content?
Four: merge variables, conditional blocks, open-time content, and hosted personalized media. Variables and hosted media are what outbound uses. Conditional blocks belong to lifecycle marketing, and open-time content is unreliable now that Apple and Gmail pre-fetch and cache images before a human looks at anything. Spintax is a fifth technique with a different job: varying wording for the filter, not the reader.
What does dynamic email mean in Gmail?
In Gmail's settings, dynamic email means AMP for Email, which lets forms and carousels run inside the message. It renders only in Gmail, Yahoo Mail and a few small clients, and every sending address has to be registered and approved separately. It is a retailer's tool for opted-in lists, not something a cold sender should touch.
Which automated email templates insert a recipient's name or other dynamic data?
Every modern platform does it. HubSpot, Klaviyo, Mailchimp and Braze use tokens with a default value; Instantly, Smartlead and lemlist turn each column of your uploaded list into a variable. Pick on how the tool handles blanks, since name insertion itself is table stakes.
What are examples of dynamic content in email?
A trigger line that disappears cleanly when there is no trigger, a proof sentence mapped per industry, a conditional offer for trial versus paying customers, and a GIF linking to a video rendered over the prospect's own website. The four on this page are written to paste into a campaign.
What is the best fallback for a missing first name?
In cold email, no fallback: drop the row. A greeting of Hi there tells the prospect you had no idea who you were emailing. Fallbacks exist for lifecycle marketers who cannot drop a paying customer from a shipping notice, and that is the only place they belong.
How do you test dynamic email content before sending?
Send to your own inboxes with ten fake rows built to break it: blank name, blank optional field, a 60-character company, all caps with Inc, an accented name, a record matching two segments, one matching none, and a dead video link. Write the expected output first, then read each on a phone with images off.
Can video play inside an email?
No, not reliably. The HTML video tag has about 24% support across clients, Gmail strips it entirely, and Outlook's apps block playback. Every vendor promising video in email means a thumbnail or GIF that links to a hosted page. Build for that and nothing breaks.
Are email open rates still accurate?
No. Apple Mail Privacy Protection loads remote content in the background and Gmail fetches images through a proxy, so most tracked opens are machines loading a pixel. Apple alone accounts for over three quarters of tracked opens. Trigger follow-ups on clicks, plays and replies instead.
What is the best dynamic email tool or platform for sales teams?
A sequencer you already pay for, plus Pitchlane for the per-lead video, GIF and landing page. Instantly and Smartlead connect directly; the rest take a CSV, webhook or Zapier. Klaviyo, Braze, Mailchimp and HubSpot are the right buy for your own subscribers, and the wrong one for cold lists: their terms say so and they close accounts over it.
When should you use spintax instead of a merge field?
When the merge field was decoration anyway. A first name in a greeting reads as a mail merge; a greeting that varies across sends reads as a person. Spin greetings, sign-offs and connective sentences, two or three variants each, and leave the pitch and every sentence that contains a merge field alone. Pitchlane's free spintax generator builds and tests the variants.
Is there a free dynamic email tool?
Mailchimp's free tier covers merge tags for a small subscriber list, and every sequencer includes variables in its base plan. Pitchlane's free spintax generator and spam words checker cover the copy side. For outbound video, the 14-day Pitchlane trial includes 250 videos, enough to run a real campaign before paying $37 a month.