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

## Purpose This enables webhooks for nearly real-time updates (every 5 seconds) from Notion Databases. ## Problem Notion does not offer webhooks. Even worse, the “Last edited time” property, which 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 [![Get real-time updates from Notion Databases](https://img.youtube.com/vi/BROsXafy9Uw/0.jpg)](https://youtu.be/BROsXafy9Uw) ## How it works - Database Pages are frequently polled while filtered by a last modified timestamp 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](https://n8n.io/workflows/2270-prevent-simultaneous-workflow-executions-with-redis/) 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 ```json [ { "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" } ] ```

Platform
n8n
Category
Development & IT
Price
$14.99
Creator
Mario

How to import this workflow into n8n

  1. 1Purchase or download the workflow to get the n8n workflow JSON file.
  2. 2In your n8n instance, open Workflows and choose "Import from File" (or paste the JSON with Ctrl+V on the canvas).
  3. 3Open each node marked with a credential warning and connect your own accounts and API keys.
  4. 4Run the workflow once manually to verify the data flow, then toggle it to Active.

Related Development & IT workflows

More from Mario

Need this deployed? We'll set it up for you.

Our automation experts deploy this workflow in your stack, connect your accounts, and verify it works — or build a custom solution from scratch.