Prerequisites
- A Notion account (free plan is sufficient)
- A Notion workspace (every account has one by default)
Creating a Connection
- Workflow Builder
- Agent Builder
- In the workflow, add a Notion toolkit step.
- Click Connect with Notion.
- Authorize the connection on the Notion consent screen and select which pages and databases to grant access to.
The toolkit can only access pages and databases that have been explicitly shared with the connection. To share content, open the page or database in Notion, click ··· → Connections, and add your integration. Content in the same workspace that has not been shared is not visible.
Available Tools
Search
Searches across all shared pages and databases, returning matches by title. Key inputs:
Referencing results in downstream steps:
- First result’s ID:
{{ step.output.results[0].id }}
count is greater than 0, the client already exists — use the existing record’s id instead of creating a duplicate.
Database Actions
List Databases
Returns all databases the connection can access, with their names and IDs. Key inputs:
When to use it: Run this once in a test workflow to discover your database IDs. Copy the
id of the database you want and hard-code it in subsequent steps.
Get Database
Returns the schema of a specific database — its column names and property types. Key inputs:
When to use it: Run this before writing Create Page or Update Page steps. It tells you the exact property names (case-sensitive) and their types, which determines the JSON format to use in the
Properties field.
Get Database shows property types and names but not the available option values for Select fields. To see valid select options, open the database in Notion directly.
Query Database
Fetches records from a database with optional filtering and sorting. Key inputs:
Filter examples:
Single filter — records where Status equals “In Progress”:
- First result’s ID:
{{ step.output.results[0].id }} - First result’s Status:
{{ step.output.results[0].properties.Status }} - First result’s title:
{{ step.output.results[0].title }}
Page Actions
Get Page
Retrieves the property values and metadata of a specific page or database record. Key inputs:
Referencing values in downstream steps:
- Status:
{{ step.output.page.properties.Status }} - Title:
{{ step.output.page.title }} - Page ID:
{{ step.output.page.id }}
Create Page
Creates a new page — either as a record inside a database (new row) or as a child page under another page. Key inputs:
Properties format by field type:
Follow up with client
Properties:
id can be passed to downstream steps to update or link to the new page.
Update Page
Updates the properties of an existing page, or archives it. Key inputs:
Example — marking a task as done:
true. The record disappears from the database view but can be restored from Notion’s trash.
Typical pattern:
- Use Query Database to find the record and get its
id - Feed that
idinto Update Page to change its fields
Content Actions
Get Page Content
Retrieves the content blocks inside a Notion page — paragraphs, headings, bullet lists, etc. This is separate from the page’s properties (database fields). Use this to read the body text of a document. Key inputs:
Referencing values in downstream steps:
- First block’s text:
{{ step.output.blocks[0].text }} - All blocks:
{{ step.output.blocks }}
Append Content
Adds new content blocks to the bottom of an existing Notion page. Key inputs:
Example — appending a heading and a paragraph: