Resources · n8n integration

Notion n8n integrationAutomate Notion with n8n.

What does the Notion n8n integration give you? The Notion node exposes 14 operations across 5 resources: pages, database pages, databases, blocks and users. The Notion Trigger watches one database and fires on 2 events, a page added or updated. Enough to make Notion the front end of a process.

Verified Trustpilot reviews · AI, automation & growth agency

Why automate

What can the Notion n8n integration do?

The Notion n8n integration is two nodes. The Notion node runs 14 operations across 5 resources, page, database page, database, block and user, so a workflow can create a row, read it back, update its properties, append content to a page or list the people in the workspace. The Notion Trigger watches a single database and starts the workflow on 2 events, a page added to that database or a page updated in it.

Start with the direction that fills the database. Something arrives, a form answer or an inbound message, and databasePage.create writes the row: Title for the name, Properties for the owner, the status and the date, Blocks for the content nobody wants to retype. Wire it behind Gmail and the inbox stops being the place where requests get lost.

The second direction runs outward. The Notion Trigger fires on pagedUpdatedInDatabase, databasePage.get reads the row back, and the workflow announces the change where people actually look, a Slack channel for example. Nobody has to keep a board open to notice a card moved.

Third, the recap. databasePage.getAll with Return All switched on and a condition built from Property Name or ID and Condition pulls the rows that matter into Google Sheets every Monday, or into a fresh page written by page.create. Teams that keep tickets in Jira and context in Notion usually run this one in both directions.

The node stops short in two documented places, and the same escape hatch covers both. An HTTP Request node reaches any Notion API endpoint, reusing the credential you already created through predefined authentication. Relation properties only show up in n8n when the relation is two-way: edit the property in Notion and switch on Show on for the related database, otherwise the Database Page resource cannot select or filter on it. For a one-way relation, send a PATCH to the Notion pages endpoint with the relation in a JSON body. Toggleable headings are the other gap: the node creates Heading 1, Heading 2 and Heading 3 blocks, then an HTTP Request sets is_toggleable on the block it just made.

Two more limits are worth knowing before you build. Empty or null values raise a validation error, so a field coming from an earlier node that might be missing has to be checked with an If node, or stripped out with Edit Fields (Set), before it reaches Notion. And the integration only reaches what has been shared with it, page by page, from the Connections menu. If the platform itself is still an open question, the n8n review covers that ground.

Connect

How do you connect Notion to n8n?

  1. 01

    Create the integration in Notion

    You need a Notion account with admin level access. Open the integration dashboard, select + New integration, name it n8n integration, then open the Capabilities tab and tick Read content, Update content, Insert content and User information without email addresses. Save changes before you leave the tab. Those four are the capabilities the n8n credential documentation lists for Notion.

  2. 02

    Store the secret in an n8n credential

    Copy the Internal Integration Token from the Secrets tab into the n8n field named Internal Integration Secret. That covers a single workspace. For unrelated workspaces, turn on public distribution, register the n8n OAuth Redirect URL as a Redirect URI, then copy the Client ID and Client Secret.

  3. 03

    Share the pages, then add the node

    Nothing runs until the integration is invited in. On each page or database you want to automate, open the triple dot menu, go to Connections, choose Connect to and pick your integration. As long as nothing is shared, every request comes back as an error. Then add the Notion node, or the Notion Trigger if Notion starts the workflow, and point its Database field at what you shared.

Triggers

What the Notion Trigger reacts to

Notion Trigger is the node that starts a workflow when something happens in Notion. It listens to 2 events, listed below by family. Pick one or several, activate the workflow: n8n registers the webhook on your Notion account.

What you see in n8n

Every event, by family

One row per object, one chip per action. The event to tick in the node is object.action; hover a chip to read exactly when it fires.

