Notion Integration
Import your Notion pages and documentation into Contextium. Connect once and import entire page hierarchies in minutes.
Notion Integration
Import your Notion documentation into Contextium and make it accessible to AI assistants.
What gets imported: All pages, subpages, content blocks, images, and formatting
Time required: 5-10 minutes for initial setup, then 2 minutes per import
What You'll Learn
By the end of this guide, you'll be able to:
- Create a Notion integration and get your API token
- Connect Notion to your Contextium workspace
- Grant page access to the integration
- Import Notion pages into Contextium projects
- Understand how the import structure works
Prerequisites:
- A Notion account with admin access to the workspace you want to import from
- A Contextium account with an active workspace
Why Import from Notion?
The Problem
Your team's documentation lives in Notion, but AI assistants can't access it directly. You end up:
- Copy-pasting content for every AI question
- Maintaining duplicate documentation
- Losing context and formatting
- Missing updates when Notion content changes
The Solution
Import your Notion pages into Contextium once, and:
- AI assistants can access your docs via MCP integration
- Full-text search across all your documentation
- Version control and change tracking
- Maintain a single source of truth
Step 1: Create a Notion Integration
First, you'll create an internal integration in Notion to allow Contextium to read your pages.
Create the Integration
- Go to Notion Integrations
- Click + New integration
- Fill in the details:
- Name:
Contextium(or any name you prefer) - Associated workspace: Select your workspace
- Logo: (Optional) Upload a logo
- Name:
- Under Capabilities, ensure these are enabled:
- ✅ Read content
- ✅ Read comments (optional)
- ❌ Update content (not needed)
- ❌ Insert content (not needed)
- Click Submit
Get Your Integration Token
After creating the integration:
- You'll see a page with Internal Integration Token
- Click Show to reveal the token
- Click Copy to copy it to your clipboard
- Keep this token secure - treat it like a password
The token looks like this:
secret_abc123xyz789...
Security Note: Never share this token publicly or commit it to version control. Anyone with this token can read your Notion pages.
Step 2: Connect Notion to Contextium
Now you'll add your Notion integration token to Contextium.
Add the Integration
- Log in to Contextium
- Navigate to Settings → Connections (or click your avatar → Settings → Connections)
- Find the Notion section
- Click Connect Notion
- Paste your integration token in the API Token field
- Click Save or Connect
You should see a green checkmark ✓ indicating Notion is connected.
Verify Connection
To verify the connection worked:
- Go to Projects page
- Click the Import dropdown button
- You should see From Notion as an enabled option (not grayed out)
If "From Notion" shows "Connect →" instead, the connection didn't work. Check that:
- You copied the entire token (starts with
secret_) - You pasted it without extra spaces
- The token hasn't been revoked in Notion
Step 3: Grant Page Access
This is the most commonly missed step!
By default, your Notion integration can't see any pages. You must explicitly grant access to the pages you want to import.
Share Pages with Integration
For each page (or parent page) you want to import:
- Open the page in Notion
- Click the Share button (top right)
- Click Invite
- Search for your integration name (e.g., "Contextium")
- Select the integration from the dropdown
- Click Invite
The integration will now appear in the "Shared with" section of that page.
Grant Access to Parent Pages
Pro tip: If you grant access to a parent page, the integration automatically has access to all its subpages.
Example:
📄 Engineering Docs (← Share integration with this page)
├─ 📄 Backend API
│ ├─ 📄 Authentication
│ └─ 📄 Rate Limiting
├─ 📄 Frontend
└─ 📄 Database Schema
By sharing "Engineering Docs" with the integration, it can access all nested pages underneath.
Verify Access
To check which pages your integration can access:
- Go back to Notion Integrations
- Click on your integration (e.g., "Contextium")
- Scroll down to see Pages the integration has access to
Step 4: Import Pages into Contextium
Now you're ready to import your Notion pages.
Start an Import
- In Contextium, go to Projects
- Click the Import dropdown button
- Select From Notion
- The import modal opens
You should see:
- ✅ Green banner: "Using your connected Notion integration"
- A URL input field for the Notion page
Get Your Notion Page URL
- In Notion, open the page you want to import
- Copy the page URL from your browser's address bar
The URL looks like:
https://www.notion.so/My-Documentation-abc123def456
Paste URL and Import
- Paste the Notion page URL into the Notion Page URL field
- Click Start Import
The import process begins:
- Status changes to "Importing from Notion..."
- This may take a few minutes depending on page size
- The modal shows a loading spinner
Import Complete
When finished, you'll see:
- ✅ Import Successful!
- Stats showing:
- Files Created - Number of pages imported
- Folders Created - Always 0 (see Understanding Import Structure below)
- Images Imported - Number of images embedded
- A View Project button to see your imported content
Click View Project to open the newly created project.
Understanding Import Structure
Contextium imports Notion pages with a flat structure - all pages become files at the root level, with no nested folders.
Why Flattened?
Contextium is optimized for AI connectivity, not visual hierarchy. A flat structure:
- Makes all content immediately searchable
- Simplifies AI context retrieval
- Avoids deep nesting that's hard to navigate
- Works better with full-text search
How Pages Map to Files
Your Notion hierarchy:
📄 Product Documentation (root)
├─ 📄 Getting Started
├─ 📄 Features
│ ├─ 📄 Authentication
│ └─ 📄 Search
└─ 📄 API Reference
Becomes in Contextium:
Project: "Notion Import"
├─ index.md (Product Documentation - root page)
├─ getting-started.md
├─ features.md
├─ authentication.md
├─ search.md
└─ api-reference.md
All files are at the root level, no folders.
File Naming
- Root page →
index.md - Other pages → Filename based on page title (lowercase, hyphens, .md extension)
- Special characters are replaced with hyphens
- Filenames are truncated to 200 characters max
Multiple Imports
Each import creates a new project:
- First import:
Notion Import - Second import:
Notion Import (1) - Third import:
Notion Import (2) - And so on...
This prevents naming conflicts and lets you import different Notion hierarchies separately.
What Gets Imported
Supported Content
✅ Text blocks:
- Paragraphs
- Headings (H1, H2, H3)
- Lists (bulleted, numbered)
- Quotes
- Code blocks (with syntax highlighting)
- Callouts/alerts
✅ Media:
- Images (uploaded to Contextium)
- Image captions
✅ Formatting:
- Bold, italic,
code,strikethrough - Links (internal and external)
- Dividers
✅ Structure:
- All subpages (nested pages)
- Page properties (preserved as metadata)
Limitations
❌ Not imported:
- Databases (shown as placeholder text)
- Synced blocks (imported as regular content, not synced)
- Some embeds (converted to links)
- Comments (not imported)
- Page history (only current version)
❌ Not synced:
- Changes in Notion don't auto-update in Contextium
- To get updates, re-import the page (creates new project)
Managing Your Connection
Update API Token
If you need to change your Notion token:
- Generate a new token in Notion (or use existing one)
- Go to Contextium Settings → Connections
- Click Disconnect next to Notion
- Click Connect Notion again
- Paste new token
- Click Save
Disconnect Notion
To remove the Notion integration:
- Go to Settings → Connections
- Find Notion section
- Click Disconnect
- Confirm disconnection
This removes the stored token from Contextium. You can reconnect anytime.
Revoke Access in Notion
To completely revoke Contextium's access:
- Go to Notion Integrations
- Click on your integration (e.g., "Contextium")
- Click Delete integration (bottom of page)
- Confirm deletion
This permanently removes the integration and invalidates the token.
Troubleshooting
"Notion integration not connected"
Problem: Import modal shows warning about connecting Notion first.
Solution:
- Go to Settings → Connections
- Check if Notion shows as connected (green checkmark)
- If not connected, add your token (see Step 2)
- If already connected, try disconnecting and reconnecting
- Clear your browser cache and hard refresh (Cmd+Shift+R / Ctrl+Shift+R)
"No token provided" error
Problem: Import fails with "No token provided" error.
Cause: Token isn't properly saved or session expired.
Solution:
- Log out of Contextium
- Log back in
- Go to Settings → Connections
- Disconnect Notion
- Reconnect with your token
- Try importing again
"Page not found" or "Access denied"
Problem: Import fails saying it can't access the Notion page.
Cause: Integration doesn't have permission to read the page.
Solution:
- Open the Notion page you're trying to import
- Click Share → Invite
- Add your integration (e.g., "Contextium")
- Wait 30 seconds for permissions to propagate
- Try importing again
Check access:
- Go to Notion Integrations
- Click your integration
- Verify the page appears in the "Pages" list
Import stuck at "Importing..."
Problem: Import modal shows "Importing from Notion..." for more than 5 minutes.
Possible causes:
- Very large page hierarchy (100+ pages)
- Network timeout
- API rate limiting
Solution:
- Wait up to 10 minutes for large imports
- If still stuck, refresh the page
- Check Projects to see if project was created
- Try importing a smaller subset of pages
- Contact support if issue persists
Images not showing
Problem: Imported files show image placeholders or broken images.
Cause: Image upload failed during import.
Solution:
- Images are downloaded from Notion and re-uploaded to Contextium
- If upload fails, you'll see a broken image link
- Try re-importing the page
- Check that Notion images are publicly accessible
Invalid URL error
Problem: Import fails with "Invalid Notion URL" error.
Cause: URL format not recognized.
Valid URL formats:
✅ https://www.notion.so/Page-Name-abc123def456
✅ https://www.notion.so/workspace/Page-Name-abc123def456
✅ https://notion.so/Page-Name-abc123def456
Invalid formats:
❌ notion://... (desktop app links)
❌ https://notion.so/ (homepage)
❌ Page URLs without the hash (abc123...)
Solution:
- Open the page in Notion web app (not desktop app)
- Copy the full URL from browser address bar
- Paste complete URL (including the abc123... hash)
Content formatting issues
Problem: Imported content looks different from Notion.
Cause: Some Notion formatting doesn't translate to Markdown.
Known differences:
- Callout icons may be simplified
- Some colors lost (converted to semantic styles)
- Tables may have different styling
- Synced blocks appear as regular content
These are expected - Markdown has different capabilities than Notion's block editor.
Best Practices
Before Importing
Organize in Notion:
- Create a clear parent page for documentation you want to import
- Remove outdated pages
- Ensure page titles are descriptive
- Add page descriptions for context
Test with a small page first:
- Import a single page to verify the process
- Check formatting and content
- Then import larger hierarchies
Security
Token management:
- Store token securely (password manager)
- Don't share token with others
- Revoke and regenerate if compromised
- Use separate integrations for different projects
Access control:
- Only grant integration access to pages you want to import
- Don't share entire workspace with integration
- Review integration permissions quarterly
- Remove integration access from sensitive pages
Regular Imports
Keep Contextium updated:
- Re-import pages when you make major changes in Notion
- Each import creates a new project (old one stays)
- Delete old import projects to avoid duplicates
- Consider Contextium as a snapshot, not a live sync
Naming strategy:
- Use descriptive project names after import
- Rename "Notion Import" to something meaningful
- Add descriptions to projects
- Tag projects by department or topic
Advanced Usage
Importing Multiple Hierarchies
You can import different sections of your Notion workspace separately:
Example:
Import #1: Engineering docs → Project: "Engineering Docs"
Import #2: Product specs → Project: "Product Specs"
Import #3: Company handbook → Project: "Handbook"
Each becomes a separate Contextium project.
Combining with Other Sources
Contextium projects can mix content from multiple sources:
- Import from Notion
- Upload markdown files
- Add manually created files
- All searchable together
Using with MCP Integration
After importing, connect AI assistants via MCP:
- Import Notion pages to Contextium
- Set up MCP integration
- AI assistants can now search your imported Notion content
- Ask questions like: "Based on our product docs, how does authentication work?"
AI gets answers from your imported Notion documentation.
Next Steps
Now that you've imported your Notion documentation:
- ✅ Set up MCP integration to connect AI assistants
- ✅ Invite team members to collaborate
- ✅ Use version control to track changes
- ✅ Add comments to discuss content
Need Help?
If you run into issues:
- Check this guide's Troubleshooting section
- Visit Community Support
- Email support@contextium.io
- Check our status page for service issues
Common resources: