Email marketing

Dynamic Images for Email Marketing

Generate a unique, personalized image for every email recipient. Show their first name, company, offer, or product — automatically. Works with any email platform.

09:41
Tuesday, May 26
🔔 Wafrow now
Special offer for Aditi

Claim your customized discount code inside!

Personalized Rich Push Banner
Personalized WhatsApp Banner

Hey Aditi! We wanted to share this personalized gift card with you! 🎁

12:42 PM

How it works

Three steps from template to personalized email image

1. Design your template

Build once in the visual editor

Use the drag-and-drop editor to create your image template. Add text layers for dynamic content (name, offer, expiry), image layers for product photos or logos, and set your brand colors. No code required.

2. Define your variables

Name your dynamic layers

Give each dynamic layer a variable name (e.g. "firstname", "company", "offer"). These become parameters in your image URL or API request. Your email platform passes the actual values for each recipient.

3. Deploy via URL or API

One image tag, thousands of versions

Embed the Wafrow image URL in your email template with merge tags from your email platform. Each subscriber gets a rendered image unique to them — served in milliseconds.


What marketers personalize in email images

Use case What's personalized Result
Abandoned cart email Product image + product name + price Each recipient sees exactly what they left behind
Welcome email First name + company logo High-touch feel at any subscriber volume
Flash sale Offer amount + expiry countdown Urgency tailored to each segment
B2B outreach Prospect name + their company name Reply rates 2-3× higher than generic images
Anniversary email Member since date + loyalty tier Recognition that drives retention

Two ways to deliver dynamic images

Choose based on your email platform and delivery model

Lazy-render — recommended for scale

Render at open time, not send time

Embed the Wafrow image URL directly in your email's <img> tag. Nothing is generated at send time. The image renders the first time the recipient opens the email and is cached for all subsequent opens.

1 M sends≈ 200K–400K renders (at 20–40% open rate)
Best forHigh-volume campaigns at any scale
BonusFix template errors after sending, before first open
Trade-offFirst-open latency ~100–500 ms; repeat opens served from cache
<img src="https://wafrow.com/i/TEMPLATE_ID
  ?firstname[text]={{contact.firstname}}
  &company[text]={{contact.company}}"
  alt="Personalized offer for {{contact.firstname}}" />

Pre-render — generate before send

Render immediately, store the result

Call the API before the email is sent. The image is rendered immediately and the binary blob is returned — your system must upload it to S3 or your email platform's media library before sending.

1 M sends= 1 M renders
Best forPlatforms that require a concrete image URL at send time
Trade-offRender cost applies to every send, including unopened emails
POST /api/img/TEMPLATE_ID
Authorization: Bearer YOUR_TOKEN

{
  "personalize": {
    "firstname": {"text": "Sarah"},
    "company":   {"text": "Acme Corp"},
    "offer":     {"text": "Free shipping"}
  }
}

Zapier HubSpot Customer_io Apollo_io Contentful Firebase Clay Shopify Kit Braze Salesforce Mailchimp Klaviyo ActiveCampaign Omnisend

Ridiculously good value

Simple, transparent pricing. Risk-free, cancel anytime.

Free Plan Lifetime License Pay-As-You-Go
Price

Free

forever

$99

one-time payment

$0.01

per image generated
14-day free trial
Images Generated 1,000 / month 10,000 / month Unlimited
Bandwidth 1 GB / month 25 GB / month Unlimited
Integrations All 14 integrations All 14 integrations All 14 + Custom Webhooks
MCP Server Included Included
Support Self-serve Self-serve Self-serve + dedicated
Get Started Get Started Get Started

Features on All Plans

Use on email, whatsapp, mobile push & landing pages

MCP server for AI agents

6000+ fonts available

Generate Images using URL Parameters

Unlimited image and PDF downloads

Multi-lingual support for characters in arabic, hindi, chinese, japanese

Rest API and webhooks

Digital creative asset manager

Live slack and email support


Risk-free, cancel anytime, no lock-in

Wafrow cancellation is self-serve. No need to email us or callbacks from retention specialists. Straightforward and fair, the way life should be.


Cheapest possible plans for startups and non-profits

As we bootstrap our way through this journey, we realize the value of your hard earned cash. Our endeavour is to make the starting plan as high value as possible. If you're a non-profit, we're happy to offer discounts. Just email us your credentials.


World-class support
Ravdeep
If you get stuck, drop a quick line at [email protected] or slack for enterprise customers. It'll likely be this guy, helping you out with a grin 24x7.

Frequently asked questions

How do dynamic images work in email marketing?

You create a template in Wafrow with dynamic layers (text, images, colors). Wafrow generates a unique image URL for each recipient — embed that URL in your email and each subscriber sees a personalized image when they open the email.


Which email platforms support dynamic images from Wafrow?

Any email platform that supports <img> tags with external URLs works with Wafrow — including HubSpot, Klaviyo, Mailchimp, Customer.io, Braze, Kit (ConvertKit), and virtually all others.


Do I need a developer to set up dynamic email images?

No. The Zapier integration lets you connect Wafrow to your email platform without code. For each new subscriber or campaign row, Zapier passes the personalization data and generates the image URL automatically.


What can be personalized in the email image?

Any layer in your template: recipient first name, company name, logo, offer text, expiry date, product image, or any custom field from your email list or CRM.


Does Wafrow support A/B testing for email images?

Yes. Wafrow's built-in experimentation framework lets you run A/B tests on image variants and measure which version drives more clicks — without a separate testing tool.