page.*1
    paged.*1

      Configuration notes

      01Notion Trigger setupThe setup is short. You pick the Event, you point the trigger at one database, and that is it. How it listens matters more: the Notion Trigger polls, meaning n8n calls the Notion API on a schedule and asks what is new, rather than Notion pushing anything to n8n. Each pass sends out one item per new page found, and nothing gets registered on the Notion side.

      The setup is short. You pick the Event, you point the trigger at one database, and that is it. How it listens matters more: the Notion Trigger polls, meaning n8n calls the Notion API on a schedule and asks what is new, rather than Notion pushing anything to n8n. Each pass sends out one item per new page found, and nothing gets registered on the Notion side.

      Key parameters

      • Event: 2 values to choose from, pageAddedToDatabase and pagedUpdatedInDatabase. No wildcard value stands for every Notion event.
      • Poll Times: the gap between two checks, once a minute at the fastest. The delay before a workflow starts equals that interval.
      • Database: required, the Notion Database to operate on. The trigger stays scoped to it and blind to the rest of the workspace, and an empty value stops the node before it runs.
      • Simplify: returns a simplified version of the response instead of the raw data. Leave it off while you build, so you see which fields actually arrive from the page.
      When to use it
      whenever Notion is where work gets declared and the rest of the stack has to find out.
      02Page Added to DatabaseA new row lands in the watched database and the workflow starts, carrying that page. This is the event that turns a Notion database into an intake point: someone adds a line to a request board, a backlog or a content calendar, and the automation takes it from there.

      A new row lands in the watched database and the workflow starts, carrying that page. This is the event that turns a Notion database into an intake point: someone adds a line to a request board, a backlog or a content calendar, and the automation takes it from there.

      Key parameters

      • Database: the database whose new pages you want. A page created somewhere else, a child page under a regular page for instance, never fires this event.
      Use cases
      open the matching ticket in another tool, ping the owner, or enrich the row with databasePage.update on the trigger's next pass. The event value is pageAddedToDatabase, one of the 2 the trigger offers, and it is selected in the node rather than typed.
      03Page Updated in DatabaseEdits are the other half of the story. When a row in the watched database changes, the workflow runs again, which is what you want for status moves, owner changes and anything a human types into a property.

      Edits are the other half of the story. When a row in the watched database changes, the workflow runs again, which is what you want for status moves, owner changes and anything a human types into a property.

      Key parameters

      • Database: the same field as the other event, pointed at the database whose updates matter to you.
      • Simplify: keeps the incoming item readable when the workflow only needs a couple of properties out of a wide row.
      When to use it
      for hand-off moments. A card moves to review, a date gets filled in, a checkbox is ticked, and something has to happen outside Notion. The event value is pagedUpdatedInDatabase, spelled exactly like that in the node, so copy it rather than typing it from memory.
      Actions

      What the Notion node does, operation by operation

      The Notion node exposes 14 operations across 5 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.

      Resources × operations matrix
      ResourceCreateGetGet Child BlocksUpdateAppend AfterArchiveSearch
      Block✓✓
      Database✓✓✓
      Database Page✓✓✓✓
      Page✓✓✓
      User✓✓

      Block

      2 operations
      01

      Append a block

      block.append

      What you see in n8n

      Notes & use cases

      New content goes at the end of a page or block that already exists, which is how a workflow adds to something instead of creating another page next to it.

      Key parameters

      • Block: required. The Notion Block to append blocks to. Point it at whatever an earlier node returned, for example {{ $json.id }}, the expression syntax n8n uses to read a field from the incoming item.
      • Blocks: the content itself, added entry by entry with Add Block. Each entry carries its own type and its own text.
      Use cases
      drop a transcript under a meeting page once the recording is processed, or push a checklist onto a task page the moment it moves into review.
      02

      Get many child blocks

      block.getAll

      What you see in n8n

      Notes & use cases

      The body of a Notion page lives in its child blocks, and this is the operation that reads them back into the workflow.

      Key parameters

      • Block: required. The Notion Block to get all children from, usually the page itself.
      • Return All: on, n8n chains the API pages until the whole page is read. Off, it stops at Limit, the maximum number of blocks it brings back.
      • Also Fetch Nested Blocks: switch it on when the content you need sits under a toggle or inside a nested list rather than at the top level.
      Use cases
      feed a page's text to a summarizer, or read a template page before rebuilding its structure somewhere else.

      Database

      3 operations
      03

      Get a database

      database.get

      What you see in n8n

      Notes & use cases

      Fetches a single database from the identifier you hand it and passes the response to the next node.

      Key parameters

      • Database: required. The Notion Database to get.
      • Simplify: returns a simplified version of the response instead of the raw data, which is plenty for a branching decision.
      Use cases
      confirm a database is still reachable before a workflow writes into it, or resolve its identifier once at the start of a run and reuse it in every node that follows.
      04

      Get many databases

      database.getAll

      What you see in n8n

      Notes & use cases

      There is no identifier to supply here. n8n asks Notion for databases and returns the ones the integration has been given access to.

      Key parameters

      • Return All: without it, the run stops at Limit, the maximum number of databases returned.
      • Simplify: trims each database down to a simplified version of the response.
      Use cases
      audit what a freshly created integration actually reaches once the sharing step is done, or build the list a later node will pick from.

      Database Page

      4 operations
      06

      Create a database page

      databasePage.create

      What you see in n8n

      Notes & use cases

      Creates a row in a Notion database, properties set and body written in the same call.

      Key parameters

      • Database: required. The Notion Database to operate on.
      • Title: the page title. It shows at the top of the page and is what Quick Find matches on.
      • Properties: added one at a time with Add Property. Each entry pairs a Key Name or ID with the value field for its type: Number, Date, Status Name or ID, User Names or IDs or Checked.
      • Blocks: the body content, added with Add Block.
      Use cases
      turn a request into a row that already has an owner, a status and a due date.
      07

      Get a database page

      databasePage.get

      What you see in n8n

      Notes & use cases

      Pulls one row back with its current values, which starts to matter as soon as more than one workflow writes into the same database.

      Key parameters

      • Database Page: required. The Notion Database Page to get.
      • Simplify: a simplified version of the response instead of the raw data.
      Use cases
      re-read a row after the trigger fires, so the workflow decides on what the page says right now and not on a copy taken a few steps earlier.
      08

      Get many database pages

      databasePage.getAll

      What you see in n8n

      Notes & use cases

      Every report starts here: the operation queries one database and returns the rows that match.

      Key parameters

      • Database: required. The Notion Database to operate on.
      • Filter: None, Build Manually or JSON. A manual condition, added with Add Condition, pairs a Property Name or ID with a Condition (Equals, Contains, Starts With, Is Empty), while Must Match settles between Any filter and All Filters.
      • Return All: on for an export, off to cap the rows at Limit.
      • Download Files: under Options, fetches a file held in one of the row's fields.
      Use cases
      a Monday export of everything still open. Filtering on a relation only works when that relation is two-way.
      09

      Update a database page

      databasePage.update

      What you see in n8n

      Notes & use cases

      Targets one existing row and writes the properties you list, which is the write-back half of most Notion workflows.

      Key parameters

      • Database Page: required. The Notion Database Page to update.
      • Properties: each entry names a Key Name or ID and carries the matching value, from Status Name or ID to Date Start and Date End when the property holds a range.
      • Ignore If Empty: skips a property whose incoming value is empty, the cleanest way around the validation error Notion returns on null or empty values.
      Use cases
      move a row to done once a job finishes, stamp the owner a routing step picked, or write a score back next to the record it came from.

      Page

      3 operations
      10

      Archive a page

      page.archive

      What you see in n8n

      Notes & use cases

      Archiving is as close as this node gets to a delete, since none of the 5 resources exposes one.

      Key parameters

      • Page: required. The Notion Page to archive.
      • Simplify: keeps the confirmation short.
      Use cases
      clear out the pages a test run left behind, or archive a project page automatically once its last task closes, so the workspace only shows live work.
      11

      Create a page

      page.create

      What you see in n8n

      Notes & use cases

      Standalone pages, the ones that live under another page rather than as a row in a database, come from this operation.

      Key parameters

      • Parent Page: required. The page the new one is created under.
      • Title: required as well. It appears at the top of the page and is findable through Quick Find. Leave either field empty and the node stops before it calls Notion.
      • Blocks: each Add Block entry sets a Type Name or ID, Heading 1 to Heading 3 for structure, plus its Text, or Checked for a to-do.
      Use cases
      one meeting note page per calendar event, or a written recap generated at the end of a weekly run.

      User

      2 operations
      13

      Get a user

      user.get

      What you see in n8n

      Notes & use cases

      This operation returns one workspace member, looked up by identifier. It is the shortest form in the whole node.

      Key parameters

      • User ID: required, and the only field on this operation. A plain text value, so it usually arrives from a row read a step earlier.
      Use cases
      turn the user identifier sitting in a row into something readable before a message goes out. User information without email addresses is one of the capabilities ticked when the integration was created.
      14

      Get many users

      user.getAll

      What you see in n8n

      Notes & use cases

      Returns the workspace members in one call. No Simplify switch on this one, just the pagination pair to set.

      Key parameters

      • Return All: on for the full list, off to stop at Limit.
      • Limit: the maximum number of users returned.
      Use cases
      build a name to identifier table once a day and cache it, so later workflows fill a people property without a lookup on every row.
      Need help

      Need help automating Notion with n8n?

      A person reads every message.

      FAQ

      Frequently asked questions

      01Is the Notion n8n integration free?
      Yes. The Notion node and the Notion Trigger ship with n8n, so there is nothing to install and no extra cost on the n8n side, whether you run n8n Cloud or a self-hosted instance under the Community Edition and its Sustainable Use license. A workflow behaves the same in both. Creating the Notion integration that issues your token costs nothing either: you open the integration dashboard, create the integration, tick the capabilities and copy the secret. What Notion itself charges for its own plans is a separate question that this page does not cover.
      02What credentials does the Notion node need in n8n?
      Two methods, and both start with a Notion account that has admin level access. The API integration token route suits internal integrations: create the integration, open the Secrets tab, and paste the Internal Integration Token into the n8n field named Internal Integration Secret. The OAuth2 route suits public integrations meant for unrelated workspaces, and needs a Client ID, a Client Secret, and the n8n OAuth Redirect URL registered as a Redirect URI. Either way, tick Read content, Update content, Insert content and User information without email addresses in the Capabilities tab. You create the credential once in the Credentials menu and every Notion node offers it afterwards.
      03What are the limits of the Notion node in n8n?
      Three of them are worth planning for. The node covers 14 operations on 5 resources and none of them deletes, so Archive a page is the closest equivalent. Relation properties only appear, and only become filterable, when the relation is two-way, which you enable in Notion by switching on Show on for the related database. Empty or null values raise a validation error, so check that a field exists before it reaches Notion, or give it a default. For all three, and for the toggleable headings the node does not create, an HTTP Request node reaches any Notion API endpoint while reusing the same credential through predefined authentication.
      04Does the Notion Trigger work in real time?
      No, not in the strict sense. The Notion Trigger polls: n8n calls the Notion API at the interval set in Poll Times, once a minute at the fastest, and sends out one item per new page it finds. Nothing gets registered on the Notion side, no URL to declare, and the delay before a workflow starts is the interval you picked. The scope is narrow too: the trigger listens to 2 events, a page added to a database and a page updated in a database, on the single database selected in its Database field. A page edited outside a database, a block appended, a new database created, none of that reaches it. For those, pair a Schedule Trigger with Get many database pages or one of the two search operations.
      05n8n or Make for Notion?
      It depends on four things, and none of them is Notion itself. Hosting first: n8n runs on your own server or on n8n Cloud, while Make is hosted only. Data control follows from that, and matters when the pages you automate hold anything sensitive. Cost model next: Make bills per operation, so a workflow that loops over a whole database is priced differently there. Visual logic last, because the two editors read differently and the team that maintains the workflows has an opinion worth listening to. The n8n review linked earlier on this page goes through the comparison properly.