Every webhook delivery sends a JSON POST request with this structure:
{
"event": "product.create",
"table": "product",
"action": "create",
"record": { "id": "abc123", "name": "Widget", ... },
"timestamp": "2026-03-04T12:00:00.000Z",
"deliveryId": "a1b2c3d4-e5f6-..."
}event - The full event name in {table}.{action} format.table - The table that was modified.action - The action performed: create, update, or delete.record - The full record data after the operation (or the deleted record for deletes).timestamp - ISO 8601 timestamp of when the event occurred.deliveryId - Unique ID for this delivery, useful for deduplication.Each delivery includes these custom headers:
| Header | Description |
|---|---|
X-Webhook-Signature | HMAC-SHA256 hex digest of the request body, signed with your webhook secret |
X-Webhook-Event | Event name (e.g. product.create) |
X-Webhook-Delivery | Unique delivery ID for deduplication |
Events follow the pattern {table}.{action}. Examples:
product.create - A new product was created.article.update - An article was updated.user.delete - A user was deleted.order.create - A new order was placed.Use the event subscriptions in your webhook configuration to limit which events trigger notifications.