How To Personalize Your Klaviyo Email & SMS Flows And Campaigns With Quiz Data

The most mind-blowingly amazing things you can do on Klaviyo.

Matt Schlicht (CEO of Octane AI)
April 14, 2022

This is an ever evolving guide to personalizing your Klaviyo flows and campaigns with zero-party data collected from customers via product quizzes.

In this guide you will learn:

  • How Octane AI and Klaviyo work together
  • How to create personalization segments on Klaviyo with quiz data
  • How to personalize text in emails and text messages on Klaviyo with quiz data
  • How to personalize blocks in emails on Klaviyo with quiz data
  • How to personalize flow paths on Klaviyo with quiz data
  • Personalization tips and tricks for Klaviyo

If you haven't added Octane AI to your Shopify store, do that here.

If you haven't created and launched a quiz on your store already, you are going to want to read our guide to adding a product quiz to your store.

Once you have your quiz live, and you are regularly collecting quiz data, you are ready to take the next steps and leverage that data for personalized experiences on both your email and SMS.

 

How Octane AI And Klaviyo Work Together

When you add an Octane AI product quiz to your Shopify store, customers can answer a series of questions, submit their email or phone number, and then they are shown recommended products based on their answers.

Octane AI's Klaviyo integration allows you to connect your Klaviyo account to Octane AI so that when new email addresses and phone numbers are collected they will automatically be sent to the Klaviyo list of your choice.

To connect your Klaviyo account to Octane AI go to your Octane AI dashboard, click "Integrations" on the left hand nav, click Klaviyo, enter your Klaviyo private key, and select the Klaviyo list you want leads from Octane AI to sync to.

Screenshot on 2021-08-17 at 15_17_15

All of the data from the quiz is synced to their profile on Klaviyo as custom properties. This data includes:

  • Answer to each question
  • Email and or phone number
  • Their quiz results

You can easily customize the properties and values synced to Klaviyo by editing them in the quiz settings. 


 


How To Create Personalization Segments on Klaviyo With Quiz Data

Now that you have data being sent from your quiz to your Klaviyo account, the next thing you want to do is create segments on Klaviyo based on this new data. This will allow you to target campaigns to specific types of customers.

Let's imagine you are a skincare brand and you have the following properties being synced from your quiz:

  • Skin_type [Answers: Dry, Oily, Combination]
  • Skin_concern [Wrinkles, Acne, Spots] 
  • Octane: Quiz result [Wrinkle Routine, Dry Routine, Oily Routine] ("Octane: Quiz result" is the default property name that is sent to Klaviyo once someone finishes a quiz)

You should make a new segment on Klaviyo for each group of people based on their answers so that you can target them individually in campaigns and flows:

  • People Who Have Taken The Quiz
  • Skin Type: Dry 
  • Skin Type: Oily
  • Skin Type: Combination
  • Skin Concern: Wrinkles
  • Skin Concern: Acne
  • Skin Concern: Spots
  • Recommended Product: Wrinkle Routine
  • Recommended Product: Dry Routine
  • Recommended Product: Oily Routine

With these segments you can now:

  • Email or text a specific group of people instead of emailing everyone. For example you could email your new acne product to people said they have acne.

To make one of these segments follow these steps.

Example #1 - Create a Segment for: "People Who Have Taken The Quiz"

Go to your Klaviyo account and click "Lists & Segments" in the left hand menu. Create a new segment by clicking "Create List / Segment" in the top right corner of your screen and then choose "Segment".

Name your segment, select "Properties about someone" in the drop down, select "Octane: Quiz result" (or whatever the property is that you set when someone finishes a quiz), and then select "is set" in the second drop down to signify that we are filtering for only people who have taken the quiz.

Click "Create Segment" and you're done!

0SRMox7


Example #1 - Create a Segment for: "Skin Concern: Wrinkles"

Go to your Klaviyo account and click "Lists & Segments" in the left hand menu. Create a new segment by clicking "Create List / Segment" in the top right corner of your screen and then choose "Segment".

Name your segment, select "Properties about someone" in the drop down, select "Skin_concern" (or whatever the property is that you set when someone answers the question in your quiz about what their skin concern is), and then select "equals" in the second drop down, and then select "Wrinkles" for the "Dimension Value" 

