How to add personalization to your messages
You will learn
Learn how to add basic personalization tags to your email, SMS, and push messages. Personalization allows you to use your customer data to create an individualized experience for every contact, and allows recipients to take subscription-related actions from within a message.
For specific examples of personalization variables and more advanced use cases, head to our message personalization reference.
Key terms
- Profile personalization
Personalization based on special Klaviyo profile properties, like first name or email address. Learn about profile personalization variables. - Custom personalization
Personalization based on custom profile properties you create and collect, like birthday or hair color. Learn about custom personalization variables. - Event personalization
Personalization based on data stored within an event, like the products someone ordered in a Placed order event. Learn about event personalization variables.
Personalization types
You can add profile and custom personalization to email, SMS, and push messages in both campaigns and flows. Event personalization uses data from the event that triggers a flow and is not supported in campaigns.
- Learn how to add profile and custom personalization to a message.
- Learn how to add event personalization to a message.
Add profile and custom personalization to an email, SMS, or push message
- Click the personalization icon or Add personalization in the message field you want to personalize (e.g., an email text block, a text cell in a table block, SMS, or push message).

- Search for the property you’d like to add or scroll through the list.
- Select a property.
- If needed, add default text (i.e., text to appear if personalized data is unavailable).
- Click Insert.

Additional profile and custom personalization options
If you don't see the personalization options you'd like to use, visit the preview pane for more detailed options.
- Click Preview in the email or SMS editor, or Preview & test in the push editor.

- Search for a profile with the information you want to add. In an event-triggered flow, use the arrow buttons to choose a recent event; the preview shows the profile associated with that event.
- Expand All properties if it is collapsed, then find the profile or custom property you want to use.
- Hover over the variable’s name to see its personalization tag, then click to copy it.

- Click Done to return to your message, then paste the variable into a text field.
Learn more about using the preview panel for message personalization.
Add event personalization to an email, SMS, or push message
Your message must be sent through a flow that is triggered by the event containing your event property (or properties) in order for event personalization to populate. Only use properties from a single metric in a template. However, you may also use profile variables in a template that uses event variables.
Basic event personalization
Basic event personalization may be available in the Personalization menu, depending on the message field, flow trigger, and ecommerce platform. If Event or the property you need is unavailable, use the advanced event personalization steps below.
- Open a message (i.e., email, SMS, or push) within an event-triggered flow.
- Click the personalization icon or Add personalization in the message field you want to personalize.
- Under All types, select Event.
- Choose an event property.
- Optionally, add a default value, then click Insert.
Advanced event personalization
For more advanced event properties, use the preview window to copy personalization tags. Follow the steps for either a reusable email template or a flow message, then copy and insert the event property.
For a reusable email template
- Click Preview from the template editor.

- Under Preview data source, click Event.
- Select the metric that will trigger your flow from the dropdown.

For an email, SMS, or push message in a flow
- Open the message in a flow triggered by the event you want to use.
- Click Preview for email or SMS, or Preview & test for push. The preview uses the flow’s trigger event automatically.

Copy and insert the event property
- Expand All properties if it is collapsed.
- Use the arrow buttons to find an event that includes the variable you’d like to add.
- Scroll through Event properties until you find the variable you’d like to use.
- Hover over the variable’s name to see its personalization tag, then click to copy it.

- Click Done to return to your message, then paste the variable into a text field.
Set default text
Sometimes, you’ll send a message with personalization tags to someone who hasn’t provided all the data your tags reference. For example, you might send an email to someone who hasn’t shared their first name with you.
When this happens, it’s important to have default text set to prevent blank spaces in place of the missing data. Set default text using the examples below to determine what should appear if data isn’t available.
Text with variables | Output |
Hey | Hey friend, any interest in some tasty treats? |
Before sending, preview your message with a profile or event that contains the data you added. To check your default text, also preview with a profile or event that is missing that property.
Outcome
By using these steps, you can add basic personalization to your emails, like someone’s first name or a product they left in their cart. When the message sends, it will reference the data available for the recipient and populate the tags with custom data.
Additional resources
- Message personalization reference
Learn how to use Klaviyo’s personalization variables, or tags, to customize the experience for your customers.
- How to use filters to customize variables
Learn how filters work and how to use them to customize variables. Filters allow you to customize the format and content of variables (i.e., personalization tags) in your messages. For a list of filters available to use in the template editor, reference Klaviyo's variable filters glossary.
- How to build dynamic blocks in a flow email
Learn how to use dynamic table blocks to add product and other event information to your metric-triggered flows. In this article, you'll learn how to create a dynamic block using the example of an abandoned cart reminder showing the products that were left behind.