Notion
Connect agents to a Notion workspace: search pages and databases (optionally federating across Notion AI's connected sources), read page content, run database queries, and create or update pages and records.
Every tool type on this page requires a Notion connector — an OAuth connection to the workspace the agent should work in, scoped to the pages and databases shared with the integration. The tool config points at the connector with connectorId, and Autessa refreshes the OAuth token automatically. See Connectors for how to link a workspace.
Successful results arrive under a data key and generally contain Notion's native API objects (pages, databases, blocks), so agents can read titles, properties, and content exactly as Notion returns them. Fields ending in Json (propertiesJson, childrenJson, filterJson, sortsJson) are JSON-encoded strings passed through to the Notion API verbatim — full expressive power for agents that know Notion's schema, with convenience fields like title, plainText, and Submit Form's flat fields map covering the common cases without any raw JSON.
Search TOOLNOTION_SEARCH
Searches the workspace by keyword. With includeConnectedSources true, the search runs through Notion AI's federated search, which can also surface results from sources connected to Notion such as Slack, Google Drive, and Jira — and falls back automatically to a plain workspace search when Notion AI is not enabled on the workspace. Otherwise (and on fallback) it is a standard Notion search over pages and databases, where filter narrows results to "page" or "database". Results come back under data in Notion's native search-result shape.
Example
{
"toolType": "NOTION_SEARCH",
"connectorId": "V1StGXR8Z5",
"query": "@@{searchTerms}",
"filter": "page",
"includeConnectedSources": false
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
query- Type
- string
- Description
- Required string value.
- Name
filter- Type
- string · optional
- Description
- Optional: "page", "database", or null for both. Honored on REST fallback only.
- Name
includeConnectedSources- Type
- boolean
- Description
- When true, prefer Notion AI's federated search (Slack/Drive/Jira) via MCP. Falls back automatically to workspace REST search if Notion AI isn't enabled.
Recent Updates TOOLNOTION_RECENT_UPDATES
Returns pages and databases edited within the last days days, newest first — the tool for "what changed in the workspace this week" briefings. days defaults to 7 and is capped at 90, and filter restricts results to "page" or "database". The result's data carries the resolved days and cutoffIso, a count, and the matching items in results.
Example
{
"toolType": "NOTION_RECENT_UPDATES",
"connectorId": "V1StGXR8Z5",
"days": 7,
"filter": "page"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
days- Type
- integer
- Description
- Default 7 if unset. Capped at 90 to keep paging bounded.
- Name
filter- Type
- string · optional
- Description
- Optional: "page", "database", or null for both.
Fetch Page TOOLNOTION_FETCH_PAGE
Fetches one page in full: the result's data contains the page object (metadata and properties) and, unless includeBlocks is false, a blocks array with the page's content as raw Notion block objects, assembled by following pagination up to roughly 2,000 blocks. Use it after Search or Discover Pages when the agent needs to actually read a page rather than just know it exists.
Example
{
"toolType": "NOTION_FETCH_PAGE",
"connectorId": "V1StGXR8Z5",
"pageId": "@@{pageId}",
"includeBlocks": true
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
pageId- Type
- string
- Description
- Required string value.
- Name
includeBlocks- Type
- boolean
- Description
- When true (default), follow paginated /blocks/{id}/children to assemble the full block tree.
Query Database TOOLNOTION_QUERY_DATABASE
Runs a query against one database with Notion's full filter and sort syntax: filterJson and sortsJson are JSON-encoded Notion filter and sorts payloads passed through unchanged, so anything expressible in the Notion API works here. Returns a single page of up to pageSize rows (capped at 100) in Notion's native query-result shape under data, including has_more and next_cursor when more rows exist.
Example
{
"toolType": "NOTION_QUERY_DATABASE",
"connectorId": "V1StGXR8Z5",
"databaseId": "@@{databaseId}",
"filterJson": "{\"property\": \"Status\", \"select\": {\"equals\": \"Open\"}}",
"sortsJson": "[{\"timestamp\": \"last_edited_time\", \"direction\": \"descending\"}]",
"pageSize": 50
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
databaseId- Type
- string
- Description
- Required string value.
- Name
filterJson- Type
- string
- Description
- JSON-encoded Notion filter object (passthrough).
- Name
sortsJson- Type
- string
- Description
- JSON-encoded sorts array (passthrough).
- Name
pageSize- Type
- integer
- Description
- JSON-encoded sorts array (passthrough).
Query Data Sources TOOLNOTION_QUERY_DATA_SOURCES
Asks Notion AI to answer a question across the workspace's connected data sources, optionally grouping results with groupBy. This capability runs exclusively through Notion's hosted AI tooling: it requires a workspace plan with Notion AI connected search (Enterprise), and on workspaces without it the tool fails with CAPABILITY_UNAVAILABLE rather than falling back. For plain workspace search, use the Search tool instead.
Example
{
"toolType": "NOTION_QUERY_DATA_SOURCES",
"connectorId": "V1StGXR8Z5",
"query": "@@{question}",
"groupBy": "source"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
query- Type
- string
- Description
- Required string value.
- Name
groupBy- Type
- string
- Description
- Required string value.
Discover Pages TOOLNOTION_DISCOVER_PAGES
Enumerates the pages the connector can see — up to 100 per call — optionally narrowed by a query substring. Where Search is a question-driven lookup, Discover Pages is an inventory pass: agents use it to learn what exists in the workspace and collect page IDs before fetching, updating, or appending to specific pages.
Example
{
"toolType": "NOTION_DISCOVER_PAGES",
"connectorId": "V1StGXR8Z5",
"query": "meeting notes"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
query- Type
- string · optional
- Description
- Optional substring to narrow the page list.
Discover Databases TOOLNOTION_DISCOVER_DATABASES
The database counterpart to Discover Pages: lists the databases shared with the connector (up to 100 per call), optionally narrowed by query. The returned database objects include their property schemas, which is exactly what an agent needs before building a Query Database filter or a Submit Form call.
Example
{
"toolType": "NOTION_DISCOVER_DATABASES",
"connectorId": "V1StGXR8Z5",
"query": "@@{databaseName}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
query- Type
- string
- Description
- Required string value.
Create Page TOOLNOTION_CREATE_PAGE
Creates a page under an existing parent: set parentType to "page_id" for a subpage or "database_id" for a new database row. title is a convenience that fills the title property directly (for database parents it lands in the Name/Title property when one exists); propertiesJson carries a raw Notion properties object for database rows with more fields, and childrenJson seeds the page with raw Notion content blocks. The created page object comes back under data, including its new page ID.
Example
{
"toolType": "NOTION_CREATE_PAGE",
"connectorId": "V1StGXR8Z5",
"parentId": "@@{parentPageId}",
"parentType": "page_id",
"title": "@@{pageTitle}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
parentId- Type
- string
- Description
- Parent page or database ID.
- Name
parentType- Type
- string
- Description
- "page_id" or "database_id".
- Name
title- Type
- string
- Description
- Convenience for the page title; written into the title property.
- Name
propertiesJson- Type
- string · optional
- Description
- Optional raw Notion properties object (JSON-encoded). Used when the parent is a database.
- Name
childrenJson- Type
- string · optional
- Description
- Optional raw Notion children blocks array (JSON-encoded).
Update Page TOOLNOTION_UPDATE_PAGE
Updates a page's properties and archived state. propertiesJson is a raw Notion properties object applied as-is — only the properties it names are changed — and archived moves the page to trash when true or restores it when false. This tool does not touch page content blocks; use Append Blocks to add content. The updated page object comes back under data.
Example
{
"toolType": "NOTION_UPDATE_PAGE",
"connectorId": "V1StGXR8Z5",
"pageId": "@@{pageId}",
"propertiesJson": "{\"Status\": {\"select\": {\"name\": \"Done\"}}}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
pageId- Type
- string
- Description
- Required string value.
- Name
propertiesJson- Type
- string
- Description
- JSON-encoded Notion properties object (passthrough).
- Name
archived- Type
- boolean
- Description
- JSON-encoded Notion properties object (passthrough).
Append Blocks TOOLNOTION_APPEND_BLOCKS
Appends content to the end of a page or block. Provide either childrenJson — a raw Notion blocks array, for full control over headings, lists, callouts, and other block types — or plainText, a convenience where each line becomes a paragraph block. One of the two is required, and childrenJson wins when both are set. parentBlockId accepts a page ID or any block ID that can hold children.
Example
{
"toolType": "NOTION_APPEND_BLOCKS",
"connectorId": "V1StGXR8Z5",
"parentBlockId": "@@{pageId}",
"plainText": "@@{summaryText}"
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
parentBlockId- Type
- string
- Description
- Required string value.
- Name
childrenJson- Type
- string
- Description
- JSON-encoded Notion children blocks array. Either this OR plainText must be set.
- Name
plainText- Type
- string
- Description
- Convenience: a plain string is split into paragraph blocks.
Submit Form TOOLNOTION_SUBMIT_FORM
Adds a row to a database from a flat map of property names to string values — no Notion property JSON required. The executor reads the database's live schema and converts each value to the property's actual type: title, rich text, number, select, multi-select (comma-separated values), checkbox, date, email, phone, and URL are all handled, and field names that no longer exist in the schema are skipped rather than failing the submission. This makes it the robust choice for intake-style workflows where users may rename or rearrange database columns. The created page object comes back under data.
Example
{
"toolType": "NOTION_SUBMIT_FORM",
"connectorId": "V1StGXR8Z5",
"databaseId": "@@{databaseId}",
"fields": {
"Name": "@@{customerName}",
"Email": "@@{customerEmail}",
"Status": "New",
"Tags": "inbound,website"
}
}
connectorId in the tool configuration.Configuration fields
- Name
connectorId- Type
- string (ID)
- Description
- Required string (ID) value. References a connector by ID.
- Name
databaseId- Type
- string
- Description
- Required string value.
- Name
fields- Type
- object
- Description
- Flat field map: {propertyName: stringValue}. The executor reads the live database schema to resolve each value to the appropriate property type (title / rich_text / number / select / multi_select / date / etc.).