Notion

View as Markdown

What it indexes

The Notion connector indexes pages shared with the integration, including page properties and supported block content. It also discovers database hierarchy, queries database data sources, and indexes their pages. Supported content includes nested child pages, rich-text blocks, tables, and people properties.

Root Page IDIndexing effect
EmptySearches for pages available to the integration and discovers accessible database data sources.
SetIndexes that page and recursively traverses its child pages and databases. The page must be shared with the integration.

The connector uses recursive traversal when a root page is supplied. Without a root page, deployment configuration can also enable recursive lookup to compensate for pages that Notion search does not return.

Prerequisites

  • Create a Notion internal integration in the workspace that owns the content.
  • Share each approved top-level page or workspace area with the integration. An integration token cannot discover content that was not shared with it.
  • Copy the integration token and, when narrowing the connector, the root page ID.
  • An OpenCore Admin must decide whether all integration-accessible pages or only one approved subtree should be indexed.
  • Allow outbound HTTPS access to api.notion.com from the connector workers.

Credentials

MethodOpenCore credential valuesNotes
Internal integration tokennotion_integration_token: <NOTION_INTEGRATION_TOKEN>The token is sent in the Notion API authorization header. Store it only in the OpenCore credential store.

OAuth is not implemented for the Notion indexing connector. Notion OAuth used by other application features does not create this connector credential.

Configure in OpenCore

  1. In Notion, share the approved source page or pages with the internal integration.
  2. In the OpenCore Admin panel, open Connectors, choose Notion, and create the integration-token credential.
  3. Leave Root Page ID empty to index all pages the integration can discover, or enter one approved page ID to index that page and its descendants.
  4. Choose Private and assign OpenCore user groups for restricted content, or Public only when every account may search it.
  5. Set refresh and pruning options, create the connector, and run the initial index attempt.
  6. Attach the resulting document set to an Agent only after reviewing the indexed page scope.

Permissions

The Notion connector does not support source-permission sync. It uses the integration’s access to decide what can be ingested, but it does not copy each Notion page’s viewer list into OpenCore.

This means every OpenCore user who can access the connector or its document set can search all indexed Notion content, even if that user could not open every source page in Notion. Use separate integrations/connectors for different source boundaries and use OpenCore Private access with explicit user groups. Do not use Public for mixed-sensitivity Notion content.

Verify

  1. Confirm credential validation can search one page, or fetch the configured root page directly.
  2. Run an index attempt and search for text from the root page and a nested child page.
  3. Verify a database row, table cell, or people property is searchable when that content exists.
  4. Confirm an unshared page or a page outside the configured root subtree is absent.
  5. Test access with every OpenCore user group assigned to the connector because Notion source ACLs are not synchronized.

Troubleshooting

SymptomCheck
HTTP 401 during validationReplace the invalid or expired integration token.
HTTP 403 during validationGrant the integration sufficient access to the selected Notion content.
HTTP 404 for a root pageVerify the page ID and share that page with the integration.
Pages are missing with no root configuredShare the pages with the integration; consider an approved root page so recursive traversal defines the scope.
A user can search a page they cannot open in NotionThis is expected without source-permission sync; split connectors and restrict them with OpenCore user groups.