App-level and store-level webhooks
Each event is characterized by a tenant type, which signifies the proprietor of the event data. Events that occur at the store level, such as the accumulation of loyalty points or the creation of a review, are linked with the store tenant type. Partners can subscribe to store events for the stores that have installed their apps.
Events pertaining to the disconnection of the application fall under the application tenant type. Only the application itself can subscribe to its own application events.
This structure ensures the accuracy and relevance of the event data.
- When you subscribe to app-level webhooks, you need to insert only your application ID. The subscription is once per application ID.
- When you subscribe to store-level webhooks, you need to insert both the app ID and the specific store ID. You need to subscribe to each store separately.
Webhook headers
Headers use key-value parameters that are sent as part of the webhook request.
A standard header contains a key-value pair that can be added to a webhook.
Yotpo’s webhooks include 4 types of headers:
- X-Yotpo-Webhooks-Tenant-Type : The tenant type of the event (store or application)
- X-Yotpo-Webhooks-Tenant-Id : The ID of the tenant - depending on the tenant, this field is either _store_id(_app_key) or application_id
- WebhookMessageId : A unique ID for the event. This helps catch duplicate events
- X-Yotpo-Webhooks-Event-Type: Specifies the event type that triggered the webhook, allowing quick identification of the event without parsing the payload.
Example:
Below is an example of what the headers should look like when your webhook is received. The payload is abbreviated - see the full event payloads in the sections below.
curl "https://mock.test.com" \
-X POST \
-H "content-length: 123" \
-H "content-type: application/json" \
-H "webhookmessageid: 9d13f1b2-f957-4ceb-a2be-3960fd4e3f2a" \
-H "webhookmessageidpertarget: adf35deb-06bf-4169-a647-84f97a419db2" \
-H "x-yotpo-webhooks-event-type: review_create" \
-H "x-yotpo-webhooks-tenant-id: XxUcKDzVhizs3UE2qDWhvpsfkFPlfjj5XIfGsyxX" \
-H "x-yotpo-webhooks-tenant-type: store" \
-d "{\"event\":\"review_create\",\"data\":{\"id\":12345,\"title\":\"Works great.\",\"content\":\"Works great.\",\"score\":5,\"app_key\":\"au70vrn8Z2qkReVcRhiyJalGu80ekKfli0wXnXQg\",\"created_at\":\"2024-01-15T10:30:00Z\",\"customer_email\":\"[email protected]\",\"external_order_id\":\"ORDER-12345\",\"external_product_id\":\"PROD-67890\",\"product_title\":\"Premium Wireless Headphones\"}}"UGC Reviews Events
| Webhook event name | Trigger |
|---|---|
review_request.eligible.on_fulfillment | Triggered when a review request becomes eligible after fulfillment. |
review_request.eligible.on_delivery | Triggered when a review request becomes eligible after delivery. |
review_create | Triggered when a new review is created in the Yotpo system. |
review_updated | Triggered when:
|
{
"trigger": {
"type": "fulfilled",
"date": "2025-01-15T10:30:00Z"
},
"source_app_key": "abc123xyz789AppKeyExample",
"order_id": "ORD-12345",
"review_submission_url": "https://yotpo.com/go/aBcDeFg123",
"shopper_profile": {
"email": "[email protected]",
"name": "Jane Doe",
"locale": "en-US"
},
"products": [
{
"product_id": "prod_001",
"variant_id": "var_001_blue_medium",
"product_title": "Classic Cotton T-Shirt",
"product_image_url": "https://cdn-yotpo-images-production.yotpo.com/Product/12345/67890/thumb.png"
},
{
"product_id": "prod_002",
"variant_id": "var_002_black",
"product_title": "Premium Denim Jeans",
"product_image_url": "https://cdn-yotpo-images-production.yotpo.com/Product/12346/67891/thumb.jpg"
}
]
}{
"trigger": {
"type": "delivered",
"date": "2025-01-15T10:30:00Z"
},
"source_app_key": "abc123xyz789AppKeyExample",
"order_id": "ORD-12345",
"review_submission_url": "https://yotpo.com/go/aBcDeFg123",
"shopper_profile": {
"email": "[email protected]",
"name": "Jane Doe",
"locale": "en-US"
},
"products": [
{
"product_id": "prod_001",
"variant_id": "var_001_blue_medium",
"product_title": "Classic Cotton T-Shirt",
"product_image_url": "https://cdn-yotpo-images-production.yotpo.com/Product/12345/67890/thumb.png"
},
{
"product_id": "prod_002",
"variant_id": "var_002_black",
"product_title": "Premium Denim Jeans",
"product_image_url": "https://cdn-yotpo-images-production.yotpo.com/Product/12346/67891/thumb.jpg"
}
]
}{
"event": "review_create",
"data": {
"id": 12345,
"source_app_key": null,
"title": "Works great.",
"reviewer_display_name": "John Doe",
"content": "Works great.",
"user_id": 1001,
"score": 5,
"deleted": false,
"app_key": "au70vrn8Z2qkReVcRhiyJalGu80ekKfli0wXnXQg",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-20T14:45:00Z",
"new": false,
"user_type": "User",
"verified_buyer": true,
"archived": false,
"shop_owner": false,
"twitter_pushed": 0,
"facebook_pushed": 0,
"review_source_type_id": 4,
"votes_up": 0,
"votes_down": 0,
"review_type_id": 1,
"source_review_id": null,
"sentiment": null,
"escalated": false,
"customer_email": "[email protected]",
"order_id": 67890,
"external_order_id": "ORDER-12345",
"external_product_id": "PROD-67890",
"product_title": "Premium Wireless Headphones",
"language": "",
"custom_review_form": [
{
"question": "Pets Name",
"answer": "Max, Bella and Luna"
}
]
}
}{
"event": "review_updated",
"data": {
"id": 12345,
"source_app_key": null,
"title": "Works great.",
"reviewer_display_name": "John Doe",
"content": "Works great.",
"user_id": 1001,
"score": 5,
"deleted": false,
"app_key": "au70vrn8Z2qkReVcRhiyJalGu80ekKfli0wXnXQg",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-20T14:45:00Z",
"new": false,
"user_type": "User",
"verified_buyer": true,
"archived": false,
"shop_owner": false,
"twitter_pushed": 0,
"facebook_pushed": 0,
"review_source_type_id": 4,
"votes_up": 0,
"votes_down": 0,
"review_type_id": 1,
"source_review_id": null,
"sentiment": null,
"escalated": false,
"customer_email": "[email protected]",
"order_id": 67890,
"external_order_id": "ORDER-12345",
"external_product_id": "PROD-67890",
"product_title": "Premium Wireless Headphones",
"language": "",
"custom_review_form": [
{
"question": "Pets Name",
"answer": "Max, Bella and Luna"
}
]
}
}App uninstall
| Webhook event name (topic) | Trigger | Tenant type | Tenant ID |
|---|---|---|---|
| integrations.applications.disconnected.v3 | Triggered when a merchant clicks on the "disconnect" button within the integration page in Yotpo or after they click uninstall within your product and you delete the access token using this endpoint. | application | application_id |
{
"topic": "integrations.applications.disconnected.v3",
"name": "Application disconnected",
"store": "STORE_APP_KEY",
"product_lines": "[Reviews]"
}
More events coming soon!Additional events for Yotpo's products will soon be added.