All Collections
Klaviyo: How to Use
How to Personalize Klaviyo with Octane AI Data
How to Personalize Klaviyo with Octane AI Data
You'll find a glossary of examples of the event variables you can use with Octane AI's Klaviyo integration.
Mark Baek avatar
Written by Mark Baek
Updated today


Octane AI lets you turn customers' quiz sessions into actionable data in Klaviyo, enabling brands to implement powerful, personalized email marketing.

Taking full advantage of Octane AI's Klaviyo integration requires using Klaviyo's system of template tags & variable syntax.

πŸ’‘ What you'll learn

How to use Klaviyo's variable syntax with Octane AI data & use cases.

What are variables?

Variables are bits of code you can insert into email templates that will turn into customer data when an email is sent.

Here's an example:

If {{ first_name|default:'there' }} is entered into an email, Klaviyo will replace the text {{ first_name|default:'there' }} with the profile's first name.

The {{ }} tells Klaviyo that the text inside will be a variable.

first_name turns into their first name, while default:'there' lets the email know to insert "there" if no first name data is found.

Leveraging this system of variables unlocks personalization of Klaviyo flows & more.

How does this relate to Octane AI?

When your Octane AI account is connected to Klaviyo, everyone who takes a quiz & submits an opt-in will have their quiz data sent to Klaviyo in real time.

Using variables allows you to turn quiz answers, results & products into personalized email content.

You can also use variables to customize:

  • Flow logic & filters

  • Show/hide content blocks

  • Segments

πŸ›‘ In short, using email variables is key to maximizing the impact of quizzes on your Klaviyo campaigns.

How Octane AI data enters Klaviyo

Understanding how Octane AI data flows into Klaviyo will help while personalizing flows, but also when troubleshooting them.

Watch this quick video to learn where your quiz data lives in Octane AI.

Octane AI data is sent to Klaviyo in two forms:

  • Custom properties: these are non-standard profile properties, such as quiz answers.

  • Quiz completed event: this is a timeline event that appears in someone's profile when Klaviyo detects that they took a quiz.

πŸ’‘ Why is this important?

While custom property personalization can be used in any flow, data from the quiz completed event can only be used in a certain type of flow (Metric).

The quiz completed event is required to use product recommendations from quizzes in Klaviyo, so knowing what Octane AI data looks like in Klaviyo will make flow-building a smooth process.

The quiz completed event is available on Octane Plus.

Custom properties vs. quiz completed event

If Octane AI sends data in multiple formats, how do you know which one is the right one to use?

Here's a breakdown of what using each type of data to build a Klaviyo flow looks like.

πŸ’‘ Using custom properties


  • Can insert or filter data in any email template.

  • Can be used to segment.


  • Must use segments to trigger list flows.

  • List flows can only be entered once.

  • Can't access product data.

Because Klaviyo only allows profiles to enter list flows once, this makes custom properties a great tool for welcome flows and long term campaigns.

Below is an example of a filter that targets anyone with a quiz result custom property, which means they've made it to the end of the quiz at least once.

πŸ’‘ Using quiz completed event


  • Trigger flows every time on quiz completion.

  • Contains complete quiz data (products, quiz answers & results).


  • Can only be used in metric flows.

Profiles can enter metric flows every time the targeted event is triggered (the quiz completed event in this case).

This makes them ideal for post-quiz flows such as ones that send discount codes & results through email.

When possible, you'll want to use a metric flow triggered by the quiz completed event for any post-quiz flows. Customers will enter these flows more quickly and you'll have more personalization options.

πŸ›‘ Adding product recommendations into emails can only be done in a metric flow.

This is because the flow needs to be triggered by the event in order to have access to the event data.

To insert data such as the quiz results page link into a different type of flow (such as your welcome flow), you'll need to use custom properties instead.

Klaviyo has a built-in way to do this with the Add personalization option.

Using product recommendations in a dynamic table

The steps here require a metric flow to be created. Here's a step-by-step guide on how to set that up.

A dynamic table is a table block that is set to Dynamic in the table settings.

Creating a dynamic table lets you set up a single table block that will automatically pull in data from the quiz completed event and fill out to match the number of products that were recommended.

Dynamic tables have two important fields you need to fill:

  • Row collection: this is where we tell the table what the data group - in this case, products - is called.

  • Row alias: this is a nickname we give the row collection to keep variables short.

πŸ—’οΈ Field

✍️ What to enter

Row collection


What does it mean?

The variable event.products_all is how product recommendations are labeled in the quiz completed event Octane AI sends over.

Adding this code into the row collection field will tie the dynamic table to quiz product recommendations.

Row alias

A nickname of your choice, such as quiz or octane.

What does it mean?

The row alias is a nickname for the row collection.

As an example, to insert a product image you would only have to type in {{ quiz.image }} instead of the full {{ event.products_all.image }} text.

Once you set up your row collection & alias, you can use the following variables to insert quiz data into a dynamic table.

This is done by following this format:

{{ row alias.variable }}

For example, if I enter quiz for my row alias and want to insert a product page link for each product recommended in a quiz, I would add the variable below to a dynamic table:

{{ }}

πŸ—’οΈ What does it turn into?

✍️ Specific variable





Product page URL




Price (formatted in default currency)








Limiting dynamic table expansion

Dynamic tables will automatically match however many products a customer saw at the end of a quiz.

This could result in an awkwardly lengthy email depending on how many products the quiz features at the end.

To limit how many times the table expands, we'll add the slice filter to the row collection field.

For example, to limit the table to 3 products, the row collection would contain:


To change this, edit the number. event.products_all|slice:'4' would limit the table to 4 products while event.products_all|slice:'2' would limit the table to 2, and so on.

Previewing dynamic emails

πŸ’‘ Preview emails inside of a quiz's metric flow to see the dynamic variables work.

Additionally, previewing inside of the flow will let you grab any variable you need to represent a particular piece of quiz data.

1. Add an email into your quiz's metric-triggered flow. This can be a new email or an existing template.

2. Inside of the flow, open the email in Klaviyo's editor. This can be done in Klaviyo's new or classic editor.

3. In the classic editor, click the Preview button on the left.

4. In the new editor, click Preview and test in the top right.

5. While previewing, click on any piece of data to copy the code needed to show it in an email.

In the classic editor, the preview window will look different but serve the same function.

Did this answer your question?