---
title: "Review Updated"
method: POST
path: "review_updated"
---

# Review Updated

`POST review_updated` (webhook)

Sent when:

- A review is published.
- A review is unpublished (rejected).
- A reviewer verifies their email (for reviews written in the PDP Reviews Widget), and the review changes from anonymous to *verified reviewer*.

**Not sent** when:

- An image is published or unpublished.
- A review is tagged.
- A review is pushed to a social channel.
- A review is anonymized because of a data subject request (GDPR).
- Yotpo support deletes a review to fix an import or another technical issue.

To receive it, add `review_updated` to `events` when you [create a filter](ref:create-filter), then [create a store subscription](ref:create-subscription) for each store that installed your app. Yotpo sends the event to your target URL as a `POST` with this JSON body.

## Headers

- `X-Yotpo-Webhooks-Event-Type` string, required
- `X-Yotpo-Webhooks-Tenant-Type` string, required
- `X-Yotpo-Webhooks-Tenant-Id` string, required
- `WebhookMessageId` string, required
- `WebhookMessageIdPerTarget` string, required

## Payload

- object
  - `event` string: The event name, `review_updated`.
  - `data` ReviewWebhookReview: The review.
    - `id` integer: The review ID.
    - `app_key` string: Your store ID.
    - `source_app_key` string, nullable: The store ID the review was syndicated from, or `null` for reviews written for your store.
    - `source_review_id` integer, nullable: The ID of the original review when it was syndicated from another store, or `null`.
    - `title` string: The review title.
    - `content` string: The review text.
    - `score` integer: The star rating, from 1 to 5.
    - `reviewer_display_name` string: The reviewer's name as shown on the review.
    - `customer_email` string: The reviewer's email address.
    - `user_id` integer: The reviewer's Yotpo user ID.
    - `user_type` string: The reviewer account type: `User` or `AnonymousUser`. Changes to `User` when a reviewer verifies their email.
    - `verified_buyer` boolean: `true` when the reviewer is a verified buyer.
    - `shop_owner` boolean: `true` when the review was written by the store owner.
    - `created_at` string, date-time: When the review was created.
    - `updated_at` string, date-time: When the review was last updated.
    - `new` boolean: `true` while the review is marked new in moderation.
    - `deleted` boolean: `true` when the review has been deleted.
    - `archived` boolean: `true` when the review is archived.
    - `escalated` boolean: `true` when the review was escalated in moderation.
    - `rejection_reason` string: Why the review was rejected. Empty unless it was.
    - `sentiment` number, nullable: Sentiment score of the review text, from 0 (negative) to 1 (positive). `null` until it is calculated, which can be after `review_create`.
    - `votes_up` integer: Number of helpful votes.
    - `votes_down` integer: Number of unhelpful votes.
    - `twitter_pushed` integer: How many times the review was posted to Twitter.
    - `facebook_pushed` integer: How many times the review was posted to Facebook.
    - `review_source_type_id` integer: The ID of the channel the review came from.
    - `review_type_id` integer: The ID of the review type.
    - `order_id` integer: Yotpo's ID for the order the review is tied to, or `0` when it isn't tied to an order.
    - `external_order_id` string: Your order ID. Empty when the review isn't tied to an order.
    - `external_product_id` string: Your product ID. Empty when not available.
    - `product_title` string: The product title. Empty when not available.
    - `language` string: The language code of the review, for example `en`. Empty when not detected.
    - `custom_review_form` object[]: Answers to the custom questions on your review form, if any.
    - `creation_request_id` string: The `creation_request_id` returned by the API request that created the review. Present for reviews created through the API.

## Acknowledgement `200`

Return any 2xx status quickly to acknowledge the event. Without one, Yotpo retries at least 10 times with exponential backoff.

---

[API](https://skmtc.dev/yotpo/apis/app-developer-api.md) - [All operations](https://skmtc.dev/yotpo/apis/app-developer-api/llms.txt) - [OpenAPI document](https://skmtc.dev/yotpo/apis/app-developer-api/revisions/5bcae8239b6e?raw)
