Automate email headers —
per recipient.
Personalized email header images generated per recipient. Open rates climb when the hero says the reader's name. One template, every send.
Email personalization tokens swap names into body copy. It helps. But the highest-leverage personalization is the one recipients see first — the header image. A visual that shows the recipient's name, avatar, or current stat drives measurably higher opens, click-throughs, and replies than any text-only personalization.
Our earlier post on custom email banners made the case for why they matter. This page covers the technical automation: how to generate a personalized header per recipient at scale, without a design-team bottleneck.
Email header patterns that convert
Welcome series
"Welcome, Ada" with the user's avatar and plan. First impression; sets the tone for the entire relationship.
Monthly recaps
"This is what you did in April, Ada" with the month's stats visualized. Every user's card is unique to them.
Upgrade nudges
"You're using 92% of your plan, Ada" with the user's actual usage. More persuasive than a generic upgrade email.
Milestones + achievements
"You just hit 100 tasks — nice." Visual recognition of progress; recipients share these voluntarily.
Example: Customer.io integration
<!-- Customer.io email body: the image URL uses liquid interpolation
to pass current recipient attributes to Pictify. -->
<img src="https://api.pictify.io/template/tpl_welcome_header/render?
name={{ customer.first_name | url_encode }}&
plan={{ customer.plan }}&
avatar={{ customer.avatar_url | url_encode }}"
width="600" height="300"
alt="Welcome, {{ customer.first_name }}" />
<h1>Hi {{ customer.first_name }}</h1>
<p>Your 2026 starts here...</p>Same pattern works in Klaviyo, Braze, Iterable, SendGrid, Mailchimp, Postmark, Resend — any ESP that supports variable interpolation in the email body. Pictify URL is a plain image URL; every client renders it.
Frequently asked questions
How do I automate personalized email header images? +
Design one email-header template (typically 600×300 or 1200×400). Declare variables for the fields that personalize per recipient — name, plan, usage stat, recent achievement. In your ESP's email body, reference the Pictify image URL with the recipient's ID encoded as a query parameter. Pictify renders on first fetch; caches per-user.
Do email clients render dynamic image URLs correctly? +
Yes — as long as the URL returns a valid image. Gmail, Apple Mail, Outlook, Yahoo all fetch images when the recipient opens the email (or previews it). Pictify URLs are standard image URLs with query parameters; they render like any static image.
Does the image cache per recipient or per email? +
Per unique variable set, at the CDN edge. If 10,000 recipients each get a URL with their own user_id, each is cached separately; re-opens are instant. Gmail also caches images on Google's servers — after the first open, the same recipient's re-opens don't hit Pictify at all.
How much does automated email header generation cost at scale? +
For a million-send email blast where each recipient gets a unique image, you pay for ~1M cold renders (if every recipient opens). At typical open rates (20-30%), that's ~300K renders at Pictify's per-render cost — usually under $100. Cheaper than printing 1M postcards, often cheaper than running your own Puppeteer fleet.
Can I A/B test email header variants? +
Yes. Pictify ships experiments as a first-class feature. Bind the variant ID to the recipient's cohort; track open rate per variant via your ESP's analytics. The URL encodes the variant, so every open maps back to a variant ID cleanly.
What about email clients that block images? +
If a recipient blocks images, the email still renders — just without the header image. Ensure your email also has useful text content (accessibility best practice anyway). Gmail, Apple Mail, and Outlook 2024+ all auto-load images by default now; image blocking is a 10% problem, not a 50% problem.
Every recipient. Their name. Their data.
Real expression engine
{{ price * 0.9 | currency }} is a first-class template feature — not a string you pre-format in your backend. Conditionals, filters, nested lookups, all built in.
Live data bindings
Templates connect to HTTP endpoints, webhooks, or static JSON. Images update when data updates. Nothing else in the category ships this.
API + no-code, same product
Designers build templates in a visual canvas. Engineers call one endpoint. No hand-off, no context switch, no rebuild.
A/B experiments on images
Ship variants of a template, track impressions and conversions per variant, declare a winner — all from the same API that renders the image.
One API, many outputs
PNG, JPEG, WebP, multi-page PDF, GIF. Same template, different fileExtension. No separate service for each format.
Agentic AI copilot
"Make a dark-mode variant," "resize this for Instagram Story," "generate five backgrounds." The copilot edits templates step by step, not as a single-shot generator.
Looking for the bigger picture? Read the automated image generation guide →
Related solutions
Automated Image Generation
The complete guide to automating image creation — templates, APIs, expressions, and live data bindings.
Image Generation API
Render images from templates + variables via a single HTTP call. Curl, Node, Python code in every doc.
Automate Product Images
Render catalog-scale product cards, seasonal variants, and inventory-aware banners from one template.
Automate Social Media Images
Personalized social cards at scale — one template, thousands of variants, zero manual design work.
Automate OG Images
Dynamic Open Graph images for every blog post, product, or page — rendered on-demand from your data.
Bulk Image Generation
Generate thousands of images from a spreadsheet, CSV, or JSON batch with async jobs and webhooks.