Productivity
Notion Webhooks
All-in-one workspace. Receive events for page and database changes, comments, and user updates.
Connecting Notion to Hookbase
Create a source in Hookbase first — it gives you an ingest URL to paste into Notion. Then:
- 1In Notion, open your connection's settings and go to the Webhooks tab
- 2Click + Create a subscription, enter your Hookbase ingest URL and choose the events
- 3Notion POSTs a verification_token to the URL. Open this source in Hookbase, where it appears under "Notion sent a verification token" (held for 24 hours), and copy it
- 4Back in Notion, click Verify, paste the verification_token and submit
- 5Once Notion shows the subscription as verified, click Use as signing secret in Hookbase, then turn on signature rejection if you want it
- 6Make sure the connection has access to the pages and databases you want to watch
Signature verification
Set the source's provider to notion and paste the signing secret. Every request is checked before the event is stored, and anything that fails is rejected rather than quietly recorded.
- Algorithm
- HMAC-SHA256
- Header
- X-Notion-Signature
- Where to find the secret
- Connection settings → Webhooks tab → + Create a subscription. Notion then sends a verification_token to your endpoint, and Hookbase shows it on this source's page.
Notion event types
7 of the events people route most often. Hookbase accepts every event Notion sends, whether or not it is listed here.
page.created
A page was created
page.content_updated
Page content was updated
page.properties_updated
Page properties were updated
page.deleted
A page was deleted
page.undeleted
A page was restored
database.created
A database was created
comment.created
A comment was created
What a Notion webhook looks like
A page.created payload. Hookbase stores the raw body exactly as it arrived, so this is also what you get back on a replay.
{
"type": "page.created",
"timestamp": "2024-01-15T10:30:00.000Z",
"workspace_id": "ws-abc123",
"data": {
"page": {
"id": "page-def456",
"parent": {
"type": "database_id",
"database_id": "db-ghi789"
},
"properties": {
"Name": {
"title": [
{
"text": {
"content": "New Feature Spec"
}
}
]
},
"Status": {
"select": {
"name": "Draft"
}
}
},
"created_time": "2024-01-15T10:30:00.000Z",
"created_by": {
"id": "user-jkl012"
}
}
}
}Start receiving Notion webhooks
Create a source, paste the URL into Notion, and watch the first event arrive. The free tier includes 1,000 events a month.
Get Started Free