Notion

Create and update Notion pages, query databases, and append content blocks — all via the Notion REST API. No OAuth flow required; uses an Internal Integration Token.

Setup

  1. Create an integration at notion.so/my-integrations.
  2. Copy the Internal Integration Token (starts with ntn_ or secret_).
  3. Share the target database or pages with your integration (open the database in Notion → Connections → add your integration).
  4. Add the token as an environment variable on the Env Vars page:

| Variable | Description | |----------|-------------| | NOTION_TOKEN | Notion Internal Integration Token |

Notion uses Internal Integration Tokens — no OAuth redirect flow is needed. You must explicitly share each database or page with the integration before the API can access it.

Operations

Each node run executes a single operation.

create_page

Create a new page in a database.

| Field | Type | Required | Description | |-------|------|----------|-------------| | operation | enum | Yes | create_page | | database_id | string | Yes | Notion database ID. | | properties | JSON object | Yes | Page properties in Notion API format. | | children | JSON array | No | Block children to add to the page body. |

update_page

Update properties on an existing page.

| Field | Type | Required | Description | |-------|------|----------|-------------| | operation | enum | Yes | update_page | | page_id | string | Yes | Notion page ID. | | properties | JSON object | Yes | Properties to update in Notion API format. |

query_database

Query a database with an optional filter.

| Field | Type | Required | Description | |-------|------|----------|-------------| | operation | enum | Yes | query_database | | database_id | string | Yes | Notion database ID. | | filter | JSON object | No | Query filter in Notion filter format. |

append_blocks

Append content blocks to an existing page.

| Field | Type | Required | Description | |-------|------|----------|-------------| | operation | enum | Yes | append_blocks | | page_id | string | Yes | Notion page ID. | | children | JSON array | Yes | Block objects to append in Notion API format. |

As an AI Agent Tool

Connect a Notion node to an AI Agent Tools handle to let the agent create tasks, update records, or query your Notion workspace.

Use Allowed Operations (Agent) to restrict which Notion actions the agent can perform — for example, allow query_database and create_page but not update_page. This setting is excluded from the tool schema.

When used as a tool, the agent supplies operation and the relevant fields (database_id, page_id, properties, filter, children) as tool arguments.

Output

All operations emit a result object on the result handle, accessible downstream as {{ notion.* }}:

| Field | Type | Description | |-------|------|-------------| | success | boolean | Whether the operation succeeded | | id | string | Created or updated page/block ID | | url | string | URL to the Notion page when applicable | | results | array | Query results (for query_database) | | error | string | Error message if success is false |

{
  "success": true,
  "id": "abc123-def456",
  "url": "https://www.notion.so/abc123def456",
  "results": [],
  "error": null
}
On this page