Notion Integration
Notion integration allows you to sync pages from your Notion workspace into your vector store. This connector uses Notion's Internal Integration approach, which requires creating an integration and sharing specific pages with it.
Prerequisites
Before connecting Notion, you'll need to:
- Have a Notion account with workspace access
- Create a Notion integration
- Share the pages you want to sync with that integration
Step 1: Create a Notion Integration
- Go to Notion Integrations
- Click + New integration
- Fill in the details:
- Name: Vector Data Loader (or any name you prefer)
- Associated workspace: Select your workspace
- Type: Internal
- Under Capabilities, ensure these are enabled:
- ✅ Read content
- ✅ Read user information (optional)
- Click Submit
- Copy the Internal Integration Token (starts with
secret_orntn_)
The integration token provides access to any pages shared with it. Store it securely and don't share it publicly.
Step 2: Share Pages with Your Integration
Notion integrations can only access pages that have been explicitly shared with them.
- Open the Notion page you want to sync
- Click the ⋯ (three dots) menu in the top-right corner
- Click Add connections
- Search for and select your integration name
- Click Confirm
When you share a parent page, all child pages underneath it are also accessible to the integration. You don't need to share each page individually.
Step 3: Connect in Vector Data Loader
- Navigate to Sources in Vector Data Loader
- Click the Notion card
- Fill in the connection form:
| Field | Description |
|---|---|
| Display Name | A friendly name for this source (e.g., "My Notion Workspace") |
| Integration Token | Paste your integration token from Step 1 |
| Root Page ID | (Optional) Limit browsing to a specific page and its children |
- Click Connect
Finding a Page ID
If you want to limit the integration to a specific page:
- Open the page in Notion
- Click Share → Copy link
- The URL looks like:
https://notion.so/Your-Page-Title-abc123def456 - The Page ID is the 32-character string at the end (without hyphens):
abc123def456...
Browsing Notion Content
Once connected, you can browse your shared Notion pages:
- Pages appear in a hierarchical tree structure
- Child pages are nested under their parents
- Only pages shared with your integration are visible
What Gets Synced
When you sync a Notion page, the following content is extracted:
| Content Type | Synced |
|---|---|
| Page title | ✅ |
| Text blocks | ✅ |
| Headers (H1, H2, H3) | ✅ |
| Bulleted & numbered lists | ✅ |
| Toggle blocks | ✅ |
| Code blocks | ✅ |
| Tables | ✅ (as text) |
| Databases | ✅ (as text rows) |
| Nested/child pages | ✅ (if shared) |
| Images | ❌ (text only) |
| Embeds | ❌ |
| Comments | ❌ |
Troubleshooting
"Page not found" or empty browser
- Ensure you've shared the page with your integration (Step 2)
- Check that the integration token is correct
- Verify the Root Page ID (if specified) is valid
"Unauthorized" error
- Your integration token may have been revoked or is incorrect
- Go to Notion Integrations and verify/regenerate the token
Pages missing from the browser
- Only pages explicitly shared with the integration appear
- Share parent pages to include all their children
- Database pages need to be shared separately from the database itself
Security Considerations
- Integration tokens provide read access to all shared pages
- Tokens are encrypted before storage in the database
- Consider creating separate integrations for different projects
- Regularly audit which pages are shared with the integration