Webhooks Reference
Every subscribable team webhook event generated directly from Kanorio's notification event registry, including envelope format, HMAC-SHA256 verification headers, and sample data payloads.
Delivery Envelope & Headers
Verification & ISR Guide (opens in a new tab)X-Kanorio-Signature:t=<unix_seconds>,v1=<hex_hmac_sha256>computed over<t>.<raw_body>using your endpoint'swhsec_signing secret (during secret rotation, a secondv1=is appended for 24 hours).X-Kanorio-Event: Event key (e.g.collections.item.published).X-Kanorio-Delivery: Unique delivery ID (idin the body) for idempotency deduplication.- Retry policy: Non-2xx responses or timeouts (10 s) are retried up to 6 times with exponential backoff. Endpoints that fail consecutively for 7 days are automatically paused.
{
"id": "ntf_01j8x9m2k4p7q8w3",
"event": "collections.item.published",
"createdAt": "2026-10-21T08:30:00.000Z",
"website": {
"id": "ws_01",
"name": "Sunny Bakery"
},
"title": "Collection item published: Sourdough Guide",
"summary": "blog/sourdough-guide (published)",
"actionUrl": "https://app.kanorio.com/data/blog",
"data": {
"collectionId": "col_01",
"collectionKey": "blog",
"itemId": "item_01",
"slug": "sourdough-guide",
"status": "published",
"publicVersion": "1729500000000",
"cacheTags": ["site:ws_01", "collection:blog", "item:item_01"]
}
}Subscribable Events (23)
collections.item.createdFired when a collection item is created (includes publicVersion and cacheTags).
{
"collectionId": "col_01",
"collectionKey": "blog",
"itemId": "item_01",
"slug": "hello-world",
"status": "published",
"publishedFieldData": {
"title": "Hello World"
},
"channel": "agent",
"publicVersion": "1729500000000",
"cacheTags": [
"site:ws_01",
"collection:blog",
"item:item_01"
]
}collections.item.updatedFired when a collection item draft or published payload is updated.
{
"collectionId": "col_01",
"collectionKey": "blog",
"itemId": "item_01",
"slug": "hello-world",
"status": "published",
"publishedFieldData": {
"title": "Hello World"
},
"channel": "agent",
"publicVersion": "1729500000000",
"cacheTags": [
"site:ws_01",
"collection:blog",
"item:item_01"
]
}collections.item.publishedFired when a collection item is published and visible on the Content Delivery API.
{
"collectionId": "col_01",
"collectionKey": "blog",
"itemId": "item_01",
"slug": "hello-world",
"status": "published",
"publishedFieldData": {
"title": "Hello World"
},
"channel": "agent",
"publicVersion": "1729500000000",
"cacheTags": [
"site:ws_01",
"collection:blog",
"item:item_01"
]
}collections.item.unpublishedFired when a collection item is unpublished and removed from the Content Delivery API.
{
"collectionId": "col_01",
"collectionKey": "blog",
"itemId": "item_01",
"slug": "hello-world",
"status": "published",
"publishedFieldData": {
"title": "Hello World"
},
"channel": "agent",
"publicVersion": "1729500000000",
"cacheTags": [
"site:ws_01",
"collection:blog",
"item:item_01"
]
}collections.item.deletedFired when a collection item is permanently deleted.
{
"collectionId": "col_01",
"collectionKey": "blog",
"itemId": "item_01",
"slug": "hello-world",
"status": "published",
"publishedFieldData": {
"title": "Hello World"
},
"channel": "agent",
"publicVersion": "1729500000000",
"cacheTags": [
"site:ws_01",
"collection:blog",
"item:item_01"
]
}collections.items.bulkChangedFired once per batch operation (bulkCreate, bulkUpdate, publish/unpublish batch, or CSV/JSON import).
{
"collectionId": "col_01",
"collectionKey": "blog",
"operation": "published",
"itemIds": [
"item_01",
"item_02"
],
"count": 2,
"channel": "agent",
"publicVersion": "1729500000000",
"cacheTags": [
"site:ws_01",
"collection:blog"
]
}collections.schema.changedFired when a collection or its field schema is created, updated, or deleted (triggers `kanorio types` regeneration).
{
"collectionId": "col_01",
"collectionKey": "teachers",
"operation": "updated",
"addedFieldIds": [
"linkedin_url"
],
"updatedFieldIds": [],
"removedFieldIds": [],
"titleFieldId": "name",
"publicVersion": "1729500000000",
"cacheTags": [
"site:ws_01",
"collection:teachers"
]
}content.site.publishedFired when a site is published, invalidating pages, globals, and redirects caches.
{
"publicVersion": "1729500000000",
"cacheTags": [
"site:ws_01",
"pages",
"globals",
"redirects"
]
}content.page.publishedFired when a page is published on the site.
{
"pageId": "page_01",
"slug": "/about",
"previousSlug": "/about-us",
"pageType": "generic",
"publicVersion": "1729500000000",
"cacheTags": [
"site:ws_01",
"pages",
"page:page_01",
"redirects"
]
}content.page.updatedFired when a published page's content or slug is updated (includes previousSlug when renamed).
{
"pageId": "page_01",
"slug": "/about",
"previousSlug": "/about-us",
"pageType": "generic",
"publicVersion": "1729500000000",
"cacheTags": [
"site:ws_01",
"pages",
"page:page_01",
"redirects"
]
}content.page.unpublishedFired when a page is unpublished or hidden.
{
"pageId": "page_01",
"slug": "/about",
"previousSlug": "/about-us",
"pageType": "generic",
"publicVersion": "1729500000000",
"cacheTags": [
"site:ws_01",
"pages",
"page:page_01",
"redirects"
]
}content.page.deletedFired when a page is deleted.
{
"pageId": "page_01",
"slug": "/about",
"previousSlug": "/about-us",
"pageType": "generic",
"publicVersion": "1729500000000",
"cacheTags": [
"site:ws_01",
"pages",
"page:page_01",
"redirects"
]
}customers.form.submittedFired when a visitor submits an online form (notifies team and webhooks).
{
"formId": "form_01",
"formName": "Contact Us",
"submissionId": "sub_01",
"contactId": "cnt_01",
"answers": {
"name": "Alex",
"email": "alex@example.com"
}
}customers.sendingDomain.degradedFired when a verified custom sender domain fails DNS verification and campaign sending is paused.
{
"websiteId": "ws_01",
"eventKey": "customers.sendingDomain.degraded"
}customers.messagingQuota.alertFired when monthly messaging quota is exhausted, auto-upgraded, or add-on billing fails.
{
"websiteId": "ws_01",
"eventKey": "customers.messagingQuota.alert"
}customers.teamDestination.disabledFired when a team notification destination (webhook or email) is automatically paused after repeated delivery failures.
{
"websiteId": "ws_01",
"eventKey": "customers.teamDestination.disabled"
}deliverables.entitlement.grantedFired when a contact is granted access (Entitlement) to a deliverable or unit.
{
"entitlementId": "ent_01",
"contactId": "cnt_01",
"deliverableId": "deliv_01",
"deliverableKey": "react-course",
"source": "ORDER_LINE"
}deliverables.entitlement.revokedFired when a contact's Entitlement is revoked (e.g. refund or manual revocation).
{
"entitlementId": "ent_01",
"contactId": "cnt_01",
"deliverableId": "deliv_01",
"deliverableKey": "react-course",
"source": "ORDER_LINE"
}deliverables.progress.completedFired when a learner completes a deliverable according to its completion rule.
{
"contactId": "cnt_01",
"deliverableId": "deliv_01",
"deliverableKey": "react-course",
"unitId": "unit_01"
}ec.order.paidFired when an order payment succeeds and is captured.
{
"orderId": "ord_01",
"orderNumber": 1001,
"amount": 2900,
"currency": "USD",
"customerEmail": "buyer@example.com"
}ec.shipment.statusChangedFired when a shipment status transitions (in transit, arrived at store, delivered, or exception).
{
"websiteId": "ws_01",
"eventKey": "ec.shipment.statusChanged"
}site.analytics.milestoneFired when cumulative site pageviews reach a milestone.
{
"websiteId": "ws_01",
"eventKey": "site.analytics.milestone"
}site.storageQuota.alertFired when site storage reaches 80%, is exhausted, auto-upgrades, or add-on payment fails.
{
"websiteId": "ws_01",
"eventKey": "site.storageQuota.alert"
}