Skip to content

Ready to build with AnyBot?

AnyBot Docs

Notion

Connect Notion with one sign-in, then let your agent search, read, and write pages and databases, but only the pages you share with the integration.

Connect your Notion workspace with a single OAuth sign-in and your agent gains eight tools: four read tools to search, open, and read pages and databases, and four write tools to create pages, add content, update fields, and comment. The one rule to remember: the agent only ever sees the pages and databases you explicitly share with the integration during sign-in.

Connect

  1. Open Integrations and choose Notion.
  2. Complete the Notion sign-in. On Notion's own consent screen, select the pages and databases you want the agent to reach. This is the step that grants access.
  3. You're connected. There is no scope picker on the AnyBot side; page selection happens entirely on Notion's screen.

The enabling gotcha: Notion integrations are deny-by-default. Anything you didn't tick during sign-in is invisible to the agent. A search will simply return nothing for it. To add a page or database later, open it in Notion, use the ... menu → Connections → add AnyBot. Sharing a parent page shares its children too.

What the agent can do

ToolAccessTypeWhat it does
notion_searchPublic-safeReadSearches shared pages and databases by title and returns their ids for the other tools.
notion_get_pagePublic-safeReadReads a page's properties (title, fields) by id: metadata only, not the body.
notion_get_block_childrenPublic-safeReadReads a page's body content as a flat list of blocks with plain text; nested blocks can be read deeper.
notion_query_data_sourcePublic-safeReadQueries rows of a database with optional filter and sorts, by data source or database id.
notion_create_pageOwner-onlyWriteCreates a page under a parent page or as a database row, optionally with content.
notion_append_blocksOwner-onlyWriteAppends content blocks (paragraphs, headings, lists, to-dos, quotes, code) to a page.
notion_update_pageOwner-onlyWriteUpdates a page's title, properties, or archived state.
notion_create_commentOwner-onlyWriteAdds a comment to a page or replies to a discussion thread.

Public-safe vs owner-only

The four read tools are public-safe: an agent facing website visitors can answer from your Notion knowledge, and sensitive page bodies are redacted from the live tool stream. The four write tools are owner-only. A website visitor can never create, edit, or comment. Prefer to keep a public bot read-only? Flip the Read-only setting on the integration and the write tools disappear entirely.

Worked example

You keep a "Returns Policy" page in Notion and share it with the integration. A customer asks your support bot, "How long do I have to return an item?" The agent runs notion_search to find the page, notion_get_block_children to read it, and answers from the actual policy text (no copy-pasting), and the answer updates itself the moment you edit the page.

Limits & honesty

  • Deny-by-default access. Nothing is visible until you share it on the consent screen or via the ... → Connections menu.
  • Databases are schema-first. For notion_query_data_source, filter and sort property names must match the database exactly. Query once without a filter to discover the real names.
  • Content-only writes. Write tools edit page bodies and properties; they don't manage workspace members, permissions, or billing.

Troubleshooting

  • Search returns nothing: the page isn't shared. Add AnyBot via the page's ... → Connections.
  • "Connection is no longer valid": the OAuth token expired or was revoked in Notion. Reconnect from Integrations.
  • Agent won't write: the integration is in Read-only mode, or the tool is owner-only and a visitor is asking. Both are by design.

FAQ

Do I have to share every page individually? No, share a parent page and its sub-pages come with it.

Can a website visitor edit my Notion? Never. All four write tools are owner-only.

Where do new pages land? In the database or parent you name, or the Default Database / Parent Page you set on the integration.

Next