Skip to main content
The Notion connector indexes pages and databases from your Notion workspace. Deeply nested pages, database entries, and wiki content all become searchable through Hadiq.io, regardless of where they live in the Notion hierarchy.

What gets indexed

  • Pages: full text content from all blocks, including nested content inside toggles, callouts, and other containers
  • Databases: property values for each row (title, text fields, select values, people, dates, and other structured properties)
  • Wikis: pages organized as wiki sections
  • Child pages: pages nested inside other pages (with recursive indexing enabled)
  • Table content: table row data is extracted and indexed as text
The connector tracks the workspace and database hierarchy so search results show where each page lives in Notion.
AI blocks and unsupported block types are skipped — Notion’s API does not provide access to their contents.

Prerequisites

You need a Notion integration token. To create one:
  1. Go to notion.so/my-integrations and click New integration.
  2. Give the integration a name and select the workspace you want to connect.
  3. Set Capabilities to at least Read content.
  4. Click Submit and copy the Internal Integration Token.
After creating the integration, you must share the pages you want indexed with the integration. Open a page in Notion, click > Connect to and select your integration. Sharing a parent page grants access to all child pages.
Share a top-level page or your workspace root with the integration to grant access to your entire workspace at once.

Connect Notion

1

Go to Admin > Connectors

Navigate to Admin Panel > Connectors and select Notion.
2

Enter your integration token

Paste your Notion internal integration token into the Integration token field.
3

Configure scope (optional)

By default, Hadiq.io indexes all pages and databases the integration has access to.To restrict indexing to a specific section of your workspace, enter a Root page ID. Hadiq.io will start from that page and recursively index all child pages beneath it.Find a page ID in its URL: https://notion.so/Page-Title-<page-id> — the last segment after the final - is the ID.
4

Save

Click Save. Hadiq.io connects to Notion and begins indexing. Large workspaces with many nested pages may take a while on the initial sync.
Pages and databases that have not been shared with the Notion integration will not be indexed, even if the integration token is valid. Make sure to share all relevant content with the integration in Notion.

How recursive indexing works

Notion pages can be deeply nested. Hadiq.io supports two indexing modes:
  • Search-based indexing (default): uses the Notion Search API to discover pages. This is faster but may miss some pages that Notion’s search index hasn’t picked up.
  • Recursive indexing: enabled when you set a root page ID, or can be enabled globally. Hadiq.io traverses the page tree starting from the root, following child page references. This is more complete but slower for large workspaces.

Permission syncing

Notion’s API does not expose granular per-page access control lists to integrations. As a result, Hadiq.io cannot automatically enforce Notion page-level permissions in search results. To control access in Hadiq.io, scope the connector to only the pages and databases that should be broadly accessible, and use separate connectors for different access levels if needed.

Limitations

  • Pages not shared with the integration are not indexed.
  • AI blocks are not indexed (Notion API limitation).
  • File attachments uploaded to Notion pages are not indexed — only the text blocks and property values.
  • Database relations and rollup values are not fully resolved; only the raw values are indexed.
  • Notion’s search API may occasionally miss recently created pages. Use recursive indexing with a root page ID for the most complete coverage.