Think back to when "personalized email" meant dropping a first name into the subject line and calling it a day. It worked, for a while. Then every brand did it, and "Hi Sarah" stopped meaning anything to Sarah.
Dynamic image personalization is the next step, and it's less exotic than it sounds. Instead of personalizing a line of text, you personalize the artwork itself: the hero image carries the reader's name, their loyalty balance, their nearest store, or the weather where they're sitting. This guide covers how it works, where it earns its keep, and the mistakes that make it backfire.
People use "dynamic image" to describe two different things, and mixing them up leads to bad tool choices.
Send-time images are chosen when the email goes out. Your ESP looks at a subscriber's segment and inserts image A or image B. Klaviyo's conditional blocks and HubSpot's smart content work this way. It's useful, but the image is locked the moment you hit send, and you can only show as many variations as you've designed by hand.
Open-time images are generated when the subscriber opens the email. The image doesn't exist until someone requests it. That means it can contain values nobody designed in advance (any name, any points balance) and data that changes after sending, like stock levels, time remaining, or delivery status.
This guide is mostly about the second kind, because that's where things get interesting.
Under the hood, it's surprisingly simple. Your email contains a normal image tag. The image URL points to a rendering service and carries parameters, filled in by your ESP's merge tags. For example, an image URL might end in ?firstname= followed by your ESP's first-name tag.
When a subscriber opens the email, three things happen in a fraction of a second:
There's no JavaScript involved and nothing special about your sending setup. To your ESP and to spam filters, it's just an image. That's why this works in every major email client, from Gmail to Outlook.
Once you see images as templates, the use cases multiply. These are the ones that tend to work best:
Engraving a subscriber's name onto a mug, a jersey, or a gift card in the product shot. It feels custom in a way a text greeting never does, and it's especially strong for brands that sell personalized products anyway.
A points balance, a tier, a coupon code, and its expiry date, rendered into the hero image. The reader sees their reward front and center instead of a generic "check your points" link.
A map to the nearest store, or an offer that changes with the local forecast ("Rainy in Seattle? Here's 20% off rain gear"). One image, a different result for every city, with no per-region versions to build.
Order tracking, remaining stock, a countdown to a deadline. Anything you can expose through an API can render into the image every time the email is reopened, long after the campaign went out.
Dynamic images are only as good as the data you feed them. Most of it already lives in your ESP: first name, city, loyalty points, last purchase. You pass it through merge tags in the image URL.
Each ESP has its own merge tag syntax, and small mistakes fail silently. In Klaviyo, for instance, profile properties are case sensitive, so a field saved as "City" won't answer to "city". The image still renders, just with an empty gap where the city should be. Check the syntax for your platform before you build anything elaborate.
Every list has subscribers with missing data. No first name, no city, a points balance that never synced. If your image assumes the data is there, those people get "Welcome back, !" rendered in beautiful type across your hero banner.
Set a default for every variable. Most ESPs support a default filter on merge tags, and good rendering tools let you define fallback text or a fallback image. Then test with a real contact that's missing each field, because that contact is on every list you'll ever send to.
Also watch the edge cases: very long names that overflow the design, accented characters, and names in all caps from old signup forms. A few minutes of testing here saves a very public mistake.
Gmail and Apple Mail both load images through their own proxy servers. Apple's Mail Privacy Protection, in particular, hides the reader's IP address and device from the sender. That's good for privacy, and it has a real consequence for dynamic images: location detected at open time is unreliable for a large share of your list.
The fix is to lean on data you already hold. If your ESP knows a subscriber's city, pass it in the URL rather than guessing from the open. Use open-time detection as a bonus when it's available, not as the foundation. Any tool worth using should be able to explain how it handles both proxies.
No, as long as you keep the basics in check. The images are standard image tags, the same kind your ESP already sends. Nothing changes about your sending domain or authentication.
The usual email design rules still apply, though. Don't build an email that's one giant image with no live text, because spam filters and accessibility tools both need text to read. Keep the call to action as a real HTML button where possible, and always write alt text that makes sense on its own.
Enterprise platforms like Movable Ink don't publish pricing and start with a sales process and an implementation project. NiftyImages has no real free plan, starts at $59 a month ($47 annual) for 25,000 opens, and keeps features like rule sets and maps on much higher tiers.
Alterable is the practical choice for most teams. You build the image in a browser, paste one tag into your ESP, and start on a free plan with 10,000 impressions a month and no watermark. Dynamic images, countdown timers, product blocks, store maps, surveys, and scratch cards are all included on every plan, and Pro adds A/B testing, unlimited rule-based versions, and API access for $49 a month.
Start with one image in one high-value email, like a welcome message or an abandoned cart, and measure the click rate against your usual version.
If you want to try that experiment this week, Alterable (alterable.com) has setup guides for Klaviyo, Mailchimp, HubSpot, and other major ESPs. Build a personalized hero image, set your fallbacks, and see how your subscribers respond when the email is actually about them.