Provide Real-Time Updates for Notion Databases via Webhooks with Supabase

Go to Workflow
1,551 views
Built by Mario Mario
Created on June 05, 2026

Description

Purpose

This enables webhooks for nearly realtime updates (every 5 seconds) from Notion Databases.

Problem

Notion does not offer webhooks. Even worse, the “Last edited time” property, we could use for polling, only updates every minute. This gives us a polling interval only as low as 2 minutes and we still need to implement a comparing mechanism to detect changes.

Solution

This workflow caches states in between while doing efficient polling & comparing. It brings down the update latency from 2 minutes to 5 seconds and also provides the output of the changes only.

Demo

How it works

Database Pages are frequently polled while filtered by a last modified time stamp for more efficiency
Retrieved pages get compared with previously cached versions in Supabase
Only new and changed pages are pushed to a registered webhook

Setup

Create a new project in Supabase and import the DB schema (provided through Gumroad)
Add a "Last edited time" property to your Notion Database, if it has none yet
Define the dynamically generated settings_id from the settings table (Supabase) in the Globals node
Define the Notion Database URL in the Globals node
Define your custom Webhook URL in the last node where the results should be pushed to
It is recommended to call this workflow using this template to prevent simultaneous workflow executions
Set the Schedule Trigger to every 5 seconds or less frequent
More detailed instructions provided within the workflow file and the illustrated instructions provided during the download

Example output

[
{
"action": "changed",
"changes": {
"property_modified_at": "2024-06-04T17:59:00.000Z",
"property_priority": "important"
},
"data": {
"id": "ba761e03-7d6d-44c2-8e8d-c8a4fb930d0f",
"name": "Try out n8n",
"url": "https://www.notion.so/Try-out-n8n-ba761e037d6d44c28e8dc8a4fb930d0f",
"property_todoist_id": "",
"property_id": "ba761e037d6d44c28e8dc8a4fb930d0f",
"property_modified_at": "2024-06-04T17:59:00.000Z",
"property_status": "Backlog",
"property_priority": "important",
"property_due": {
"start": "2024-06-05",
"end": null,
"time_zone": null
},
"property_focus": false,
"property_name": "Try out n8n"
},
"updated_at": "2024-06-04T17:59:42.144+00:00"
}
]

Nodes Used (4)

Code
n8n-nodes-base.code
HTTP Request
n8n-nodes-base.httpRequest
Notion
n8n-nodes-base.notion
Supabase
n8n-nodes-base.supabase