SaaS webhooks / Collaboration

Notion webhook events.

5 events emitted by Notion in the team-ops webhook catalog. Each event below carries the canonical event name, payload schema (field names and types only), auth method, signature header, retry policy, and a link back to Notion's docs.

Auth mix: 5 hmac-sha256 · Source extraction: 2026-05-13

All 5 events

Direct anchors. Each event header links to its own URL.

comment.created

Fires when a new comment is added to a Notion page or database record; requires 'comment read' capability on the integration.

extraction: manual html

Auth

Auth method
hmac-sha256
Signature header
X-Notion-Signature
Signature detail
HMAC-SHA256 of the raw request body using the integration's verification_token as the signing key.

Payload schema (field names + types only)

type string required
Event type identifier matching this row's event_name.
entity object required
The Notion entity that triggered the event.
id string required
ID of the object (page, database, comment) that changed.
type string required
Object type (e.g. 'page', 'database', 'comment').
workspace_id string required
ID of the Notion workspace where the event occurred.
workspace_name string | null
Display name of the Notion workspace.
subscription_id string required
ID of the webhook subscription that received this event.
integration_id string
ID of the Notion integration (internal or public) that owns the subscription.
authors array
List of users or bots that authored the triggering change.
id string
type string
timestamp string
ISO 8601 timestamp when the event was dispatched.
Notes: Notion webhooks are currently in limited availability. The page.content_updated event uses aggregated delivery, meaning multiple rapid edits may be batched into a single event dispatch.

Vendor docs

data_source.schema_updated

Fires when the schema of a linked Notion database is modified (added or removed properties); available from API version 2025-09-03.

extraction: manual html

Auth

Auth method
hmac-sha256
Signature header
X-Notion-Signature
Signature detail
HMAC-SHA256 of the raw request body using the integration's verification_token as the signing key.

Payload schema (field names + types only)

type string required
Event type identifier matching this row's event_name.
entity object required
The Notion entity that triggered the event.
id string required
ID of the object (page, database, comment) that changed.
type string required
Object type (e.g. 'page', 'database', 'comment').
workspace_id string required
ID of the Notion workspace where the event occurred.
workspace_name string | null
Display name of the Notion workspace.
subscription_id string required
ID of the webhook subscription that received this event.
integration_id string
ID of the Notion integration (internal or public) that owns the subscription.
authors array
List of users or bots that authored the triggering change.
id string
type string
timestamp string
ISO 8601 timestamp when the event was dispatched.
Notes: Notion webhooks are currently in limited availability. The page.content_updated event uses aggregated delivery, meaning multiple rapid edits may be batched into a single event dispatch.

Vendor docs

database.schema_updated

Fires when a Notion database schema changes. Deprecated after API version 2022-06-28; replaced by data_source.schema_updated for newer API versions.

extraction: manual html

Auth

Auth method
hmac-sha256
Signature header
X-Notion-Signature
Signature detail
HMAC-SHA256 of the raw request body using the integration's verification_token as the signing key.

Payload schema (field names + types only)

type string required
Event type identifier matching this row's event_name.
entity object required
The Notion entity that triggered the event.
id string required
ID of the object (page, database, comment) that changed.
type string required
Object type (e.g. 'page', 'database', 'comment').
workspace_id string required
ID of the Notion workspace where the event occurred.
workspace_name string | null
Display name of the Notion workspace.
subscription_id string required
ID of the webhook subscription that received this event.
integration_id string
ID of the Notion integration (internal or public) that owns the subscription.
authors array
List of users or bots that authored the triggering change.
id string
type string
timestamp string
ISO 8601 timestamp when the event was dispatched.
Notes: DEPRECATED: replaced by data_source.schema_updated for API versions after 2022-06-28. Retained for backward compatibility. Notion webhooks are currently in limited availability. The page.content_updated event uses aggregated delivery, meaning multiple rapid edits may be batched into a single event dispatch.

Vendor docs

page.content_updated

Fires when the content of a Notion page changes; deliveries may be aggregated (batched) when multiple edits happen in quick succession.

extraction: manual html

Auth

Auth method
hmac-sha256
Signature header
X-Notion-Signature
Signature detail
HMAC-SHA256 of the raw request body using the integration's verification_token as the signing key.

Payload schema (field names + types only)

type string required
Event type identifier matching this row's event_name.
entity object required
The Notion entity that triggered the event.
id string required
ID of the object (page, database, comment) that changed.
type string required
Object type (e.g. 'page', 'database', 'comment').
workspace_id string required
ID of the Notion workspace where the event occurred.
workspace_name string | null
Display name of the Notion workspace.
subscription_id string required
ID of the webhook subscription that received this event.
integration_id string
ID of the Notion integration (internal or public) that owns the subscription.
authors array
List of users or bots that authored the triggering change.
id string
type string
timestamp string
ISO 8601 timestamp when the event was dispatched.
Notes: Notion webhooks are currently in limited availability. The page.content_updated event uses aggregated delivery, meaning multiple rapid edits may be batched into a single event dispatch.

Vendor docs

page.locked

Fires when a Notion page is locked by a user, preventing further edits without unlocking.

extraction: manual html

Auth

Auth method
hmac-sha256
Signature header
X-Notion-Signature
Signature detail
HMAC-SHA256 of the raw request body using the integration's verification_token as the signing key.

Payload schema (field names + types only)

type string required
Event type identifier matching this row's event_name.
entity object required
The Notion entity that triggered the event.
id string required
ID of the object (page, database, comment) that changed.
type string required
Object type (e.g. 'page', 'database', 'comment').
workspace_id string required
ID of the Notion workspace where the event occurred.
workspace_name string | null
Display name of the Notion workspace.
subscription_id string required
ID of the webhook subscription that received this event.
integration_id string
ID of the Notion integration (internal or public) that owns the subscription.
authors array
List of users or bots that authored the triggering change.
id string
type string
timestamp string
ISO 8601 timestamp when the event was dispatched.
Notes: Notion webhooks are currently in limited availability. The page.content_updated event uses aggregated delivery, meaning multiple rapid edits may be batched into a single event dispatch.

Vendor docs

Use this data programmatically

The full catalog ships as a HuggingFace dataset under CC-BY-4.0. Load it with the datasets library, filter by vendor, and you have every Notion event in a Parquet table ready for code-generation, schema validation, or routing.

from datasets import load_dataset
ds = load_dataset("automatelab/saas-webhook-catalog")
events = ds["train"].filter(lambda r: r["vendor"] == "notion")

Open the dataset on HuggingFace Source on GitHub

Other vendors in the catalog

Back to the index for all 30 vendors.