Klaviyo logo

A dynamic image is one image URL that resolves differently for every reader: their first name set into the artwork, the city they are in, the weather outside their window. Klaviyo already knows all of that about your subscribers. This guide connects the two.

The mechanism is the same one you use for a countdown timer. The difference is that the URL carries parameters, and you replace those values with Klaviyo tags so each open renders against that subscriber’s own data.

Why Use Dynamic Images in Klaviyo?

  • Personalization beyond the subject line – The name in the artwork, not just in the greeting.
  • Rendered at open, not at send – Weather, stock and deadlines are correct when the email is read.
  • One image, one audience – No building a variant per segment, and no per-city version of the same creative.
  • Works in every flow – Welcome, browse abandonment and win-back all take the same tag.

Step 1: Build the Image in Alterable

1. Log in to Alterable and open the dynamic image tool.

2. Design your image and add the variables you want to personalize, such as a first name or a city.

3. Set your rules if the artwork should change by condition: location, device, language, time of day or weather.

4. Copy the provided HTML code. It is a link wrapped around the image, with one parameter for each variable you added, and Alterable leaves MERGE_TAG in place of each value for you to fill in:

<a href="https://next.alterable.com/dynamic-images/click/YOUR-IMAGE-ID">
    <img src="https://next.alterable.com/dynamic-images/YOUR-IMAGE-ID.png?firstname=MERGE_TAG" />
</a>

Step 2: Swap the Values for Klaviyo Tags

Replace each MERGE_TAG with the matching Klaviyo tag:

<a href="https://next.alterable.com/dynamic-images/click/YOUR-IMAGE-ID">
    <img src="https://next.alterable.com/dynamic-images/YOUR-IMAGE-ID.png?firstname={{ first_name|default:'there' }}" />
</a>

Two things worth knowing about Klaviyo’s syntax:

  • first_name and last_name are special. Write them directly. Every other profile property goes through person, as in person.city.
  • Tags are case sensitive and must match the property name exactly, so a property saved as City will not answer to city.

Always add a default filter. A subscriber with no first name should still get a sensible image rather than one built from an empty parameter.

Step 3: Add It to Your Klaviyo Email

1. Open Klaviyo and navigate to the campaign or flow email you want to edit.

2. Click “Edit” on your email template.

3. Drag and drop an HTML block into your email.

4. Paste your image tag into the “Content” field of the HTML block. It has to be the HTML block rather than a standard image block, because that is what lets the tags render inside the URL.

5. Resize the image if necessary for a better fit.

6. Preview and test. Klaviyo’s preview lets you pick a real profile, which is the fastest way to confirm the tags resolve to that person’s data rather than to blanks.

Best Practices for Dynamic Images in Klaviyo

  • Always Set a Fallback – Decide what an unknown first name should say before you send, not after.
  • Preview Against a Real Profile – A test to yourself only proves your own data works.
  • Keep Alt Text Dynamic Too – The alt text should describe the personalized image, not a generic one.
  • Do Not Personalize for Its Own Sake – A name in artwork earns attention once. Relevance keeps it.
  • Check a Profile With Gaps – Preview against someone missing the property, because that subscriber exists on every list.

In short

Klaviyo holds the data and Alterable renders the picture. Once the tags are in the URL, every subscriber gets artwork built from what Klaviyo knows about them, resolved at the moment they open rather than the moment you sent.