Linking Notion as a source
The Notion connector syncs your Notion workspace data into PostHog, including pages, databases, users, blocks, and comments.
Adding a data source
- Go to the Data pipeline page and select the Sources tab.
- Click + New source and select Notion by clicking the Link button.
- Get your integration token:
- Go to notion.so/my-integrations and click + New integration.
- Give your integration a name and select the workspace you want to sync.
- Under Capabilities, ensure Read content is enabled.
- Copy the Internal Integration Secret (starts with
ntn_orsecret_).
- Paste your integration token into PostHog.
- Optional: Add a prefix to your table names.
- Click Next.
Each page and database you want to sync must be explicitly shared with your integration. Open the page in Notion, click the ••• menu in the top right, select Connections, and add your integration. Pages not shared with the integration won't appear in the sync.
The data warehouse then starts syncing your Notion data. You can see details and progress in the data pipeline sources tab.
Available tables
The Notion source syncs the following tables:
| Table | Description |
|---|---|
| pages | All pages shared with your integration |
| databases | All database objects shared with your integration |
| users | All users in your workspace |
| blocks | Content blocks within synced pages (paragraphs, headings, lists, etc.) |
| comments | Comments on synced pages |
Sync modes
Notion tables support full refresh only. Each sync re-downloads all data from Notion. Incremental syncing isn't available because Notion's API only sorts by last edited time but doesn't support server-side filtering by it.
For large workspaces, syncs may take longer due to Notion's rate limits (~3 requests/second). The blocks and comments tables fan out across all synced pages, so workspaces with many deeply nested pages will take the longest.
Configuration
| Option | Type | Required |
|---|---|---|
API key | password | Yes |