Turn quiz answers into Klaviyo profile properties
Quiz answers arrive as custom properties on the Klaviyo profile, so budget, goal and experience level become segments you can send to.
New submission on a quiz or preferences form
Create or update the Klaviyo profile and set custom properties used to build segments
One-directional. A submission triggers the action — nothing is written back into your form.
A recommendation quiz earns its keep twice. The first time is on screen, when someone sees the products that match their answers. The second is months later, when a segment built on those same answers decides who gets the restock email.
Shops with a wide catalogue reach for this — skincare, supplements, kit for a hobby with strong beginner and expert ends. Conditional logic keeps the quiz short by hiding the branches that no longer apply, and every answer that survives becomes a property on the Klaviyo profile.
Setting it up
- 1
Build the quiz with conditional logic so a beginner never sees the expert-only questions, and keep the email field last, after the answers people came to give.
- 2
Write down the property names you want in Klaviyo first — primary_goal, budget_range, experience_level — and keep them lower case and underscored so the segment builder stays readable.
- 3
In Zapier, start the Zap with the New Submission trigger and select the quiz form.
- 4
Add Klaviyo's Create or Update Profile action so a returning quiz-taker updates their existing record rather than doubling it.
- 5
Map Email Address to the profile email, then map each quiz answer to its custom property using the names from step two.
- 6
Handle the multi-select answer deliberately: keep it as a text property and segment with contains, or split it in a Zapier formatter step so Klaviyo stores a list.
- 7
Take the quiz yourself and open your own profile in Klaviyo — custom properties are created on first write, so they only appear in the segment builder after a real submission.
- 8
Build one segment per combination you plan to send to, confirm the counts look sane, then turn the Zap on.
What maps where
Using the Product Recommendation Quiz as the starting point. These are its real fields — swap in your own and the mapping works the same way.
| Form field | Klaviyo |
|---|---|
| Email Address | The profile identifier Klaviyo matches on before writing any properties |
| What is your primary goal? | A primary_goal custom property — the main axis most segments are built on |
| What is your budget range? | A budget_range property that keeps premium recommendations away from entry-level shoppers |
| How would you describe your experience level? | An experience_level property, used to choose between beginner and advanced content in a flow |
| Which of these factors matter most? (select up to 3) | A multi-value property; segment on it with a contains condition |
| How soon do you need this? | A purchase_timing property that decides how quickly the follow-up email goes out |
Variations worth knowing
The quiz does not score answers — there is no calculation engine in the form. Let Klaviyo do the sorting: build a segment for each combination of primary_goal and budget_range that matters, and use segment entry as the flow trigger so each group gets its own product block.
Create or Update Profile overwrites a property on each retake. Add a Track Event step alongside it with the same answers as event properties, and the profile holds the current answer for segmenting while the event log keeps every version for analysis.
If something isn't arriving
Klaviyo only offers a custom property once it has been written to at least one profile. Run a real test submission rather than relying on Zapier's sample data preview, then reopen the segment builder and the property will be listed.
That is the quiz being retaken, and every submission overwrites the properties with the newest answers. Where you want the first answer to stick, add a Klaviyo find-profile search step before the action and a Zapier filter that stops the Zap when the property already has a value.
Frequently asked questions
How many properties is too many?
The limit is practical rather than technical. Map the answers you will genuinely segment on and leave the rest. A property nobody builds a segment from is a column you scroll past every time you open the builder, and it ages badly once the quiz changes.
How quickly do answers show up on the profile?
The New Submission trigger fires in real time and Zapier runs the Klaviyo step straight after, so the properties are normally on the profile within moments. Nothing is written back, so the quiz itself never displays anything Klaviyo holds.
What happens if someone abandons the quiz halfway?
Nothing reaches Klaviyo. The Zap runs on a completed submission, so a partial quiz creates no profile at all. Asking for the email in the first question rather than the last captures more people, at the cost of more drop-off right at the start.
Related automations
- Add text message opt-ins to your SMS audience
Only people who answered yes to text updates reach Klaviyo, with their mobile number and SMS consent set on the profile.
- Grow your marketing list from a signup form
Each signup on your discount or newsletter form becomes a consented Klaviyo profile on the marketing list, ready for the welcome flow.
- Put workshop registrations on their own reminder list
Each registration lands on a session-specific Klaviyo list and tracks a Registered event, so confirmations and reminders send themselves.
- Start a nurture flow with a Joined Waitlist event
A waitlist submission records a Joined Waitlist event in Klaviyo, so the nurture flow starts the moment someone signs up.
- Store review scores on the customer's profile
Every review updates the customer's Klaviyo profile with their score and tracks a Submitted Review event for the follow-up flow.
- Add buyers to a customers list after each order
Each order form submission adds the buyer to a Customers list in Constant Contact for updates and repeat-purchase emails.
Build the form first
The automation needs somewhere to fire from. Publish a form, connect it once, and every submission from then on runs this flow.
Start free