How to Retrieve Feedback

Here some of the most popular use-cases for retrieving feedback.

Filters

The Feedback endpoint supports a large variety of filter options to help you narrow down the results to the feedback you are interested in.

  • productId: product identifier
  • channel*: webshop or source reference
  • country*: country of the webshop
  • sku*: stock keeping unit (product identifier)
  • pageId: product page (URL) identifier
  • rating*: star value between 1 and 5
  • publicationDate: feedback pubblication date on the webshop
  • ingestionDate: feedback ingestion date in the Wonderflow data lake
  • metadata*: metadata associated with the feedback
  • feedbackWithImages*: boolean value to filter feedback with images
  • isIncentivizedReview*: boolean value to filter incentivized feedback
  • isVerifiedPurchase*: boolean value to filter verified purchase feedback
  • isVineVoice*: boolean value to filter Vine Voice feedback (Amazon incentivized program)

(*)The productId should always be specified when one of the following filters is applied: feedbackWithImages, isIncentivizedReview, isVerifiedPurchase, isVineVoice, channel, country, sku, rating or metadata.

Author

To ensure compliance with our data privacy policy, the author value accessible through our API from our databases is anonymized. Therefore, it will not match the original value available on the webshop.

Date range

In the Feedback schema you’ll find two fields that can be used to filter feedback by date range: publicationDate and ingestionDate.

These filters are useful to segment the data by a specific time frame and to ingest the feedback in your system incrementally.

Why are these two fields different and which one applied to which use case?

  • publicationDate: the date the feedback was published on the webshop
  • ingestionDate: the date the feedback was ingested in the Wonderflow data lake.

In a scenario where the product catalog configuration is stable in terms of product list, codes and channels, the publicationDate is the best choice to filter the feedback.

In a scenario where the product catalog configuration is not stable, so either the product list changes or product codes are added or channels are added, the publicationDate is not sufficient, since when the product catalog configuration changes new pages and new reviews are ingested in the Wonderflow data lake from scratch. In this case the ingestionDate is more suited, even if the API will return feedback where the publication date is prior to the date specified in the filter.

  1. On the 31th Jan 2025 you query the API by publicationDate from 2025-01-01 to 2025-01-31. The API returns all the feedback published in that time frame.
  2. On the 25th Feb 2025 the product catalog changes, adding a new SKU and new pages are scraped from scratch, storing feedback from 2023 in the Wonderflow data lake.
  3. On the 28th Feb 2025 you query the API by publicationDate from 2025-02-01 to 2025-02-28. The API returns only the feedback published in that time frame, excluding the feedback related to the new SKU prior to that date.

If instead of using the publicationDate you filter by ingestionDate, the API will return all the feedback ingested in the Wonderflow data lake in that time frame, including the feedback related to the new SKU (starting from 2023).

The supported date format is YYYY/MM/DD

Metadata

Metadata filter options are specific for each project and dataset. Any metadata field can be used to filter the feedback records by passing metadata.<field_of_interest> as the filter name.

Some examples of metadata fields that could be available in your dataset are: age, userAge, hairColor, skinType, priceSegment, isCompetitor, …

Social media metadata

When the channel is a social media platform, the metadata object also includes fields that let you reconstruct the full conversation thread (post/video → comment → reply).

Thread reconstruction fields

FieldDescription
contentIdUnique identifier of the item itself: a post, a comment, a reply, or — on YouTube — a video transcription
rootIdID of the top-level post/video the item belongs to. For a post/video itself, rootId equals contentId
parentIdID of the item this one is a direct reply to (a comment, or the root post/video for top-level comments). Present only on comments/replies
contentTypeType of the item: Post / Comment (Reddit, Instagram, TikTok) or Comment / Transcript (YouTube)
depthThread nesting level, starting at 0 for top-level comments. Present only on comments/replies
likeCountNumber of likes the item received
replyCountNumber of replies/comments the item received

Use parentId to build a parent→children map across all returned items; the item whose contentId equals rootId is the tree root. Rebuilding this way (post/video → comment → reply → reply…) works the same regardless of the channel.

How to avoid the ingestion of duplicates

When you retrieve feedback from our system, you may want to avoid ingesting duplicates in your system. We suggest you to use the reviewId field to identify the feedback records. As an alternative you could create a key using the textHash, productId and the author fields.

How to Store Feedback

Here some of the most popular use-cases for storing feedback.