Skip to main content
Solved

Klaviyo x Bazaarvoice: Product Review Flows to exclude already reviewed product


Forum|alt.badge.img+1

Hi team,

I’m creating a Rating & Review worklflow and need your assistance with the following case:

  • Context: 
    • We’re using Klaviyo to send Rating & Review (R&R) emails after event Order Shipped is recorded. The email is triggered 14 days post-shipment.
    • Bazaarvoice is being used to submit and manage reviews, and there is an integration between Bazaarvoice & Klaviyo to facilitate this process (documentation linked here).
  • Issue: If a customer purchases the same product multiple times, they will receive multiple review request emails. However, they can only submit a review once, as Bazaarvoice allows each user to review a specific product only once. So all other rating n review emails sent are not neccessary.
  • Goal: If a customer already review product A, the product will be excluded from the review form or the review email is sendskiped.

Could you please help to investigate and let us know if there is a way we can do it? Thank you so much!

Best answer by retention

Hi ​@Anh Nguyen, welcome to the community!

As I understand it from the documentation you linked, after someone makes a purchase, they are sent an email with a special link to a Bazaar Voice review submission page for multi-product review submission page. Bazzar Voice link requires a “list of items” to show the users the items they purchased to review. They show this with the example code that creates the URL:

https://apps.bazaarvoice.com/deployments/endurancecycles/main_site/production/en_US/multi-rating s.html?products={% for item in event.Items %}{{ item.ProductID | urlencode }}{% if not forloop.last %}/{% endif %}{% endfor %}&user={{ person|lookup:"bazaarvoice_UAS" }}&campaignId=klaviyo

Where “products=” loops across all the items that was in the Fulfilled Order event.  

The challenge here is if a customer buys 3 products: A, B, C - but has already purchased and reviewed A, do you want the submission page to show only B and C?  This is trickier, as you’ll have to build a way to omit A, and only show B and C.  At the moment, the only logical way to do this is to store a list of items (by ProductID) in Klaviyo as a custom property for each customer, but I imagine this is out of scope unless you have a developer to help.  Update Profile action won’t work here because you have to keep appending additional products as they purchase.  Perhaps there are other workarounds from the community...

Alternatively, what I recommend, is if someone has already submitted a Review, to simply not send the request for review.  Or you can limit it to a reasonable amount of time, for example, 90 days (3 months).  That way if a customer buys multiple times, they are only asked for a review at most once every 9o days.

To do this, you can simply add a Flow Filter using the bazzarvoice-review metic.  I don’t have Bazzarvoice in my test account, but it might look like this:

This will ensure someone who recently left a “bazaarvoice-review” in the last 90 days, will not to enter the Flow (to get additional review request messages).

I’m not sure if this is acceptable compromise, but it’s the easiest way to avoid requesting multiple reviews from the same person multiple times (in a given timeframe) if they already left a review.

Hope that helps! 

View original
Did this topic or the replies in the thread help you find an answer to your question?

3 replies

retention
Partner - Platinum
Forum|alt.badge.img+62
  • 2025 Champion
  • 949 replies
  • Answer
  • February 26, 2025

Hi ​@Anh Nguyen, welcome to the community!

As I understand it from the documentation you linked, after someone makes a purchase, they are sent an email with a special link to a Bazaar Voice review submission page for multi-product review submission page. Bazzar Voice link requires a “list of items” to show the users the items they purchased to review. They show this with the example code that creates the URL:

https://apps.bazaarvoice.com/deployments/endurancecycles/main_site/production/en_US/multi-rating s.html?products={% for item in event.Items %}{{ item.ProductID | urlencode }}{% if not forloop.last %}/{% endif %}{% endfor %}&user={{ person|lookup:"bazaarvoice_UAS" }}&campaignId=klaviyo

Where “products=” loops across all the items that was in the Fulfilled Order event.  

The challenge here is if a customer buys 3 products: A, B, C - but has already purchased and reviewed A, do you want the submission page to show only B and C?  This is trickier, as you’ll have to build a way to omit A, and only show B and C.  At the moment, the only logical way to do this is to store a list of items (by ProductID) in Klaviyo as a custom property for each customer, but I imagine this is out of scope unless you have a developer to help.  Update Profile action won’t work here because you have to keep appending additional products as they purchase.  Perhaps there are other workarounds from the community...

Alternatively, what I recommend, is if someone has already submitted a Review, to simply not send the request for review.  Or you can limit it to a reasonable amount of time, for example, 90 days (3 months).  That way if a customer buys multiple times, they are only asked for a review at most once every 9o days.

To do this, you can simply add a Flow Filter using the bazzarvoice-review metic.  I don’t have Bazzarvoice in my test account, but it might look like this:

This will ensure someone who recently left a “bazaarvoice-review” in the last 90 days, will not to enter the Flow (to get additional review request messages).

I’m not sure if this is acceptable compromise, but it’s the easiest way to avoid requesting multiple reviews from the same person multiple times (in a given timeframe) if they already left a review.

Hope that helps! 


Forum|alt.badge.img+1
  • Author
  • Contributor III
  • 6 replies
  • February 27, 2025

Hi ​@retention, thank you so much for your swift response!

In case the customer purchase A, B, C and he/ she already reviewed A, I’m fine with displaying a review form of all 3 products (A marked as review and B, C is to be reviewed). However, the case I want to avoid most is when the customer only purchase A, which he/ she already reviewed, meaning that he/ she receive a form of only one product but cannot review it. Is there any way we can avoid that? Using bazaarvoice-review with product ID for example?

Hope to hear from you soon. Thank you so much!


Forum|alt.badge.img+1
  • Author
  • Contributor III
  • 6 replies
  • February 27, 2025

Just to add on, in case I use your alternative solution, there will be lots of cases where I may miss out on the products that haven’t been reviewed :(