Build Review Flows in Klaviyo
Last updated: October 21, 2026
Once your Klaviyo account is connected, BetterReviews pushes an event to Klaviyo every time you approve a review collected through BetterReviews, and keeps a set of profile properties up to date on the reviewer. (One event doesn’t wait for approval: Review Request Completed fires as soon as a customer submits a review from their request link — see below.) You use the events to trigger flows and the profile properties to build segments — no code, no theme changes.
You can also let Klaviyo send your review requests: BetterReviews still decides who gets asked and when, and your Klaviyo flow sends the email. See Send review requests from Klaviyo.
This is different from the Klaviyo “Best Reviews” feed, which drops review content into your emails. This guide is about automation: “when a great review comes in, do something.”
Before you start
- Connect Klaviyo in Settings → Integrations → Klaviyo (the connect screen lists the exact private-API-key scopes to grant — Events, Profiles, Metrics, Campaigns, and Data privacy).
- Klaviyo only lists a metric in the flow builder after it has received at least one event. To get them all there right away, click Send sample events on the Klaviyo card (see below). Otherwise the review events appear after the first review is approved while connected.
The events we send
Every approved review (collected through BetterReviews, with a customer email on file) fires:
| Metric | When |
|---|---|
BetterReviews - Review Submitted | Always |
BetterReviews - Review Submitted Positive | Rating is 4–5★ |
BetterReviews - Review Submitted Negative | Rating is 1–3★ |
The Positive/Negative split is sent for you, so you can build a thank-you flow and a recovery flow without adding a conditional split inside Klaviyo.
Each event carries these properties (use them as flow conditions or merge tags like {{ event.rating }}):
rating,title,body,reviewer_nameproduct_id,product_name,product_urlsentiment,is_verified_buyer,has_photos,photo_countquality_score— our AI rating of the review’s depth and usefulness, 1–10marketing_potential—low/medium/high, how usable the review is as marketing content
The profile properties we keep updated
On every approved review, we update these on the reviewer’s Klaviyo profile (use them to build segments):
betterreviews_review_countbetterreviews_last_review_scorebetterreviews_last_review_datebetterreviews_last_review_sentimentbetterreviews_is_photo_reviewerbetterreviews_avg_quality_score
Flow recipes
These are the high-value automations the AI fields unlock. Build each as a flow triggered by the metric, with a flow filter on the property.
1. Route marketing-ready reviews to a UGC / social flow
Trigger: BetterReviews - Review Submitted
Flow filter: marketing_potential equals high
When a review is good enough to use as marketing, automatically email your team (or the customer for a UGC-license ask). This is the reviews-as-content workflow — marketing_potential = high is the signal that a review is worth amplifying.
2. Spotlight your most detailed reviews
Trigger: BetterReviews - Review Submitted
Flow filter: quality_score is greater than or equal to 8
Send your team an alert so the most detailed reviews get featured on product pages, in emails or on social. Don’t attach a reward, discount or points to this flow: a reward that depends on what a review says makes it an incentivized review, which has to be disclosed and can break review-platform and Google rules.
3. Thank-you vs. recovery, automatically split
Thank-you flow trigger: BetterReviews - Review Submitted Positive → send a thank-you and ask for a referral. Keep discounts and rewards out of this flow: an offer that only 4 and 5-star reviewers receive counts as paying for positive reviews.
Recovery flow trigger: BetterReviews - Review Submitted Negative → route to support, send an apology + make-it-right offer. Never ask the customer to change or remove their review in exchange for the fix.
Because we pre-split the events, neither flow needs a conditional branch — the right customers enter the right flow.
4. Segment: photo reviewers and power reviewers
Build a Klaviyo segment with:
betterreviews_is_photo_revieweristrue→ people who’ll send photos, perfect for a “share your photos on Instagram” campaign.betterreviews_avg_quality_scoreis at least7→ your most articulate customers, ideal for case-study or testimonial outreach.
Send review requests from Klaviyo
By default BetterReviews emails your review requests itself. If you’d rather send them from Klaviyo — your templates, your sender, your flow reporting — switch who sends them. BetterReviews keeps deciding who gets asked and when; at that moment it sends a BetterReviews - Review Request Eligible event to the customer’s Klaviyo profile, and your flow sends the email.
What stays with BetterReviews
- Timing. Your trigger event and delay in Collect → Request timing, the 9am–9pm send window, and one request per order work exactly as they do for our emails (review request emails). The event is sent when our email would have been.
- Who is skipped. Customers on the BetterReviews suppression list, and customers whose Shopify marketing state is
UNSUBSCRIBED,REDACTEDorINVALID, never get an event — the same rules as our emails. - The review pages. The links in the event open the same AI-guided review chat, review hub and form your customers get from our emails.
What becomes yours
- The email itself. Its content, design, sender and subject are your Klaviyo template. Our email template and its promotional-content check aren’t used.
- Unsubscribes. Your Klaviyo email must include an unsubscribe link (Klaviyo adds one to marketing emails; transactional emails don’t get one automatically). Klaviyo decides who can receive the email under your account’s consent settings. Customers who unsubscribe in Klaviyo are not added to the BetterReviews suppression list.
- Reminders. BetterReviews sends one event per request and no reminder. Add reminders in your flow (see the reminder recipe).
Keep the request honest. Don’t offer a discount, gift, points or entry in exchange for a review, and send the same request to every customer — don’t branch on how happy a customer seems, and don’t ask only happy customers. Incentivized or selectively requested reviews break FTC rules and Google’s review policies. This is why the request events carry no rating.
Set it up
- Connect Klaviyo in Settings → Integrations → Klaviyo with the key access levels the connect screen lists.
- Click Send sample events, so
BetterReviews - Review Request EligibleandBetterReviews - Review Request Completedappear in Klaviyo’s metrics list. A success also confirms your key can write events. - In Klaviyo, create a flow triggered by the metric
BetterReviews - Review Request Eligibleand build the email (flow recipe). Optionally add a reminder (reminder recipe). - Set the flow live.
- Back on the Klaviyo card, under Who sends review requests, choose Klaviyo and click Save.
Until the flow is live, requests switched to Klaviyo reach Klaviyo as events but no email goes out — and events sent before your flow is live are not re-sent when you turn it on. Requests that were already on their way when you switched may still go out as a BetterReviews email. If a customer asks for a new review link, it arrives as a BetterReviews email.
To switch back, choose BetterReviews (default) and save. Requests not yet handed to Klaviyo go out as BetterReviews email from then on; turn off your Klaviyo flow so it doesn’t send for events it already received. Disconnecting Klaviyo also switches requests back to BetterReviews email — you’re asked to confirm first.
If Klaviyo rejects your key
If Klaviyo rejects your key when we hand off a request (the key was deleted, or lost an access level), the Klaviyo card shows Reconnect Klaviyo. Your review requests are paused, not sent by BetterReviews email — you chose Klaviyo, so we don’t send our email instead. Reconnect by pasting a private API key that has the access levels listed on the connect screen (a new key, or the same one after fixing its access); requests resume within about 15 minutes. Or switch review requests back to BetterReviews (default): waiting requests then go out as our email. Requests still waiting 14 days after their send date are cancelled.
The Eligible event
BetterReviews - Review Request Eligible — one per review request, sent when the request is due.
| Property | What it is |
|---|---|
email | The customer’s email (also the profile the event is on) |
first_name | The customer’s first name, when we have it |
request_id | The BetterReviews review request ID |
order_id | The Shopify order ID |
store_name | Your store’s name |
review_url | The link to put on your button: the review chat for one product, the review hub for several |
product_count | How many products the request covers |
products | Up to 10 products, each with product_id, title, image_url, product_url and its own review_url |
product_count is always the full count, even when products is capped at 10. Point your main button at review_url — it covers every product.
Links are personal to the customer and work for 90 days from when the request was created by default (30–180 days, your link-expiry setting). Don’t send the event’s links to anyone else. The sample event also carries an order_name (#1001) — real events don’t, so don’t build on it.
The Completed event
BetterReviews - Review Request Completed — sent when a customer submits a review through their request link, one event per product reviewed, whatever happens in moderation. It’s sent whenever Klaviyo is connected, whoever sends your requests.
| Property | What it is |
|---|---|
request_id | The review request the review came from |
order_id | The Shopify order ID on that request |
product_id | The reviewed product |
product_title | Its title |
It carries no rating, sentiment or review text, on purpose: a flow that treats customers differently by star rating at this point is review gating. Use it to stop reminders. For thank-you and recovery flows, use the approval-time Review Submitted events above.
Request flow recipe
Trigger: BetterReviews - Review Request Eligible
Email: a short ask with one button linking to {{ event.review_url }}. Greet with {{ event.first_name|default:"there" }} and show the first product with {{ event.products.0.title }} and {{ event.products.0.image_url }}, or loop over event.products to list them all.
Klaviyo’s Smart Sending is on by default for flow emails and skips a customer who got another of your emails recently. Turn it off on this email if every request should go out.
Reminder recipe
Add these steps after the request email in the same flow:
- Time delay: for example 5 days.
- Conditional split: What someone has done (or not done) →
BetterReviews - Review Request Completed→ zero times → since starting this flow. - On the yes branch (hasn’t reviewed yet), send the reminder email with the same
{{ event.review_url }}button.
A customer who reviews any of the products in the request leaves the reminder. Keep it to one or two reminders, and the same honesty rules apply: no incentives, and every customer who hasn’t reviewed gets the same reminder.
Send sample events
The Send sample events button on the Klaviyo card sends one of each: Review Request Eligible, Review Request Completed, Review Submitted and Review Submitted Positive. They go to a sample profile ([email protected]) with sample data and a placeholder link, so the metrics and their properties show up in Klaviyo’s flow builder and you can preview your email with realistic data. No customer data is used.
If it reports that your key can’t write events, edit the key in Klaviyo and add Events: Full access to your key. You can send samples a few times an hour.
Notes
- Events fire only for reviews collected through BetterReviews with a customer email — not for imported historical reviews, and not for anonymous storefront reviews with no email.
- Customers on the BetterReviews suppression list are skipped automatically. Sending an event or updating a profile never subscribes anyone to your marketing; Klaviyo’s own consent settings still decide who receives your emails.
- Newly approved reviews appear in Klaviyo within a minute or two of approval.
- For an overview of everything the integration does, see the Klaviyo integration.
Book a demo