This guide explains how to configure and utilize product webhooks to receive real-time notifications about product-related events in your system.
Available Events
Your system will be notified about 3 types of product changes:
When a new product is created (
product.created
)When a product's information is changed (
product.updated
)When a product is removed (
product.deleted
)
These notifications work the same way for both regular products and product bundles, making it easier for you to manage your inventory.
Event Details (product.created
)
This webhook fires when a new product is successfully created in the system.
How to Trigger the Event
Through the CRM Product UI:
Click "Actions" and then "Add" to create a new product
Use the "Copy" option from an existing product's menu
Through the APIs:
What Information Will You Receive?
The notification you receive will depend on what type of product was created. Let's look at each type with their complete examples.
This example shows all the details you'll receive when a regular product is created. Notice how it includes everything from basic product information to detailed variant specifications:
Regular Products -Decrypted JSON Encoded Payload
{
"clientAppKey": "app_key_here",
"type": "product.created",
"time": "2024-12-18 11:17:23",
"data": {
"id": "3116862f-0656-4a07-9bfd-fb32e954d0cf",
"object": {
"id": 49,
"name": "Laptop",
"sku": "9360XPS13I",
"vertical": {
"id": 1,
"name": "Art, Photo & Music"
},
"category": {
"id": 5,
"name": "Magazine",
"description": "Mag01"
},
"max_quantity": 10,
"description": "product description!",
"images": [
{
"id": 4,
"uuid": "83035138-5ec2-4dca-a8bc-28519d5a310f",
"alias": "20_fondo",
"created_at": "2024-12-18T14:24:26.000000Z",
"updated_at": "2024-12-18T14:24:26.000000Z",
"path": "https://assets.qa1.sticky.io/images/originals/2024-12-18-09-00-00/0yQO0IdV6Qa0euFxtTESgpDb0j7lhWYuViydSbSy.png",
"is_default": 0,
"is_default_email": 0
}
],
"custom_fields": [
{
"id": 1,
"field_type_id": 1,
"name": "custom field name here",
"token_key": "test_product_field",
"is_multi": 0,
"type_id": 3,
"values": [
{
"option_id": 0,
"value": "custom field value here",
"name": "custom field name here"
}
]
}
],
"is_taxable": 1,
"tax_code": "123456ABC",
"digital_download_url": "your_url_here.com",
"is_shippable": 1,
"created_at": "2024-12-17T19:36:56-05:00",
"updated_at": "2024-12-18T09:25:19-05:00",
"type": "product",
"price": "10.0000",
"cost_of_goods": "0.00",
"restocking_fee": "0.00",
"variants": [
{
"id": 7,
"price": "10.0000",
"quantity": 10,
"weight": 4,
"sku_num": "9360XPS13",
"attributes": [
{
"id": 15,
"attribute": {
"id": 8,
"name": "color",
"option": {
"id": 9,
"name": "blue"
}
}
},
{
"id": 16,
"attribute": {
"id": 11,
"name": "size",
"option": {
"id": 12,
"name": "small"
}
}
}
],
"images": []
}
]
},
"created": "2024-12-18 11:17:20",
"triggeringEvent": "",
"correlationId": "f6cb5c1f-9ec8-4211-a00a-5fd06fc01956"
}
}
Pre-built Bundles - Decrypted JSON Encoded Payload
Here's what you'll receive when a pre-built bundle is created. Notice how it includes information about the bundled products and pricing model:
{
"clientAppKey": "app_key_here",
"type": "product.created",
"time": "2024-12-18 11:36:32",
"data": {
"id": "9309e050-9147-4a56-9bd6-ce3af8d8fe85",
"object": {
"id": 21,
"name": "Laptop”,
"sku": "9360XPSI3TB”,
"vertical": {
"id": 1,
"name": "Art, Photo & Music"
},
"category": {
"id": 5,
"name": "Magazine",
"description": "Mag01"
},
"max_quantity": 10,
"description": "",
"images": [],
"custom_fields": [],
"is_taxable": 0,
"tax_code": null,
"digital_download_url": "",
"is_shippable": 0,
"created_at": "2024-12-18T08:15:28-05:00",
"updated_at": "2024-12-18T08:15:28-05:00",
"type": "bundle",
"bundle_type": "Custom Built",
"use_children_sku": 1,
"price": "10.0000",
"pricing_model_id": 1,
"max_items": 10,
"products": [
{
"id": 12,
"name": ”Mobile",
},
{
"id": 16,
"Name": ”Mobile01",
},
{
"id": 20,
"name": ”Mobile02",
}
]
},
"created": "2024-12-18 11:36:32",
"triggeringEvent": "",
"correlationId": "1469bf2e-db4c-4fc5-94f5-c9c403e8f5c9"
}
}
Custom-built Bundles - Decrypted JSON Encoded Payload
When you create a custom-built bundle, you'll receive information about the customization options and included products. Here's a complete example:
{
"clientAppKey": "app_key_here",
"type": "product.created",
"time": "2024-12-18 11:33:46",
"data": {
"id": "58f8af49-b37e-49f0-8838-e28ccb1d5cfd",
"object": {
"id": 21,
"name": "Laptop”,
"sku": ”93960XPS13",
"vertical": {
"id": 1,
"name": "Art, Photo & Music"
},
"category": {
"id": 5,
"name": "Magazine",
"description": "Mag01"
},
"max_quantity": 10,
"description": "",
"images": [],
"custom_fields": [],
"is_taxable": 0,
"tax_code": null,
"digital_download_url": "your_url_here.com",
"is_shippable": 0,
"created_at": "2024-12-18T08:15:28-05:00",
"updated_at": "2024-12-18T08:15:28-05:00",
"type": "bundle",
"bundle_type": "Custom Built",
"use_children_sku": 1,
"price": "10.0000",
"pricing_model_id": 1,
"pricing_model": "custom",
"max_items": 10,
"products": [
{
"id": 12,
"name": ”Phone",
},
{
"id": 16,
"name": “Computer”,
},
{
"id": 20,
"name": "Mouse”
}
]
},
"created": "2024-12-18 11:33:46",
"triggeringEvent": "",
"correlationId": "f68679c6-0e48-4ce7-93de-5acab0ea5cb6"
}
}
Event Details(product.updated
)
This webhook fires when an existing product is updated, including changes to its details or attributes.
How to Trigger the Event
Through the CRM Product UI:
Click the edit option for a product, make your changes, and save
Through the APIs:
Use the V1 API's update endpoint for product update.
Use any of these V2 API endpoints:
What Information Will You Receive?
The update notifications are structured similarly to creation notifications. Let's look at examples for each type:
Regular Products - Decrypted JSON Encoded Payload
When you update a regular product, you'll receive a complete snapshot of the product's current state:
{
"clientAppKey": "app_key_here",
"type": "product.updated",
"time": "2024-12-18 14:35:08",
"data": {
"id": "bd0d5813-4442-40c1-bc68-16172e5ff27c",
"object": {
"id": 20,
"name": "Laptop”,
"sku": "9360XPSI3TB”,
"vertical": {
"id": 1,
"name": "Art, Photo & Music"
},
"category": {
"id": 5,
"name": "Magazine",
"description": "Mag01"
},
"max_quantity": 10,
"description": "description!",
"images": [
{
"id": 4,
"uuid": "83035138-5ec2-4dca-a8bc-28519d5a310f",
"alias": "20_fondo",
"created_at": "2024-12-18T14:24:26.000000Z",
"updated_at": "2024-12-18T14:24:26.000000Z",
"path": "https://assets.qa1.sticky.io/images/originals/2024-12-18-09-00-00/0yQO0IdV6Qa0euFxtTESgpDb0j7lhWYuViydSbSy.png",
"is_default": 0,
"is_default_email": 0
}
],
"custom_fields": [
{
"id": 1,
"field_type_id": 1,
"name": "test product field",
"token_key": "test_product_field",
"is_multi": 0,
"type_id": 3,
"values": [
{
"option_id": 0,
"value": ""custom field value here",
"name": "custom field name here"
}
]
}
],
"is_taxable": 1,
"tax_code": "123456ABC",
"digital_download_url": "your_url_here.com",
"is_shippable": 1,
"created_at": "2024-12-17T19:36:56-05:00",
"updated_at": "2024-12-18T09:25:19-05:00",
"type": "product",
"price": "10.0000",
"cost_of_goods": "0.00",
"restocking_fee": "0.00",
"variants": [
{
"id": 7,
"price": "10.0000",
"quantity": 10,
"weight": 4,
"sku_num": "9382829AJ1",
"attributes": [
{
"id": 15,
"attribute": {
"id": 8,
"name": "color",
"option": {
"id": 9,
"name": "blue"
}
}
},
{
"id": 16,
"attribute": {
"id": 11,
"name": "size",
"option": {
"id": 12,
"name": "small"
}
}
}
],
"images": []
}
]
},
"created": "2024-12-18 14:35:08",
"triggeringEvent": "",
"correlationId": "8d44d290-3afb-4450-a2a2-96282781e48e"
}
}
Pre-built Bundles - Decrypted JSON Encoded Payload
When updating a pre-built bundle, you'll get information about the updated bundle configuration:
{
"clientAppKey": "app_key_here",
"type": "product.updated",
"time": "2024-12-18 14:35:45",
"data": {
"id": "12cc0080-4624-461a-9359-05a4bec51bb8",
"object": {
"id": 17,
"name": "Laptop",
"sku": "9360XPSI3TB”,
"vertical": {
"id": 1,
"name": "Art, Photo & Music"
},
"category": {
"id": 5,
"name": "Magazine",
"description": "Mag01"
},
"max_quantity": 10,
"description": "",
"images": [],
"custom_fields": [],
"is_taxable": 0,
"tax_code": null,
"digital_download_url": "your_url_here.com",
"is_shippable": 0,
"created_at": "2024-12-16T08:47:36-05:00",
"updated_at": "2024-12-18T08:22:16-05:00",
"type": "bundle",
"bundle_type": "Pre-built",
"use_children_sku": 1,
"price": "10.0000",
"pricing_model_id": 2,
"cost_of_goods": "0.00",
"restocking_fee": "0.00",
"products": [
{
"quantity": 1,
"id": 15,
"name": "Keyboard”,
},
{
"quantity": 1,
"id": 16,
"name": ”Mouse"
}
]
},
"created": "2024-12-18 14:35:45",
"triggeringEvent": "",
"correlationId": "e2478453-2fdf-4e82-b7f6-27e781696c1b"
}
}
Custom-built Bundles - Decrypted JSON Encoded Payload
Updates to custom-built bundles will return the current state of the bundle configuration:
{
"clientAppKey": "app_key_here",
"type": "product.updated",
"time": "2024-12-18 14:36:43",
"data": {
"id": "90a18e48-40d6-4b09-99e3-10e5a94ccb55",
"object": {
"id": 21,
"name": "Laptop”,
"sku": "9360XPSI3TB”,
"vertical": {
"id": 1,
"name": "Art, Photo & Music"
},
"category": {
"id": 5,
"name": "Magazine",
"description": "Product Description"
},
"max_quantity": 10,
"description": "",
"images": [],
"custom_fields": [],
"is_taxable": 0,
"tax_code": null,
"digital_download_url": "your_url_here.com",
"is_shippable": 0,
"created_at": "2024-12-18T08:15:28-05:00",
"updated_at": "2024-12-18T08:15:28-05:00",
"type": "bundle",
"bundle_type": "Custom Built",
"use_children_sku": 1,
"price": "10.0000",
"pricing_model_id": 1,
"max_items": 10,
"products": [
{
"id": 12,
"name":”Computer"
},
{
"id": 16,
"name": "Mouse”
},
{
"id": 20,
"name": ”Mobile"
}
]
},
"created": "2024-12-18 14:36:43",
"triggeringEvent": "",
"correlationId": "f0dbae6b-1ebf-4306-bec4-ff603c5041eb"
}
}
Event Details(product.deleted
)
This webhook fires when a product is permanently deleted from the system.
How to Trigger the Event
Through the CRM Product UI:
Select the delete option from the product's menu
Through the APIs:
What Information Will You Receive?
The delete notification is much simpler than the others, as it only needs to tell you which product was removed:
{
"clientAppKey": "app_key_here",
"type": "product.deleted",
"time": "2024-12-18 14:48:11",
"data": {
"id": "77bb7244-bc4b-4a77-b9d4-cd2c8b7e66a5",
"object": {
"id": 20
},
"created": "2024-12-18 14:48:11",
"triggeringEvent": "",
"correlationId": "d586e07b-dadb-46e5-9536-fe5308b6968b"
}
}
Understanding the Payload
Every webhook notification includes these key pieces of information:
clientAppKey: This identifies your application
type: Tells you what happened (created, updated, or deleted)
time: Indicates the exact time the change occurred, recorded in Eastern time.
data: Contains all the details about what changed
correlationId: A unique identifier to help track this specific change
Best Practices
Always check the type field first to determine how to handle the notification
For created and updated events, the structure stays the same, which makes processing easier
Store the id values - they're essential for linking notifications to your local data
Pay attention to timestamps for accurate record-keeping