DEV Community

CleanScrape
CleanScrape

Posted on Edited on AI-assisted

A Shopify review is not always about the product page you're looking at

One detail worth checking before analysing Shopify reviews: the reviews displayed on a product page may not all belong to that exact product.

During validation of CleanScrape's review scraper, one clothing product widget exposed 675 reviews. The source flagged 619 of them as shared from its product group. Treating that whole export as feedback about a single item would have given the wrong impression.

That is why I wanted product attribution in the output, not just a rating and a block of text. I maintain Shopify Product Reviews Scraper, a paid Actor that currently supports public Judge.me and Okendo integrations.

Start with one product URL

Open the 25-review example. It uses an Owala product page. Replace that URL with the product you want to investigate.

You do not need to identify the review provider, find a shop ID or supply a merchant API key. The Actor checks the public integration and reports which supported source it found.

Here is a small API input that keeps all star ratings:

{
  "productUrls": ["https://owalalife.com/products/freesip"],
  "maxReviewsPerProduct": 100,
  "maxTotalReviews": 25,
  "ratings": ["1", "2", "3", "4", "5"]
}
Enter fullscreen mode Exit fullscreen mode

In this configuration, 100 is the per-product scan budget and 25 is the total export limit. They do different jobs.

Filtering low ratings does not search the whole history

Suppose you change ratings to ["1", "2"] while keeping the scan budget at 100.

The Actor exports matching reviews found within those scanned records. It does not promise to keep searching until it finds 25 low-rated reviews. Eight matching rows, or none, can be a valid result.

I would first export a small unfiltered sample to check the content and attribution, then narrow the ratings. Otherwise it is easy to mistake a restrictive filter for a broken source.

Keep the attribution columns in your spreadsheet

Open the review output and inspect Product attribution alongside the review text. These fields are particularly useful:

Field Why it matters
productUrl The product page requested
reviewedProductName and reviewedProductUrl The reviewed product identified by the source, when supplied
isGroupedReview and isBundleReview Available grouping context; null means it was not established
provider Whether the row came from Judge.me or Okendo
recordKey A stable key for joining your exports

For a product-feedback analysis, I would separate clearly shared reviews from product-specific feedback and keep unknown attribution as its own category. I would not quietly turn unknown into false.

Once the columns make sense, export CSV, Excel or JSON. The Actor collects the reviews; it does not perform sentiment analysis or decide which complaints matter to your business.

Check what the source actually exposed

The Coverage report records the source, scanned and exported counts, and why collection stopped. A successful run does not establish that the full review history was available.

Some integrations expose only embedded reviews or stop pagination early. An unsupported source is not proof that the product has zero reviews. Missing titles, dates or verification badges stay missing rather than being guessed.

Support is currently limited to recognizable public Judge.me and Okendo integrations. A Shopify store using another review app is not covered just because it runs on Shopify. This also does not collect Shopify App Store app reviews.

The current base price is $0.95 per 1,000 exported reviews, with no startup or rating-filter add-on fee. A 25-review export costs $0.02375 before subscription discounts. The example has a $0.05 cap. A fresh run can return and charge for reviews collected in an earlier run; this is an export tool, not a changes-only monitor.

If you are combining reviews across stores, the attribution is worth keeping even when it complicates the spreadsheet. It is better to see that uncertainty than to build a neat analysis around the wrong product.

CleanScrape is independent of Shopify, Judge.me, Okendo and the merchants used as examples. For a reproducible issue, share a run ID and public product URL through the Actor's Issues tab or contact.cleanscrape@gmail.com.

Keep that distinction when using an assistant

I added a Shopify review research skill for this part of the workflow. It tells a compatible assistant to retain Judge.me or Okendo attribution, separate shared product-group reviews, and keep unknown scope visible rather than quietly treating every row as exact-product feedback.

Analyse this saved review export. Separate exact-product, shared and unknown attribution before summarising complaints. Show the review IDs behind each finding. Do not collect more reviews.

This works from your existing files. The skill is free; it does not make fresh Actor runs or your assistant's own usage free.

Top comments (0)