Search all guides

Reference · Tools

Notion trigger

Monitors a Notion database for new pages added or existing pages updated, triggering a workflow with the page data. (Polls on a schedule.)

Polling trigger Productivity v1

The Notion Trigger watches a database and starts a workflow when pages are added or updated, polling at your chosen interval. A typical build is kicking off a review process whenever a new entry appears in a content-calendar database.

Works as
Polling trigger — checks on a schedule
Tool name
notion_trigger
Parameters
5
Outputs
Output
Credentials
Notion API
Official docs
Notion docs developers.notion.com

What you can build with Notion

  • Trigger a workflow when a new page is added to a Notion database.
  • Start a workflow when a page is updated in a Notion database.
  • Monitor a Notion project tracker for new tasks.
  • Watch a Notion CRM database for updated contacts.

Overview

Polls a Notion database for new or updated pages. Supports two events: page added to database and page updated in database. Uses the Notion API with cursor-based pagination and minute-level timestamp deduplication. Returns simplified or raw Notion page data including all database properties.

Node Type

Trigger — polling (checks for new data on a schedule)

Input / Output

DirectionPort(s)
InputNone (trigger node)
OutputOutput

Credentials

This tool requires Notion API credentials. See the Credentials Guide for setup instructions.

Parameters

ParameterTypeRequiredDefaultDescription
EventoptionsYespageAddedToDatabaseWhich event to listen for.
Options: pageAddedToDatabase (Page Added to Database), pagedUpdatedInDatabase (Page Updated in Database)
Database IDstringYes—The ID of the Notion database to monitor. You can paste the full database URL or just the UUID. (shown when Event is pageAddedToDatabase or pagedUpdatedInDatabase)
SimplifybooleanNotrueWhether to return a simplified version of the response instead of the raw data. (shown when Event is pageAddedToDatabase or pagedUpdatedInDatabase)
Poll IntervalnumberNo1How often to check for new data.
Poll Interval UnitoptionsNominutesUnit for the poll interval.
Options: seconds, minutes, hours

Output Data

Each new or changed page becomes one output item, carrying _trigger (always notion_polling) and _timestamp (when the poll ran).

With Simplify on (the default), Notion’s nested property format is flattened: the page keeps id, name (its title) and url, and every database property is added as property_<name> with the name lower-cased and spaces replaced by underscores:

{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "name": "Onboard Acme Corp",
  "url": "https://www.notion.so/Onboard-Acme-Corp-a1b2c3d4e5f67890abcdef1234567890",
  "property_status": "In progress",
  "property_owner": ["jane@example.com"],
  "property_due_date": { "start": "2026-08-20", "end": null },
  "_trigger": "notion_polling",
  "_timestamp": "2026-08-15T09:00:00.000Z"
}

With Simplify off, the raw Notion page object is emitted instead — object, id, created_time, last_edited_time, parent, url and the full properties object in Notion’s own nested format.

Reference page data downstream by expression, e.g. {{ $json.property_status }}.

Example Configuration

Watch a database for newly added pages:

{
  "type": "notion_trigger",
  "parameters": {
    "event": "pageAddedToDatabase",
    "databaseId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "pollInterval": 5,
    "pollIntervalUnit": "minutes"
  }
}

Watch for edits, pasting the database URL instead of the ID:

{
  "type": "notion_trigger",
  "parameters": {
    "event": "pagedUpdatedInDatabase",
    "databaseId": "https://www.notion.so/myworkspace/a1b2c3d4e5f67890abcdef1234567890",
    "simple": true,
    "pollInterval": 2,
    "pollIntervalUnit": "minutes"
  }
}

Return the raw Notion page object:

{
  "type": "notion_trigger",
  "parameters": {
    "event": "pageAddedToDatabase",
    "databaseId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "simple": false,
    "pollInterval": 30,
    "pollIntervalUnit": "seconds"
  }
}

Trigger Behavior

  • Activation: Polling starts when the workflow is activated. There is no poll at the moment of activation — the first check runs one full interval later.
  • Schedule: The trigger polls for new data based on the configured polling interval.
  • State: Maintains internal state (the time of the last check plus the page IDs seen at that boundary) so each poll returns only pages changed since then.
  • First Run: The first poll records the current position and returns no items, so activating the workflow never replays the database.
  • Testing: Running the node from the editor emits a single sample page so you can build the rest of the workflow; real pages arrive only while the workflow is activated.

Tips

The Notion Trigger monitors a Notion database for new or updated pages. This tool is ideal for initiating workflows when specific changes occur within a Notion database, unlike tools that perform direct modifications or data retrieval. It produces simplified or raw Notion page data, including all database properties, for any detected changes.

Notes

  • The Notion integration must be shared with the database you want to watch, or the API returns nothing.
  • Notion reports timestamps to the minute only, so the trigger keeps the IDs of pages at the boundary minute and filters them out on the next poll to avoid duplicates. Polling faster than once a minute does not increase resolution.

Frequently asked questions

Why is the trigger returning nothing at all?

The Notion integration must be shared with the database you want to watch. Without that share, the API returns nothing and the trigger looks broken while actually being denied access.

Can it miss or duplicate pages at the boundary?

Notion reports timestamps to the minute only, so the trigger keeps the IDs of pages at the boundary minute and filters them out on the next poll to avoid re-emitting them.

Can I watch for updates as well as new pages?

Yes — choose whether to watch for new pages or updated pages when configuring the trigger.

Which credential does it need?

A Notion API credential, and the integration behind it must have access to the database.

Build with Notion

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Notion API credentials first.

Open BusyBot

Last reviewed . Spotted something wrong? Tell us.