Review feed

Review feed semantics

Semantics for reviews feed are slightly nuanced:

For snapshot review feeds:

  • Any service provider in the review feed, if the provider currently does not exist in LSA provider database, then the provider’s reviews will not be ingested.
  • Any service provider in the review feed, if the provider currently exists in LSA provider database, then the provider’s reviews will be processed as follows:
    • For any review in the feed, if the corresponding review doesn’t exist in LSA storage, then it should be created.
    • For any review in the feed, if corresponding review exists in LSA storage, then the review will be updated with new info.
    • For any review not in the feed, if corresponding review exists in LSA storage, then the review will be deleted.
  • Any service provider not in the review feed, if the provider currently exists in LSA provider database, their reviews will be deleted and the provider will stop serving.
  • Note that a provider with 0 reviews should also have an entry (instead of being omitted) in review feeds in order for them to serve (see Review feed sample - listingId 2)

Note that incremental is not supported for review feeds. A corresponding review feed is required for each profile feed.

Error handling on reviews

If a review feeditem is invalid, we will skip processing of that feed item, and continue to process the remaining valid feed items.

If a review feed is invalid (e.g. not compliant with the schema), we will stop processing the entire review feed.

Review fields

Field Name Type Description Example Required Constraints
serviceProviderId number Unique identifier of a listing (a service provider) 12345 Yes Must fit into int64
ratingCount integer Number of verified consumer ratings 10 Yes Must be zero or more.
author string The author name of the review “Jack L.” No
reviewId string The unique id of the review. If each review doesn’t come with a unique id, need 3p to generate a unique id for each review (e.g hash of review text and user), at least unique among all reviews from one provider. “123” Yes
reviewText string Review text written by the author “Good job!” No
rating integer Rating (must be an integer between 1 and 5) 4 Yes Must be an integer between 1 and 5.
serviceLocationCity string City where the service was performed “New York” No
reviewTimestampMicros integer Timestamp when the review was written in microsecond format. 1.45142E+15 No
serviceTimestampMicros integer Timestamp when the service was finished in microsecond format. 1.45132E+15 No
language string Language of the review text in ISO 639-1 language code (lowercase, 2-letter). Must match with a targeting language of the provider. “en” No Must match with a targeting language specified for the associated provider. Defaults to “en” if not specified.
category object category structure No
category->categoryId enum category of the service (in LSA Taxonomy) “garage_door_pro” No
category->task enum Job type (task) of the service (in LSA Taxonomy) “Repair a Garage Door” No
confirmedCustomer boolean If the review comes from a confirmed customer (with a lead) TRUE No