Click "Create Segment" and you're done!

fteWlCw

 

 


How To Personalize Text In Emails And Text Messages On Klaviyo With Quiz Data

Once you have quiz data inside of your Klaviyo account you can start to hyper-personalize your emails and text messages on Klaviyo. You can do all sorts of fun things based on this quiz data, from changing the subject line, to showing different images, to featuring different products.

Let's imagine you are a skincare brand and you have the following properties being synced from your quiz:

  • Skin_type [Answers: Dry, Oily, Combination]
  • Skin_concern [Wrinkles, Acne, Spots] 
  • Octane: Quiz result [Wrinkle Routine, Dry Routine, Oily Routine] ("Octane: Quiz result" is the default property name that is sent to Klaviyo once someone finishes a quiz)

Let's now imagine that there are two people who answered questions differently when taking your quiz.

Person #1:

  • Skin_type: Dry
  • Skin_concern: Wrinkles
  • Octane: Quiz result: Wrinkle Routine

Person #2:

  • Skin_type: Oily
  • Skin_concern: Acne
  • Octane: Quiz result: Oily Routine

Now let's draft a basic email template where we will dynamically personalize it to each person based on the answers they put into the quiz.

(p.s. I'm going to keep this email super ridiculously simple so that it's easy to follow along with, I'm sure you'll be making much prettier and more impressive emails than this.)

Here is the email we want to send to Person #1 (they have dry skin):

I highlighted the dynamic parts of the email so that are easy for you to see.

Subject: The perfect thing for dry skin


Hey there!

I know that you want a way to help your dry skin. You're not alone!

We have just the product for you: The Anti Dry Skin Routine

"The anti dry skin routine from the Skincare Company changed my life!" - Customer

Thanks,
Team Skincare Company

Here is the email we want to send to Person #2 (they have oily skin):

I highlighted the dynamic parts of the email so that are easy for you to see.

Subject: The perfect thing for oily skin


Hey there!

I know that you want a way to help your oily skin. You're not alone!

We have just the product for you: The Anti Oily Skin Routine

"I love the anti oily skin cream!" - Customer

Thanks,
Team Skincare Company

Now let me show you have to do this.

Here is what you need to write into your email in order to automatically personalize it depending on which person receives the email.

Subject: The perfect thing for {{ person.Skin_type }} skin


Hey {{ first_name|title|default:'there' }}!

I know that you want a way to help your {{ person.Skin_type }} skin. You're not alone!

We have just the product for you: {% if person|lookup:'Skin_type' = 'Dry' %}The Anti Dry Skin Routine{% elif person|lookup:'Skin_type' = 'Oily' %}The Anti Oily Skin Routine{% endif %}

{% if person|lookup:'Skin_type' = 'Dry' %}"The anti dry skin routine from the Skincare Company changed my life!" - Customer{% elif person|lookup:'Skin_type' = 'Oily' %}"I love the anti oily skin cream!" - Customer{% endif %}

Thanks,
Team Skincare Company

I implemented a couple techniques here, but there are many more you can use (which I include below).

Let me explain the three techniques I used in this example:

1. {{ first_name|title|default:'there' }}

This is a placeholder for a person's name, if they have one it will say their name and the first letter will be capitalized, and if their name isn't in Klaviyo then it will be replaced with "there" (as in "Hi there!").

first_name = Show the first name of the person if it is in Klaviyo

|title = Capitalize the first letter of whatever the variable contains (in this case, their first name)

|default:'there' = If the variable doesn't contain anything (in this example if they had never put their name into a form and Klaviyo didn't know what it was) then show the text "there" (you could change this to be whatever you want).

2. {{ person.Skin_type }}

