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

# Notion

> Sync pages and databases from Notion into a Circuit index.

The Notion feed connects an index to Notion through a public OAuth connection. After you authorize Circuit and explicitly share the pages or databases you want to include, Circuit imports them and keeps the index in sync as content changes.

## What you can do

* **Sync individual pages**: Share specific Notion pages with the Circuit connection. Only the pages you share are imported.
* **Sync databases**: Share a database with the connection to import every page inside it. Pages added later flow in automatically on the next sync.
* **Pull from any workspace**: Each user can connect their own workspace, and admins can connect a shared workspace for team-wide content.
* **Stay in sync automatically**: Circuit re-checks the source periodically. Updates and deletions in Notion are mirrored to the index.

## Before you start

* A Notion account with access to the pages or databases you want to sync.
* Permission to add connections in the target workspace. Workspace owners on Enterprise plans can restrict who is allowed to add connections to pages.
* An index in Circuit where the Notion content should live. See [Indexes](/admin/indexes) if you need to create one.

## Connect Notion

<Note>
  Notion uses per-page sharing. The OAuth grant alone does not give Circuit access to any content. After you connect, you must add Circuit as a connection on every page or database you want to sync. Step 5 below is the step most users miss.
</Note>

<Steps>
  <Step title="Open the index's Integrations tab">
    In Circuit, open the index that should receive the Notion content, then choose **Integrations** > **New integration**.
  </Step>

  <Step title="Choose Import from Notion">
    Select **Import from Notion**. Circuit redirects you to Notion's sign-in page.
  </Step>

  <Step title="Sign in to Notion and select a workspace">
    Sign in with the account that has access to the content you want to sync. If you belong to more than one workspace, Notion asks which workspace to install the connection in.
  </Step>

  <Step title="Approve the requested access">
    Notion shows the capabilities Circuit requests (see [What Circuit accesses](#what-circuit-accesses) below). Click **Select pages** to continue, then **Allow access**.
  </Step>

  <Step title="Share each page or database with Circuit">
    This is the step that controls what Circuit actually reads. In Notion, open every page or database you want to sync, click the **...** menu at the top right, choose **Connections** > **Add connections**, and select **Circuit**. Sharing a parent page or database also shares its child pages.

    If you skip this step, Circuit will connect successfully but find nothing to import.
  </Step>

  <Step title="Start the import">
    Return to Circuit and click **Done**. Circuit imports the shared content. Depending on volume, the initial import takes a few minutes to a few hours. Subsequent updates run in the background.
  </Step>
</Steps>

## What Circuit accesses

Notion uses a capabilities model rather than named scopes. Circuit requests:

| Capability                       | Why Circuit needs it                                                                            |
| -------------------------------- | ----------------------------------------------------------------------------------------------- |
| Read content                     | Read the body and metadata of pages and databases you share with the connection.                |
| Read user information (no email) | Resolve page authors and editors to display names so search results show who wrote the content. |

Circuit only reads from pages and databases you explicitly share with the Circuit connection in Notion. Anything that has not been shared is invisible to Circuit, even within the same workspace.

<Note>
  Circuit does not write to Notion through this integration. The connection has no create, update, or delete capability.
</Note>

## For IT and security teams

Notion does not have a central admin consent flow like Microsoft Entra ID. Instead, control happens inside each Notion workspace:

* **Per-workspace install**: Connections are installed and managed within a single Notion workspace at a time. Each workspace owner decides whether to install Circuit.
* **Restricting who can add connections** (Enterprise plans): Workspace owners can restrict adding and removing connections to owners only. Open **Settings** > **Connections** in Notion, then change **Who can manage page access** to **Workspace owners**. Members will then be unable to attach the Circuit connection to a page.
* **Reviewing connected pages**: Workspace owners can audit which pages a connection is attached to from **Settings** > **Connections**, then selecting Circuit.
* **Revocation**: Removing Circuit from **Settings** > **Connections** revokes Circuit's access to every page in that workspace immediately.

For cross-integration credential handling, transport security, and review patterns, see [Integration security and admin consent](/it/integration-security).

## Disconnect or rotate access

* **From Circuit**: open the index's **Integrations** tab, select the Notion feed, and click **Remove**. Circuit deletes the stored refresh token and stops syncing. Already-imported documents stay in the index until you delete them.
* **From Notion (per user)**: open **Settings** > **My connections**, find Circuit, and click **Disconnect**.
* **From Notion (workspace-wide)**: a workspace owner can open **Settings** > **Connections**, find Circuit, and remove it. This revokes access for every user in that workspace.
* **From a single page**: open the page in Notion, click **...** > **Connections**, hover the Circuit entry, and click **Disconnect**. The page stops syncing but other shared pages continue.

## Troubleshooting

<AccordionGroup>
  <Accordion title="Circuit connected successfully but the index is empty">
    The OAuth grant alone does not give Circuit access to any pages. Open each page or database you want to sync in Notion, click **...** > **Connections** > **Add connections**, and select Circuit. Sharing a parent page also shares its children.
  </Accordion>

  <Accordion title="A page is shared with Circuit but is missing from the index">
    Circuit imports shared content on its next sync cycle, usually within a few hours. If a page has been shared for longer than that and is still missing, check whether the page is inside a database or page that has not been shared, and confirm the user who installed the Circuit connection still has access to the page.
  </Accordion>

  <Accordion title="&#x22;This connection is not authorized&#x22; or page access errors">
    The user who originally installed the connection has lost access to the page, or the connection has been removed from the page. Re-add the Circuit connection in the page's **...** > **Connections** menu, or ask a workspace owner to re-install Circuit.
  </Accordion>

  <Accordion title="Cannot find the Add connections option in a page menu">
    Your workspace may restrict connection management to workspace owners. Ask a workspace owner to add the Circuit connection to the page, or to change the **Who can manage page access** setting under **Settings** > **Connections**.
  </Accordion>

  <Accordion title="A page was deleted in Notion but is still in the index">
    Deletions are picked up on the next sync cycle, usually within a few hours. Force a re-sync from the feed's settings if a removed page persists for longer.
  </Accordion>
</AccordionGroup>

## Reference

* **OAuth flow**: Notion public OAuth (authorization code)
* **Access model**: Capabilities-based, scoped to pages and databases explicitly shared with the connection
* **Redirect URI**: `https://app.circuit.ai/api/notion-oauth`
* **Application name shown on consent screen**: Circuit
* **Notion's own docs**: [Authorization](https://developers.notion.com/docs/authorization), [Add and manage connections](https://www.notion.com/help/add-and-manage-connections-with-the-api)
