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

EventDescription
content.createdAn article or page has been created.
content.updatedAn article or page has been edited.
content.publishedAn article or page has been published.
content.unpublishedAn article or page has been unpublished.
content.deletedAn 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-Topic header. 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.

  1. 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.

  2. Copy the generated secret before leaving the creation screen.

  3. Update your endpoint to validate the X-Cortex-Signature header. See Webhooks for verification steps and code examples.

  4. Update your event handling to read the event type from the event field in the payload envelope rather than the X-CMS-Topic header. The new event names are:

    Legacy X-CMS-TopicNew event field
    CREATEDcontent.created
    UPDATEDcontent.updated
    PUBLISHEDcontent.published
    UNPUBLISHEDcontent.unpublished
    DELETEDcontent.deleted
  5. Test with a live event and confirm signature validation passes and events are handled correctly.

  6. Once satisfied, contact the Cortex team to disable the legacy webhook.