Introduction
Sync customer preferences to Klaviyo as custom profile properties in real time. Each preference customers share, such as favorite category, fit, skin type, and more, is stored on their Klaviyo profile and can be used for segmentation, personalized campaigns, and automated flows, helping you deliver more relevant messaging at scale.
✨ Preferences as Klaviyo profile properties are available on request
Benefits
Build segments from any preference answer (for example, everyone whose usual size is "medium")
Trigger and branch flows on preferences – send the right welcome series based on what a customer told you they care about
Personalize email content by pulling a preference value straight into your template
Combine preferences with your existing Rivo data, like points balance, loyalty status, or VIP tier, for much sharper targeting.
Before you start
Make sure you have all three of these in place:
Rivo Accounts enabled. Your Account Widget needs to be live on your store, since that's where customers answer preference questions
At least one preference question. Set these up under Accounts > Preferences. Each question needs a Key, that's what becomes the Klaviyo property name
An active Klaviyo integration. Klaviyo must be connected and enabled with profile properties syncing
Preference sync enabled. Please reach out to your CSM Manager for this.
How preferences appear in Klaviyo
Each answer lands on the customer's Klaviyo profile as a custom property named after the question's key, with a "Rivo:" prefix. For example:
Rivo: size
Here's how each of the five question types shows up, end to end:
Preference input type | Preference title | Preference key | Klaviyo profile property | Klaviyo property value example |
Text | Describe your style in a word |
|
|
|
Select dropdown | What size do you usually wear? |
|
|
|
Checkboxes (multi-select) | Which categories do you shop most? |
|
| Every option they selected in one string, separated by commas – |
Date | When's your next big event? |
|
|
|
Number | What's your shoe size? |
|
|
|
Considerations
The property uses the question's key, not the customer-facing title. It means you can reword a question however you like ("What size do you usually wear?" → "Tell us your size!")
Preferences use a colon in their property name. Unlike other Rivo properties such as
Rivo Points Balance, when you reference a preference in Klaviyo, make sure you include it (e.g.Rivo: size)Use Klaviyo's contains the text operator for multi-select preference questions. As several answers share one property, use the
contains textoperator rather than equals when segmenting. For example,'Rivo: favorite_categories' contains the text 'footwear'will catch a customer who chose footwear alongside anything else, whileequals 'footwear'will only match customers who chose that one option and nothing more.
When responses sync
Preferences ride along with the customer's Klaviyo profile, so they refresh any time that profile is pushed to Klaviyo:
A customer answers or edits a question. Saving the answer, whether from the Account Widget profile or a survey, queues a profile sync for that customer right away
The customer's loyalty profile changes. Earning or redeeming points, or a change in balance or loyalty status, re-pushes the full profile, preferences included
The customer's VIP tier changes. Same full-profile refresh
A bulk or manual sync runs. This covers Rivo's background refresh for stores with recent loyalty activity and any sync you kick off yourself:
Whole customer list sync (Integrations > Klaviyo > "Sync Customers")
Single customer sync (Customers > (a customer) > "More Actions" > "Manually sync to integrations").
💡 Backfilling existing answers: If you've been collecting preferences for a while before turning this on, run "Sync Customers" once. That pushes the answers you've already collected up to Klaviyo so you can start segmenting immediately, without waiting for customers to come back and re-answer.
Using preferences in Klaviyo
A couple of ideas to get you started:
Size-aware restock alerts – tell customers when something comes back in the size they told you they wear
Category-led campaigns – promote a new outerwear drop to customers who said outerwear is one of their favorite categories
Sharper welcome flows – branch your onboarding series on the fit or style preference collected in your post-login survey
Preference + loyalty combos – target customers whose favorite category is footwear and whose
Rivo Points Balanceis high enough to redeem a reward.
Building a segment
Say you want to reach everyone who wears a medium. Preferences work like any other Klaviyo profile property, so it's a standard segment build.
In Klaviyo, go to Audience > Lists & segments
Click "Create" > "Segment"
Name the segment
In Conditions, choose "Properties about someone"
Search for your property name (e.g.
Rivo: size)Pick your operator and value (e.g.
equalsmedium, orcontains the text mediumfor multi-select questions)Save the segment.
Personalizing an email
Reference a preference the same way you'd reference any other Rivo customer property, with a fallback in case the customer hasn't answered yet.
From the Klaviyo template builder, select a text block that you would like to add personalization to
Click the "Edit text" button
In the upper left, click "Add personalization" to open the searchable dropdown menu with a list of properties
Type "Rivo:" to find all the preference questions available in your shop and click one option
Recommended: Enter the default text in case a customer hasn't answered this question yet
Click "Insert".
💡 Tip: You can also manually add personalization tags following this format for each preference: {{ person|lookup:"PROPERTY NAME"|default:"" }}. For example, {{ person|lookup:"Rivo: size"|default:"" }}.
Troubleshooting
What you're seeing | What to check |
No | Work through this in order:
|
Some customers have the properties, others don't | Only customers who have answered a question get a property for it. Customers who haven't answered simply won't have that property yet, which is why a |
The property name isn't what you expected | The property is built from the question's key, not its title. Open the question under Accounts > Preferences to check the exact key |
A segment isn't catching customers you'd expect | If the question is multi-select, its value holds every answer in one comma-separated string. Switch your segment condition from equals to contains the text |
Common questions
Which preferences get synced?
Every active preference question that has a key, for any customer who has answered it. Questions that are inactive or have no key are skipped.
Do I need to do anything after a new preference question is created?
No. Once preference syncing is on for your store, new preferences start flowing to Klaviyo as soon as customers answer them. Just make sure the question is active and has a key.
What happens if I deactivate or delete a preference question?
Rivo stops sending that property, but the last value stays on the Klaviyo profile – it isn't removed automatically. If a leftover property would affect your segments, delete it or stop using it on the Klaviyo side.
What happens if a customer clears their answer?
The property is updated to an empty value rather than being deleted from their profile.
Can I change the property name in Klaviyo?
If you need a different property/key name, create a new question with the key you want.
Does this work with my other marketing platforms?
Not yet! This is Klaviyo only for the moment.
