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

# Connect Notion

> Approve. You're redirected back to the OpenCX dashboard with the connection active.

<Tip>
  Configure the source at [**AI Training → Data Sources**](https://platform.open.cx/data-sources).
</Tip>

## Set up the sync

<Steps>
  <Step title="Open Data Sources">
    Go to [**AI Training → Data Sources**](https://platform.open.cx/data-sources).
  </Step>

  <Step title="Start the Notion connection">
    Click **Add source → Notion**. There are no credential fields — Notion uses OAuth.
  </Step>

  <Step title="Authorize in Notion">
    Click **Connect**. A Notion authorization page opens. **This is where you choose what OpenCX can read:**

    * **Allow access to all pages** — broadest. The connector can see every page in the workspace it's installed in.
    * **Select pages** — narrow. Pick specific pages or databases. OpenCX only sees those.

    Approve. You're redirected back to the OpenCX dashboard with the connection active.
  </Step>

  <Step title="Wait for the first sync">
    The first pull indexes every accessible page and block. Size depends on how much you shared — small workspaces finish in minutes, larger ones take longer.
  </Step>

  <Step title="Verify in AI Instructions">
    Open [**AI Training → AI Instructions**](https://platform.open.cx/ai-instructions). Pages appear under **Notion**, linked back to their page URLs.
  </Step>
</Steps>

## What gets synced

<AccordionGroup>
  <Accordion title="Pages" icon="file-lines">
    Every Notion page the OAuth scope grants access to — both top-level pages and sub-pages.
  </Accordion>

  <Accordion title="Blocks" icon="cubes">
    Block-level content within pages, synced incrementally on `last_edited_time`. Together with pages, this gives the AI detailed context.
  </Accordion>

  <Accordion title="Databases as pages" icon="table">
    Database rows in Notion are treated as pages at sync time. The AI sees each row's content but doesn't query the database structurally.
  </Accordion>
</AccordionGroup>

## Changing scope later

To expand or narrow what the connector sees:

1. Remove the connection from Data Sources in OpenCX.
2. In Notion, visit **Settings → Connections** and revoke the OpenCX integration (or leave it and skip this step if you'll re-authorize).
3. Re-add the source in OpenCX and re-authorize — this time picking a different set of pages.

## Limits

|                       | Value                                                           |
| --------------------- | --------------------------------------------------------------- |
| **Streams synced**    | `pages`, `blocks`                                               |
| **Sync mode**         | `incremental_deduped_history` on `last_edited_time`             |
| **Sync cadence**      | Airbyte polling — typically every few hours                     |
| **Credential type**   | OAuth 2.0 (no API token)                                        |
| **Multi-workspace**   | One Notion workspace per connection                             |
| **Selective scoping** | Set at OAuth authorization time — change by revoke + re-connect |

***

## Related Documentation

<CardGroup cols={2}>
  <Card title="Notion overview" icon="n" href="/knowledge/sources/notion/overview">
    What this source does.
  </Card>

  <Card title="Troubleshooting" icon="wrench" href="/knowledge/sources/notion/troubleshooting">
    Missing pages, re-authorization.
  </Card>

  <Card title="Website crawler" icon="globe" href="/knowledge/sources/website/overview">
    For publicly-shared Notion pages.
  </Card>

  <Card title="Connect a knowledge source" icon="brain" href="/knowledge/sources/overview">
    All sources.
  </Card>
</CardGroup>
