Notion API ➔ Supabase Payload Specification
Technical reference for automating data exchange between Workspace and Backend/DB workflows.
💡 How this integration works:
1. Notion API triggers an event when page.updated occurs.
2. Data is packaged into a standard JSON webhook payload.
3. Payload is delivered into your Supabase intake pipeline and mapped to your Backend/DB targets.
Authentication & Event Specs
| Parameter | Source (Notion API) | Destination (Supabase) |
|---|---|---|
| Auth Mechanism | Bearer Integration Token | Anon / Service Role Key |
| Trigger Event | page.updated | Ingest Pipeline |
Sample Webhook JSON Payload
{
"event": "page.updated_to_supabase",
"timestamp": 1788105200,
"source": {
"platform": "Notion API",
"auth_mode": "Bearer Integration Token",
"data": {
"page_id": "sample_page_id_val",
"database_id": "sample_database_id_val",
"last_edited_by": "sample_last_edited_by_val",
"properties": "sample_properties_val"
}
},
"destination": {
"platform": "Supabase",
"auth_mode": "Anon / Service Role Key",
"target_endpoint": "https://api.supabase.com/v1/ingest",
"mapped_fields": {
"schema": "{{source.page_id}}",
"table": "{{source.database_id}}",
"commit_timestamp": "{{source.last_edited_by}}",
"record_data": "{{source.properties}}"
}
}
}
Quick Integration Setup
- Retrieve your secret API credentials from your Notion API developer dashboard using authentication method
Bearer Integration Token. - Configure the target endpoint URL to route payloads into the Supabase intake pipeline.
- Map incoming schema properties according to the JSON specification detailed above.
Expected HTTP Response Codes
| Status Code | Meaning | Troubleshooting Step |
|---|---|---|
200 OK | Success | Payload accepted and queued for routing. |
401 Unauthorized | Auth Failure | Verify headers for valid Bearer Integration Token credentials. |
422 Unprocessable | Schema Error | Check field keys alignment between source and target payload. |