Email marketers running abandoned-cart, browse-abandonment or post-purchase sequences often want the image itself to show the exact product the subscriber looked at or left in their cart, plus their first name. Doing this without a developer, and without locking the campaign to one ESP, is still a common friction point.
OKZest handles it with a single dynamic image URL that your ESP fills with merge tags at send time. The image is generated when the recipient’s email app requests it, so you can still tweak the template later. Fallbacks keep the design clean when a field is empty. This guide walks through the practical steps for Klaviyo, Mailchimp and ActiveCampaign.
Why open-time product images matter in sequences
A static product banner is the same for everyone. A dynamic one can show:
- The specific product image (or a cropped variant) for that subscriber
- Their first name or preferred greeting
- A short offer or category label pulled from your data
- A fallback image or text if the product data is missing
Because rendering happens at open, the same email that went out yesterday can show an updated design or a corrected product image today if you change the template. That is useful when a product is discontinued mid-campaign or you want to test a stronger visual without resending.
What you need before you start
- A design in OKZest with at least one dynamic text layer and one dynamic image layer (or background).
- Merge tags that match your ESP:
*|FNAME|*style for Mailchimp,{{ first_name }}or property syntax for Klaviyo, and the equivalent for ActiveCampaign. - A product image URL (or a field that contains one) available in your ESP for each subscriber.
- A defined fallback for every dynamic layer so missing data does not leave a blank or broken-looking image.
All of this is done in the visual editor. No code is required for the basic flow. The REST API and MCP server are available if you later want an assistant or automation to generate URLs at scale, but they are optional here.
Step-by-step: build the template
- Create or open a design in OKZest.
- Add a text layer and set its merge tag (for example
first_nameor whatever you will pass). Define the fallback text (“Hi there” or “Your cart is waiting”). - Add an image layer (or set a dynamic background). Point it at a URL parameter that will receive the product image URL from your ESP.
- Set a fallback image URL for that layer so subscribers without a product image still see a clean default.
- Preview with test data: one row that has a product image and name, one that is missing both. Confirm the fallbacks look intentional.
- Copy the dynamic image URL. It will contain query parameters that match your merge tags.
The same template can be reused across ESPs; only the merge-tag syntax inside the URL changes.
Dropping the URL into your ESP
Mailchimp
Paste the OKZest image URL into an image block or custom HTML. Replace the placeholder parameters with Mailchimp merge tags (for example *|FNAME|* and a merge tag or content that supplies the product image URL). Test with a real campaign or the preview tools.
Klaviyo
Use a dynamic image block or the HTML editor. Map Klaviyo profile properties or event properties (from a Shopify or custom event) into the query parameters. Klaviyo’s personalization syntax works directly in the image src.
ActiveCampaign
Insert the image URL in a campaign or automation email. Use ActiveCampaign’s merge tags for the name and any custom fields that hold the product image URL. Automation can pass different values on different steps of the sequence.
Because the image is requested at open, you do not need to generate or attach a unique file for every recipient before send.
Fallbacks keep sequences reliable
Missing first names, empty product fields or delayed catalog syncs are common. A defined fallback text and fallback image means the email still looks finished. OKZest applies the fallback when the value is empty or missing; you set it once per layer in the editor.
This is especially useful in multi-step sequences where early emails have full product data and later reminder emails may have less complete fields.
Updating after send
If a product image needs to be swapped or the layout refined, edit the template in OKZest. Recipients who have not yet opened (or whose email clients re-fetch the image) will see the new version. Recipients who already loaded the image keep the version they saw. No resend is required for the change to take effect for future opens.
Pricing note
OKZest charges for images the email app requests (typically close to reported opens), not for every email sent. Published monthly plans currently start at Micro $12 (500 images), Starter $47 (10,000), Professional $83 (100,000) and Enterprise $479 (1,000,000). Free accounts receive 500 generated images that do not expire; those images carry a small badge. Always check the live pricing page for current numbers. API access is included on paid plans; MCP is available for AI assistants that need to discover templates and generate URLs.
When another tool may fit better
If your main requirement is native countdown timers, geo maps, polls or other email-specific widgets, a tool such as NiftyImages is often stronger. If you need deep video animation workflows or a pure API-first design automation platform, Bannerbear or Orshot may be closer. OKZest focuses on open-time personalized images with a visual editor, reliable fallbacks, live website screenshots as layers, multi-client team roles, and drop-in ESP URLs.
Try it
OKZest’s free plan includes 500 generated images that do not expire (they carry a small “Made with OKZest” badge) and requires no credit card. You can build a template with a product image layer, set fallbacks, and paste the URL into a test campaign in Klaviyo, Mailchimp or ActiveCampaign in a few minutes.
Start at okzest.com or review the current features and pricing for the latest details.