Klaviyo "Best Reviews" Feed
Last updated: June 4, 2026
BetterReviews serves a per-store JSON feed of your best reviews — ranked by our AI quality score, not just “newest first” — at a stable URL. You register that URL once in Klaviyo as a Web Feed, then loop over it in any campaign or flow with a single block of Liquid. Klaviyo re-reads the feed roughly every 15 minutes, so newly approved reviews show up in your next send automatically.
This feed needs no Klaviyo API connection — it’s just a public URL you paste into Klaviyo. You can set it up before, after, or instead of connecting your Klaviyo account.
What makes our feed different
Every review app can hand Klaviyo a list of reviews. Ours returns the reviews most worth showing — highest AI quality score first, only 4–5★, only reviews with a linkable product — so your newsletter leads with your strongest social proof instead of whatever happened to come in last.
Before you start
You need:
- A Klaviyo account with access to Settings → Other → Web feeds
- At least a few approved reviews (the feed works with zero, it just returns an empty list until reviews are approved)
You do not need:
- A Klaviyo API key or app connection
- Any code in your theme
- Any Shopify scope change
1. Get your feed URL
Ask our team (in your Slack channel or by email) to turn on your best-reviews feed. We send you a private feed URL that looks like:
https://api.betterreviews.app/feeds/klaviyo/reviews/<your-token>.json
Treat the URL like a secret — anyone with it can read your published reviews (the same content already public on your storefront, never customer emails or private data). If it ever leaks, tell us and we’ll issue a new URL and switch off the old one.
2. Register the feed in Klaviyo
- In Klaviyo, go to Settings → Other → Web feeds and click Add web feed.
- Set:
- Feed name:
betterreviews(lowercase — you’ll reference this exact name in your email) - Feed URL: the URL you copied above
- Request method:
GET - Content type:
JSON
- Feed name:
- Save. Klaviyo fetches the feed immediately and then every ~15 minutes.
3. Drop the reviews into an email
In any campaign or flow email, add a Text block, switch to the source/</> view, and paste this. It loops over the feed and renders each review:
{% for review in feeds.betterreviews.items %}
<table width="100%" style="margin-bottom:16px;border-bottom:1px solid #eee;padding-bottom:16px">
<tr>
<td>
<div style="color:#f5a623;font-size:18px">
{% for i in (1..review.rating) %}★{% endfor %}
</div>
{% if review.title %}<strong>{{ review.title }}</strong><br>{% endif %}
<p style="margin:8px 0">{{ review.body }}</p>
<small>— {{ review.author }} on
<a href="{{ review.product_url }}">{{ review.product_title }}</a>
</small>
</td>
</tr>
</table>
{% endfor %}
Want just your single best review (for a hero block)? Reference the first item directly:
{% assign best = feeds.betterreviews.items[0] %}
{% if best %}
<div style="color:#f5a623;font-size:18px">{% for i in (1..best.rating) %}★{% endfor %}</div>
<p>"{{ best.body }}"</p>
<small>— {{ best.author }} on <a href="{{ best.product_url }}">{{ best.product_title }}</a></small>
{% endif %}
What the feed returns
The feed is a JSON object with an items array. Each item is one review:
| Field | Example | Notes |
|---|---|---|
rating | 5 | 1–5; the feed only includes 4★ and 5★ reviews |
title | "Exactly what I hoped for" | May be empty |
body | "The fabric is heavier than I expected…" | Review text, HTML stripped |
author | "Jordan M." | The public reviewer name (same as on your storefront) |
product_title | "Classic Tote" | |
product_url | https://yourstore.com/products/classic-tote | Links straight to the product (uses your store’s primary domain) |
date | "2026-05-30T12:00:00Z" | When the review was written |
Reviews are ordered best-first: highest AI quality score, then highest rating, then most recent.
Notes & limits
- Up to 50 reviews per feed by default — plenty for a “best of” block. Ask support if you need more.
- ~30-minute freshness. We rebuild the feed every 15 minutes and Klaviyo re-reads it about every 15, so a newly approved review appears within about 30 minutes, and one you reject drops out on the same schedule.
- Only published reviews appear. Pending, hidden, or rejected reviews are never in the feed.
- No customer data. The feed carries only the public review content — never customer emails, order details, or anything private.
Replacing or turning off the feed
- New URL: ask us and we issue a brand-new URL; the old one stops working on Klaviyo’s next fetch. Update the Web Feed URL in Klaviyo afterwards.
- Turn off: ask us and we stop serving the feed but keep your URL, so turning it back on later gives you the same link.
Book a demo