Webhooks for updates to articles and pages
Receive real-time notifications when articles or pages are created, updated, published, unpublished, or deleted in Cortex.
Cortex can notify your server when articles or pages change. For an overview of how webhooks work and how to configure one, see Webhooks.
Events
| Event | Description |
|---|---|
content.created | An article or page has been created. |
content.updated | An article or page has been edited. |
content.published | An article or page has been published. |
content.unpublished | An article or page has been unpublished. |
content.deleted | An article or page has been deleted. |
The event type is included in the payload envelope event field. The body of the payload is always the full article or page in its current state. The event does not directly trigger changes on your side; it is up to you to take the appropriate action. For example, on a content.deleted event you should remove the content from your cache.
If the Cortex team previously configured webhooks for you, your integration may still receive the
X-CMS-Topicheader. We recommend migrating to a self-managed webhook. See Migrating from legacy webhooks below.
Example payload
{
"id": "653ef42c-7edd-46cb-9597-4378f02bb53e",
"content": [
{
"id": "873e0d41-999d-41fc-9b74-59e56aa58779",
"contentType": "TEXT",
"content": "New Block",
"isHtml": false
}
],
"language": "en",
"version": 6,
"source": {
"sourceSystem": "BRIDGE",
"overwriteEnabled": false
},
"clientId": "DEMO",
"heroMedia": {
"content": {
"id": "8b739997-eb45-47bf-b031-c670b0d7161a",
"contentType": "IMAGE",
"image": "https://media-cdn.incrowdsports.com/2f78008c-d1da-468e-8e28-c735dcf890aa.webp"
},
"title": "Test Webhook",
"summary": "This is a test"
},
"readTimeMinutes": 1,
"auth": {
"loginRequired": false,
"roles": [],
"entitlements": []
},
"pinned": false,
"articleMetadata": {},
"singlePage": false,
"displayCategory": {
"id": "ad013efe-140f-4aad-aa7d-1046cb12a1c2",
"text": "Community"
},
"slug": "52e1e587-216a-42d7-8fe0-976cd76e1d5a",
"linkedIds": [
{
"sourceSystem": "MEDIA",
"sourceSystemId": "2f78008c-d1da-468e-8e28-c735dcf890aa"
}
],
"categories": [
{
"id": "ad013efe-140f-4aad-aa7d-1046cb12a1c2",
"text": "Community"
}
],
"blocked": false
}Migrating from legacy webhooks
If your integration was configured by the Cortex team, prior to April 2026, and uses the X-CMS-Topic header, follow these steps to migrate to a self-managed webhook.
-
In Cortex, click the organisation icon in the bottom left corner, then go to Settings > Webhooks and create a new webhook endpoint pointing to the same receiver URL.
-
Copy the generated secret before leaving the creation screen.
-
Update your endpoint to validate the
X-Cortex-Signatureheader. See Webhooks for verification steps and code examples. -
Update your event handling to read the event type from the
eventfield in the payload envelope rather than theX-CMS-Topicheader. The new event names are:Legacy X-CMS-TopicNew eventfieldCREATEDcontent.createdUPDATEDcontent.updatedPUBLISHEDcontent.publishedUNPUBLISHEDcontent.unpublishedDELETEDcontent.deleted -
Test with a live event and confirm signature validation passes and events are handled correctly.
-
Once satisfied, contact the Cortex team to disable the legacy webhook.
Updated about 17 hours ago