This will show the value this person has in their Klaviyo profile for the "Skin_type" property (if they don't it set then it will show up as nothing). As long as the property doesn't have any spaces in it (like in our example) this technique can be applied to any property using person.Property_name. If your property does have a space in it then you will need to use the alternative method of .

3. {% if person|lookup:'Skin_type' = 'Dry' %}The Anti Dry Skin Routine{% elif person|lookup:'Skin_type' = 'Oily' %}The Anti Oily Skin Routine{% endif %}

This is showing one product name if they have dry skin and another product name if they have oily skin. You can do this with any property name and values you want.

In this example it is saying if they match this, then show this, or if they match this, then show this other thing. You could also add a scenario at the end if you wanted for the situation where someone didn't have dry or oily skin - you would do this by replacing "{% endif %}" with "{% else %}Whatever you wanted to say{% endif %}".

You can also much more than if this equals this, you can also do more complex logic such as doesn't equal, is greater than, less than, etc. I include all the different techniques you can use below.

 

 


How To Personalize Blocks In Emails On Klaviyo With Quiz Data

Once you have quiz data inside of your Klaviyo account you can start to hyper-personalize not only text inside of your Klaviyo emails, but entire blocks. Blocks are part of an email, such as a text block, image block, buttons, products, and more.

These are all Klaviyo blocks:

klaviyo_blocks

You can use your quiz data to dynamically show, or not show, certain blocks inside of your email. So for example you could show one block of recommended products to shoppers who took your quiz and matched with the "Cloud 9" eye lashes, and you could show a different block of recommended products to shoppers who took your quiz and matched with the "Silver Lining" eye lashes.

Let me show you how to do this.

Step 1: Click a block in your Klaviyo email to open the settings for it.

klaviyo_click_block


Step 2: Click the "?" icon next the to "Cancel" and "Save" buttons and then enter in your targeting criteria.

Similar to when you personalize the text in an email, you are going to put the targeting you want except you are not going to include the .

For this example we have a quiz property "lash_quiz_results" that we have synced from Octane AI when someone finished a quiz and then the value that gets set is the name of the lash the quiz recommended to you. Our two values are "Cloud 9" and "Silver Lining". We will use this data to personalize what blocks show when.

First we will edit this setting for the "Cloud 9" result.

Our targeting is: person|lookup:'lash_quiz_results' = 'Cloud 9'

You can change the lash_quiz_results to any property name you would like, and change 'Cloud 9' to the property value you are specifically looking to personalize for.

klaviyo_block_personalize

Repeating this process for every block you want to personalize.

Step 3: Preview your personalized blocks to make sure they are working correctly.

Before you save your new personalized email, you will want to preview it to make sure it is working correctly.

To preview your email click the "Preview" button on the left side.

Select an email account that has the Octane AI quiz data you want to test. For example we want to test someone who took the quiz and was recommended the "Cloud 9" lashes (so they have the property "lash_quiz_results" set as "Cloud 9"). 

klaviyo_email_preview


Make sure you have "Show directly in Klaviyo" selected and then click "Preview Now".

You are now able to view what the email would look like when personalized based on it's quiz data. Make sure to try this with different combinations of quiz data to make sure that it is working how you want it to.

klaviyo_actual_email_preview

 

 


How To Personalize Flow Paths On Klaviyo With Quiz Data

Quiz data doesn't only allow you to change subject lines, text in emails and text messages, or blocks in emails, you can also use the data to send people in entirely different directions in your automated flows.

Klaviyo allows you to create "Conditional Splits" inside of a flow. Conditional splits allow you to tell your Klaviyo flow "if the person matches this criteria, send them down one path of the flow, however if they match this other criteria, send them down a different path".

There are lots of examples of ways to use this, here are a few:

  • Send an email with recommended products from your quiz to someone if they took your quiz, however if they didn't take your quiz send them a different email that doesn't include recommended products from the quiz.
  • If someone took your quiz and you asked them if they had ever used your type of product before, you would have people who have never used it and another group who has. You can then automatically include an email (or text) with educational content on how to use your product that gets sent only to people who said they have never used it before, and for everyone else you could skip the educational email and continue to the next step in the flow.


In our example I will show you how to send an email in your flow with quiz results only to people who took the quiz, and skip that email for everyone who didn't take the quiz. You should be able to then apply this concept to any other scenario you want to do.

flow_results_example


Step 1: Add a conditional split in front of your quiz results email (the email that sends the personalized product recommendations based on quiz data)

In the settings for the conditional split select "Properties about someone", select the property name you want to target by (for us we are looking for people who have taken the quiz which is "lash_quiz_results"), and then select "is set" meaning that someone has a value for that property (in our situation this means that they have taken the quiz since that property only gets set if they get to the end of a quiz).

flow_results_settings


Step 2: Add the connector for "No" to skip the quiz recommendations email and continue on later in the flow.

That's it! You're done!

 

 


Personalization Tips And Tricks For Klaviyo

There are a lot of things you can use quiz data for on Klaviyo, like a lot a lot, but here I have compiled a cheat sheet for you that you should probably keep open in a tab whenever working on your Klaviyo account.

Show a property value in an email or text

{{ person|lookup:'Skin_type' }}

List of default properties

  • KlaviyoID
  • id
  • email
  • first_name
  • last_name
  • full_name
  • phone_number
  • organization
  • title
  • ViewedItems
  • City
  • Region
  • Country
  • Zipcode
  • $source
  • $address1
  • $address2
  • $country
  • $latitude
  • $longitude
  • location

Include dynamic time in an email or text

  • {% current_day %}
  • {% current_weekday %}
  • {% current_month_name %}
  • {% current_year %}

Do math

For example if you had a property called "Score" and someone's score was "10":

  • {% person|lookup:'Score'|add:2 %} = 12
  • {% person|lookup:'Score'|divide:2 %} = 5
  • {% person|lookup:'Score'|multiply:2 %} = 20

Or if you had a "Score" with decimals in it, like "2.5":

  • {% person|lookup:'Score'|percentize %} = 250
  • {% person|lookup:'Score'|round_down %} = 2
  • {% person|lookup:'Score'|round_up %} = 3

Format text

For example let's say that the property "first_name" isn't set:

  • {{ first_name|default:’there’ }} = there

Now let's say that the property "first_name" is "MAtt":

  • {{ first_name|default:’there’ }} = MAtt
  • {{ first_name|lower }} = matt
  • {{ first_name|upper }} = MATT
  • {{ first_name|title }} = Matt

Show different text depending on property values

For example if "Skin_type" is equal to "Dry":

{% if person|lookup:'Skin_type' = 'Dry' %}The Anti Dry Skin Routine{% elif person|lookup:'Skin_type' = 'Oily' %}The Anti Oily Skin Routine{% endif %} = The Anti Dry Skin Routine

Or in this example if "Skin_type" is equal to "Combination":

{% if person|lookup:'Skin_type' = 'Dry' %}The Anti Dry Skin Routine{% elif person|lookup:'Skin_type' = 'Oily' %}The Anti Oily Skin Routine{% else %}The Super Mystery Box{% endif %} = The Super Mystery Box (because it doesn't match "Dry" or "Oily")

Advanced conditions for personalized blocks

Show block if property equals A

person|lookup:'Skin_type' = 'Dry'

Show block if property doesn’t equal A

person|lookup:'Skin_type' != 'Dry'

Show block if property isn’t set

not person|lookup:'Skin_type'

Show block if property doesn’t equal A and B

person|lookup:'Skin_type' != 'Dry' and person|lookup:'Skin_type' = 'Oily'

Show block if property doesn’t equal A or B

person|lookup:'Skin_type' != 'Dry' or person|lookup:'Skin_type' = 'Oily'

Switch from an old flow (like an old welcome series) to a new one without breaking either flow

If you have set out to create a new personalized Klaviyo flow then you will find yourself in the situation where you have people still going through your old welcome flow and if you turn it off and turn your new one on then the people in your old flow will stop being in either flow. This can mean lost revenue for you and there is a simple trick you can implement to fix it.

1. Create your new flow.

2. Add a delay at the very beginning of your old flow. Set it to 365 days. This means that all new people will be stopped once they enter into it but anyone who already is somewhere in the flow will continue to get the old flow emails.

3. Change your new flow from draft to live. Now new people will enter into your new flow.

4. After all the people going through your old flow have gone through it, turn all of the emails and texts in your old flow to draft. Your old flow is now off.

 


Need Help With Your Quiz?

We are passionate about enabling every merchant to personalize the experience for their customers. If you need help with setting up your quiz, syncing data, or personalizing your Klaviyo flows and campaigns, let us know. We are here to support you!

👋 Subscribe to get the personalized marketing playbook for 🚀 supercharging Shopify

How top Shopify brands are increasing revenue by 10% to 30% with AI and zero-party data.