Notion is the AI workspace that works for you - a productivity platform where teams can create docs, wikis, projects, and manage knowledge in one place. It’s widely used by teams for documentation, project management, and collaboration.

1. Data Streams

The Notion connector creates two types of data streams:

Databases Stream

  • Stream name: databases
  • Purpose: Lists all databases accessible to your Notion integration
  • Use case: Discover what databases are available in your Notion workspace

Database Content Streams

  • Stream pattern: database_{database_id}
  • Purpose: Extracts the actual content (pages/rows) from each individual database
  • Use case: Get the data stored within your Notion databases

2. Incremental vs Full Sync

The connector supports incremental synchronization for database content streams using Notion’s last_edited_time field. This means:

  • Incremental sync: Only extracts pages that have been created or modified since the last sync
  • Full sync: Extracts all pages from the database every time

The databases stream always performs a full sync since it’s just listing available databases.

3. Schema

Databases Stream Schema

The databases stream includes the following properties for each database:

PropertyDescription
idUnique identifier for the database
titleArray containing the database title information
objectAlways “database” for database objects
propertiesStringified JSON of the database schema/properties
created_timeWhen the database was created
created_byUser who created the database
last_edited_byUser who last edited the database
last_edited_timeWhen the database was last modified
coverDatabase cover image information
iconDatabase icon (emoji or image)
parentInformation about where the database is located
urlInternal Notion URL for the database
public_urlPublic URL if the database is shared
archivedWhether the database is archived
in_trashWhether the database is in trash

Database Content Stream Schema

Each database content stream includes:

PropertyDescription
idUnique identifier for the page/row
objectAlways “page” for database entries
last_edited_timeWhen the page was last modified (used for incremental sync)
propertiesStringified JSON containing all the page properties based on the database schema
created_timeWhen the page was created
created_byUser who created the page
last_edited_byUser who last edited the page
coverPage cover image information
iconPage icon (emoji or image)
parentReference to the parent database
archivedWhether the page is archived
in_trashWhether the page is in trash
urlInternal Notion URL for the page
public_urlPublic URL if the page is shared

4. Connector Configuration

  1. In the Sources tab, click on the “add source” button located on the top right of your screen. Then, select the Notion option from the list of connectors.

  2. Click Next and you’ll be prompted to add your access credentials.

  3. Authentication with Notion:

    Nekt supports Notion OAuth, making the setup process simple and secure. You just need to authenticate with your Notion account.

    Connecting Your Notion Account

    1. Click “Notion Authorization” when prompted
    2. You’ll be redirected to Notion’s authorization page
    3. Sign in to your Notion account if you haven’t already
    4. Review the permissions that Nekt is requesting
    5. Click “Allow” to grant access to your Notion workspace
    6. You’ll be redirected back to Nekt with your account connected

    The OAuth process automatically handles authentication and gives Nekt access to the databases you have permission to view in your Notion workspace.

    Best Practices

    • The OAuth connection will give Nekt access to databases based on your user permissions in the Notion workspace
    • You can revoke access at any time from your Notion workspace settings
    • Only connect workspaces that contain the data you need for your analytics

5. Select Your Notion Streams

  1. The next step is letting us know which streams you want to bring. The connector will automatically discover all databases that are shared with your integration.

  2. You’ll see:

    • The databases stream (recommended to include for visibility into your workspace)
    • Individual database_{id} streams for each accessible database
  3. Click Next.

6. Configure Your Notion Data Streams

  1. Customize how you want your data to appear in your catalog. Select a name for each table and the type of sync.
  • Table name: We suggest using the database name from Notion, but feel free to customize it. You have the option to add a prefix to make this process faster!
  • Sync Type: You can choose between INCREMENTAL and FULL_TABLE.
    • Incremental: Every time the extraction happens, we’ll get only new or modified pages since the last sync. This is efficient and recommended for most use cases.
    • Full table: Every time the extraction happens, we’ll get all pages from the database. Use this if you need to capture deletions or if you prefer to always have the complete current state.
  1. Click Next.

7. Configure Your Notion Data Source

  1. Describe your data source for easy identification within your organization. You can inform things like what data it brings, to which team it belongs, etc.

  2. To define your Trigger, consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times).

Check your new source!

  1. Click Next to finalize the setup. Once completed, you’ll receive confirmation that your new source is set up!

  2. You can view your new source on the Sources page. Now, for you to be able to see it on your Catalog, you have to wait for the pipeline to run. You can now monitor it on the Sources page to see its execution and completion. If needed, manually trigger the pipeline by clicking on the refresh icon. Once executed, your new table will appear in the Catalog section.

If you encounter any issues, reach out to us via Slack, and we’ll gladly assist you!