---
title: "Save review scores to Klaviyo profiles"
description: "Send NPS answers from formformform to Klaviyo as a profile property and a Submitted Review event, so high and low scores get different follow-ups."
url: "https://www.formformform.com/automations/klaviyo-review-scores-on-profiles"
type: static
generatedAt: "2026-08-23T18:56:58.727Z"
---
![Klaviyo logo](/logos/integrations/klaviyo.png)

# 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.

When this happens

New submission on a product-review or NPS form

Do this

Update the customer's Klaviyo profile with the rating and feedback, and track a Submitted Review event

One-directional. A submission triggers the action — nothing is written back into your form.

A review form sent after delivery gets answered by people who already bought something. The score is worth more sitting on their Klaviyo profile than in a spreadsheet, because that is where the next email to them gets decided.

Subscription brands lean on this hardest — coffee, refills, anything that renews. A nine or a ten can go straight to a request for a public review; a four routes to a person rather than a flow. Both come off the same submission.

## Setting it up

1.  1
    
    Send the review form by link or QR code on the delivery note, so the person answering is the customer who received the order.
    
2.  2
    
    Decide two names before building: nps\_score for the profile property and Submitted Review for the metric. Both are awkward to rename once history exists.
    
3.  3
    
    In Zapier, create the Zap with the New Submission trigger and select the review form.
    
4.  4
    
    Add Klaviyo's Create or Update Profile action first, mapping Email Address so the score attaches to the existing customer profile instead of a new one.
    
5.  5
    
    Map the 0–10 answer to nps\_score and check Zapier is passing it as a number — a score stored as text cannot be compared with greater-than in a segment.
    
6.  6
    
    Add a second Klaviyo step, Track Event, with the metric name Submitted Review and the written answers as event properties.
    
7.  7
    
    In Klaviyo, build one flow on Submitted Review with a conditional split at seven: above it, ask for a public review; below it, notify whoever handles retention.
    
8.  8
    
    Submit the form as a test customer, confirm both the property and the event landed on that profile, then turn the Zap on.
    

## What maps where

Using the [Net Promoter Score Survey](https://www.formformform.com/templates/nps-survey-form) as the starting point. These are its real fields — swap in your own and the mapping works the same way.

Form field

Klaviyo

Your Name

First and last name attributes, so the follow-up email is not addressed to an email prefix

Email Address

The profile identifier — the score is written to the customer's existing Klaviyo profile

On a scale of 0–10, how likely are you to recommend us to a friend or colleague?

An nps\_score property, stored as a number so segments can compare it

What's the main reason for your score?

An event property on Submitted Review, quoted in the internal notification for low scores

Which of our products or services did you use?

A property that lets the follow-up flow name the right product

What could we do to improve your experience?

An event property kept for reading, not used to trigger anything on its own

## Variations worth knowing

Split promoters and detractors in Zapier

If you would rather not build the branch inside Klaviyo, use Zapier Paths after the trigger. One path tracks Submitted Review and subscribes the profile to an advocates list; the other sends the answers to whoever handles complaints. The score still lands on the profile either way.

Keep the score history, not just the latest

The nps\_score property holds one value and each survey overwrites it. The Submitted Review event does not — every submission is its own record with its own timestamp. Use the property for segments and the event stream for the trend across quarters.

## If something isn't arriving

Scores land on a brand-new profile rather than the customer's.

The address in the form does not match the one on the Klaviyo profile, usually because the customer typed a different one. Ask for the email the order was placed with in the field label, and add a Klaviyo find-profile step before the update so mismatches show in Zapier's task history instead of quietly creating duplicates.

A segment on nps\_score returns nobody.

Klaviyo stored the answer as text, so a greater-than comparison matches nothing. Add a Zapier formatter step to convert the value to a number, re-run one task to overwrite an existing profile, and check the property type on that profile before rebuilding the segment.

## Frequently asked questions

Should the score go on the profile or in the event?

Both, for different jobs. The profile property answers what this customer's score is now, which is what a segment reads. The event answers what they said and when, which is what a flow branches on and what a report counts over time.

Can a low score stop a scheduled campaign going out?

Not on its own. Build a Klaviyo segment of profiles with a low nps\_score and exclude it from the campaign, or hold those profiles aside while the follow-up happens. The exclusion is set up in Klaviyo, never on the form.

Does the customer's answer change anything on the form?

No. The flow runs one direction: submission in, Klaviyo action out. Nothing is written back, so the form has no memory of who has already replied. Klaviyo's flow filters are where you stop the same customer being asked twice.

## Related automations

-   [Add text message opt-ins to your SMS audience](https://www.formformform.com/automations/klaviyo-sms-consent-to-profile)
    
    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](https://www.formformform.com/automations/klaviyo-signup-to-marketing-list)
    
    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](https://www.formformform.com/automations/klaviyo-workshop-rsvps-to-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](https://www.formformform.com/automations/klaviyo-waitlist-joined-event)
    
    A waitlist submission records a Joined Waitlist event in Klaviyo, so the nurture flow starts the moment someone signs up.
    
-   [Turn quiz answers into Klaviyo profile properties](https://www.formformform.com/automations/klaviyo-quiz-answers-to-properties)
    
    Quiz answers arrive as custom properties on the Klaviyo profile, so budget, goal and experience level become segments you can send to.
    
-   [Add buyers to a customers list after each order](https://www.formformform.com/automations/constant-contact-orders-to-buyers-list)
    
    Each order form submission adds the buyer to a Customers list in Constant Contact for updates and repeat-purchase emails.
    

-   [All Klaviyo integration details →](https://www.formformform.com/integrations/klaviyo)
-   [Start from the Net Promoter Score Survey →](https://www.formformform.com/templates/nps-survey-form)
-   [Browse every automation →](https://www.formformform.com/automations)

## 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](https://app.formformform.com/register?utm_source=landing&utm_medium=bottom&utm_campaign=automations&utm_content=klaviyo-review-scores-on-profiles)
