Notion Node
Read and write to Notion databases, pages, and blocks — build automation pipelines that connect Notion to the rest of your workflow.
Database
5 operations
database/get
database/getMany
database/search
database/query
database/createPage
Authentication
Internal Integration Token
Create an integration at notion.so/my-integrations. The token begins with secret_. Store it in the BizFirst Credentials Manager — never hard-code it in a workflow.
The integration must be explicitly shared with each database and page it accesses. Open the database or page in Notion, click the three-dot menu, choose Connections, and add your integration.
OAuth2
OAuth2 is supported for public integrations. Configure ClientId, ClientSecret, and AccessToken via the BizFirst Credentials Manager. The access token is scoped to the workspaces the user authorized during the OAuth2 flow.
Rate Limit: The Notion API enforces a limit of 3 requests per second per integration. In loop-based workflows that call the Notion node on every iteration, add a
Delay node set to 400 ms between iterations to avoid NOTION_RATE_LIMITED errors.
UUIDs everywhere: Notion identifies all objects — databases, pages, blocks, users — with UUIDs in the format
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Store these IDs in workflow variables rather than hard-coding them. Copy IDs from the Notion URL or from API response fields.
Supported Operations
| Operation | Resource | Description |
|---|---|---|
| database/get | Database | Retrieve a database schema including all property definitions. |
| database/getMany | Database | List all databases the integration can access, with pagination. |
| database/search | Database | Search databases by title keyword. |
| database/query | Database | Query pages in a database with optional filters and sorts. |
| database/createPage | Database | Create a new row/page in a database with property values. |
| page/create | Page | Create a standalone page as a child of another page. |
| page/get | Page | Retrieve a page's properties and metadata by UUID. |
| page/update | Page | Update specific property values on an existing page. |
| page/archive | Page | Archive (soft-delete) a page. |
| block/getChildren | Block | Retrieve direct child blocks of a page or block. |
| block/appendChildren | Block | Append new blocks to a page or existing block. |
| user/get | User | Retrieve a workspace user by UUID. |
| user/getMany | User | List all workspace users with pagination. |
| trigger/pageAdded | Trigger | Fire when a new page is added to a database (polling). |
| trigger/pageUpdated | Trigger | Fire when a page in a database is updated (polling). |
| trigger/webhook | Trigger | Accept inbound webhook calls to start the workflow. |
Error Reference
| Error Code | Description |
|---|---|
NOTION_UNAUTHORIZED | Invalid API token or the integration is not connected to the workspace. |
NOTION_PERMISSION_DENIED | The integration has not been shared with the target database or page. |
NOTION_NOT_FOUND | The specified page, database, or block UUID does not exist. |
NOTION_RATE_LIMITED | More than 3 requests per second have been sent. Add delays in loop workflows. |
NOTION_INVALID_REQUEST | The request body is malformed. Check property types and block structure. |
NOTION_INVALID_CONFIG | Required node configuration fields are missing or invalid. |
NOTION_CONFLICT | Property type mismatch or a constraint violation in the database schema. |
NOTION_VALIDATION_FAILED | Input validation failed before the request was sent. |