Skip to content

How to connect Notion

ChatbotIQ reads Notion through the Notion API using an integration you create in your own workspace. That matters for two reasons:

  • You decide exactly what is readable. A Notion integration sees only the pages and databases you explicitly share with it. Nothing else in the workspace is reachable, and the list of what you picked is enforced on the server as well.
  • Syncs stay cheap. Notion reports when each page was last edited, so a repeat sync only re-reads pages someone actually changed.

You need:

  • A Notion workspace in which you can create integrations. On paid plans that usually means workspace owner or a member with integration permissions; personal workspaces work as well.
  • Admin or owner role in your ChatbotIQ workspace.
  1. Go to Notion integrations and click New integration.
  2. Name it (for example ChatbotIQ), choose the workspace, and keep the type Internal.
  3. Under Capabilities, keep only Read content. Turn off Update content, Insert content and comments. Under user capabilities choose No user information.
  4. Save, then copy the Internal Integration Secret. It starts with ntn_.

Notion secrets do not expire. There is nothing to renew. If a secret ever leaks, press Refresh on the integration page to invalidate it, then reconnect in ChatbotIQ with the new one.

The integration can only read what you share with it. In Notion, open each top-level page or database you want indexed, click the … menu, choose Connections, and add your integration.

  • Sharing a page also shares every sub-page under it, at any depth.
  • Share only what your bot should answer from. If the bot is public, do not share HR, legal or other internal pages.
  1. In ChatbotIQ, open Knowledge Base and click Add source.
  2. Choose Notion.
  3. Paste the integration secret and click Connect.

ChatbotIQ verifies the secret immediately. If it is wrong, you will see an error here rather than an empty sync later.

Your secret is encrypted before it is stored, and no ChatbotIQ screen or API response ever shows it again. You will only see the last four characters.

Step 4: Choose pages and databases, then sync

Section titled “Step 4: Choose pages and databases, then sync”

After connecting, you will see the pages and databases shared with the integration.

  • Pick the top-level pages you want indexed. Their sub-pages come along automatically.
  • Pick databases explicitly. Databases are indexed row by row, and they are never included just because they sit inside a picked page. This keeps a 5,000-row table from being indexed by accident.
  • Use the search box for large workspaces. If you just shared something and it is not listed yet, wait a moment and click Refresh: Notion’s search index can lag behind sharing by a minute or so.

Give the source a name and click Start sync. The first sync reads every selected page; you can close the wizard and it continues in the background.

For each page ChatbotIQ stores the title, the content and its place in the workspace:

  • Pages and sub-pages at any depth, including pages nested inside toggles, columns and list items.
  • Database rows of the databases you picked. Each row becomes one page: its properties (status, dates, selects, numbers, links) followed by the row’s own content.
  • Images. Image blocks are downloaded during the sync and shown in answers when the bot has image responses enabled.
  • Page hierarchy as a breadcrumb (Workspace > Engineering > Runbooks > Deploy), which improves how well the bot matches questions to pages.
  • Real Notion links, so answers cite a clickable page.
  • Last edited time from Notion, not the sync time.

Headings, lists, to-dos, toggles, callouts, quotes, code blocks, tables, columns and synced blocks are preserved. Not indexed: file, PDF, video and audio attachments (only their name or caption), comments, pages that were not shared, and rows of databases you did not pick. A page that contains nothing but links to sub-pages is skipped; its sub-pages are indexed on their own.

Run a sync whenever you want to pick up changes, or leave it to the scheduled refresh your plan includes. Repeat syncs are cheap: ChatbotIQ compares each page’s last edited time and only re-reads pages that changed. A sync of an unchanged workspace uses no indexing credits.

Pages that are deleted, moved to the trash, unshared from the integration, or moved out of every selected page are removed from your bot’s answers on the next sync.

“Notion rejected the integration secret” The secret was refreshed or the integration was removed from the workspace. Copy the current secret from the integration page and reconnect.

“Notion denied access” Either the integration lacks the Read content capability, or the workspace is on Notion’s Free plan and over its block limit, which Notion also enforces on the API. Fix the capability in the integration settings, or upgrade the Notion workspace.

“That does not look like a Notion integration secret” Paste the secret from the integration page (it starts with ntn_), not a page URL or an API key from somewhere else.

A page is missing from the list It has not been shared with the integration. Share it in Notion, wait a moment, and click Refresh.

Rows of a database are missing Pick the database itself in the list. Rows are never indexed through a parent page.

A page shows up but has no content Pages that contain only links to other pages are skipped on purpose. The linked pages are indexed in their own right.