> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getomni.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Notion

> Connect Notion workspaces to Omni for unified search across pages, databases, and content blocks

The Notion connector enables Omni to index and search content from your Notion workspace, including data sources, pages, database entries, properties, and nested content blocks.

## Overview

### What Gets Indexed

| Source              | Content                                                                                             |
| ------------------- | --------------------------------------------------------------------------------------------------- |
| Data sources        | Data source title, description, and property schema definitions                                     |
| Data source entries | Page content, properties (title, select, date, people, relation, rollup, etc.), and nested blocks   |
| Standalone Pages    | Full page content including all nested blocks                                                       |
| Block Types         | Paragraphs, headings, lists, code blocks, tables, toggles, bookmarks, equations, callouts, and more |

### How It Works

1. You create a Notion internal integration and share content with it
2. The connector syncs all shared data sources and pages via the Notion API
3. Page content is rendered from blocks — nested children are fully traversed and included
4. Data source entries include rendered property values in the indexed content
5. Incremental sync fetches pages and data sources modified since the last sync

<Note>
  The connector uses read-only access. Omni cannot modify any content in your Notion workspace.
</Note>

## Prerequisites

Before setting up the Notion connector, ensure you have:

* **Notion account** with permission to create integrations
* **Omni deployment** with the Notion connector service running

## Setup

### Step 1: Create a Notion Internal Integration

1. Go to [My Integrations](https://www.notion.so/my-integrations)
2. Click **New integration**
3. Select the workspace you want to connect
4. Give the integration a name (e.g., "Omni Search")
5. Under **Capabilities**, ensure these are selected:
   * **Read content**
   * **Read user information with email addresses**
6. Click **Save**
7. Copy the **Internal Integration Secret** (starts with `ntn_`)

<Warning>
  Keep your integration secret secure. Anyone with access to this token can read content shared with the integration.
</Warning>

### Step 2: Share Content with the Integration

Notion integrations can only access pages, databases, and data sources that have been explicitly shared with them. This is a critical step.

**To share a page, database, or data source:**

1. Open the page or database in Notion
2. Click the **...** menu in the top-right corner
3. Scroll to **Connections** and click **Connect to**
4. Find and select your integration (e.g., "Omni Search")

<Tip>
  Share top-level pages to grant access to all their child pages automatically. For example, sharing a team wiki's root page will make all nested pages accessible to the connector. Share databases/data sources directly when you want entries and property schema to be indexed.
</Tip>

### Step 3: Connect in Omni

1. Navigate to **Settings** → **Integrations** in Omni
2. Find **Notion** and click **Connect**
3. Enter your Internal Integration Secret
4. Click **Connect**
5. Click **Sync** to start the initial sync

<Check>
  Your Notion connector is now configured. Initial indexing may take a while depending on the amount of content in your workspace.
</Check>

## Managing the Integration

### Viewing Sync Status

Navigate to **Settings** → **Integrations** to view the sync status for each source directly on the list, including last sync time, number of indexed items, and any errors. Click **Settings** on a source for more details and sync history.

### Sync Modes

The Notion connector supports two sync modes:

| Mode            | Description                                                                                      |
| --------------- | ------------------------------------------------------------------------------------------------ |
| **Full**        | Syncs all shared data sources, data source entries, and standalone pages (used for initial sync) |
| **Incremental** | Syncs pages and data sources modified since the last sync (used for updates)                     |

After the initial full sync, the connector automatically performs incremental syncs to capture new and updated content.

### Adding More Content

To index additional pages or databases:

1. Share the new content with your integration in Notion (see Step 2)
2. The next sync will automatically include the newly shared content

### Removing the Integration

1. Navigate to **Settings** → **Integrations**
2. Click **Settings** against the Notion source
3. Click **Delete Permanently**

## Troubleshooting

<AccordionGroup>
  <Accordion title="Pages not appearing in search">
    The most common cause is that the page or its parent has not been shared with the integration.

    **Solution**:

    1. Open the page in Notion
    2. Click **...** → **Connections**
    3. Verify your integration is listed
    4. If not, add the connection and trigger a new sync
  </Accordion>

  <Accordion title="Token validation failed">
    The integration secret may be expired or revoked.

    **Solution**:

    1. Go to [My Integrations](https://www.notion.so/my-integrations)
    2. Select your integration and regenerate the secret
    3. Delete the existing Notion source in Omni and reconnect it with the new secret
  </Accordion>

  <Accordion title="Rate limiting errors">
    Notion has API rate limits. The connector handles these automatically with exponential backoff.

    **Solution**: Wait for the connector to retry. For large workspaces, initial sync may take longer due to rate limits.
  </Accordion>

  <Accordion title="Data source entries missing">
    Data source entries are only indexed if the parent database/data source is shared with the integration.

    **Solution**: Ensure the database or data source itself (not just individual entries) is shared with the integration via **Connections**.
  </Accordion>
</AccordionGroup>

## Security Considerations

* **Read-only access**: The connector only reads page and database content
* **Token security**: Integration secrets should be treated like passwords
* **Encrypted storage**: Credentials are encrypted at rest in Omni
* **Explicit sharing**: Only content explicitly shared with the integration is accessible — the connector cannot access your entire workspace by default

## Permissions

The Notion connector uses workspace-level permissions. All members of the Notion workspace can access synced content in Omni.

Content visibility in Omni is determined by what has been shared with the integration — only pages, databases, and data sources explicitly shared with your Notion integration (see [Step 2](#step-2-share-content-with-the-integration)) are indexed and searchable.

## What's Next

<CardGroup cols={3}>
  <Card title="Search Your Data" icon="magnifying-glass" href="/user-guide/search">
    Learn how to search across Notion pages
  </Card>

  <Card title="AI Assistant" icon="robot" href="/user-guide/ai-assistant">
    Ask questions about your Notion content
  </Card>

  <Card title="Add More Connectors" icon="plug" href="/connectors/overview">
    Connect additional data sources
  </Card>
</CardGroup>
