Quick Setup
1. Create Notion Connection
- TypeScript
- Python
- cURL
2. Handle OAuth Flow
After user grants workspace access, Notion redirects to your callback URL. The connection is automatically established.3. Monitor Sync Progress
- TypeScript
- Python
- cURL
Document limit
Each connection has adocumentLimit (optional when creating the connection; allowed range 1–10,000). For Notion, each sync run asks the Notion Search API for pages shared with the integration, ordered by last edited time, newest first, and stops after that many pages (or when Search has no more results).
- Full sync: If your workspace has more shareable pages than
documentLimit, the rest are not included in that run. Pages that look “missing” are often older or less recently edited relative to that ordering. IncreasedocumentLimitor trigger another sync after pages change if you need broader coverage. - Incremental sync: Only pages edited after the previous sync are candidates; each one still counts toward the same
documentLimit. If more pages changed than the limit since last sync, only the first batch in that newest-first order is returned for that run.
Supported Content Types
Notion Pages
- Rich text blocks with formatting preserved
- Nested pages and hierarchical structure
- Embedded content (images, videos, files)
- Code blocks with syntax highlighting
- Callouts and quotes converted to markdown
Notion Databases
- Database entries synced as individual documents
- Properties included in metadata
- Relations between database entries
- Formulas and rollups calculated values
- Multi-select and select properties
Block Types
| Block Type | Processing | Markdown Output | ||||||
|---|---|---|---|---|---|---|---|---|
| Text | Formatting preserved | **bold**, *italic*, ~~strikethrough~~ | ||||||
| Heading | Hierarchy maintained | # H1, ## H2, ### H3 | ||||||
| Code | Language detected | python\ncode here\n | ||||||
| Quote | Blockquote format | > quoted text | ||||||
| Callout | Custom formatting | > 💡 **Note:** callout text | ||||||
| List | Structure preserved | - item 1\n - nested item | ||||||
| Table | Markdown tables | ` | Col 1 | Col 2 | \n | ------- | ------- | ` |
| Image | Referenced with metadata |  | ||||||
| Embed | Link with context | [Embedded Content](url) |
Delete Connection
Remove a Notion connection when no longer needed:- TypeScript
- Python
- cURL
Deleting a connection will:
- Stop all future syncs from Notion
- Remove the OAuth authorization
- Keep existing synced documents in Supermemory (they won’t be deleted)
Advanced Configuration
Custom Notion Integration
For production deployments, create your own Notion integration:- TypeScript
- Python
- cURL
Content Filtering
Control which Notion content gets synced:- TypeScript
- Python
- cURL
Workspace Permissions
Notion connector respects workspace permissions:| Permission Level | Sync Behavior |
|---|---|
| Admin | Full workspace access |
| Member | Pages with read access |
| Guest | Only shared pages |
| No Access | Removed from index |
Database Integration
Database Properties
Notion database properties are mapped to metadata:Optimization Strategies
- Set
documentLimithigh enough for your workspace size (see Document limit) - Use targeted container tags for efficient organization
- Monitor database sync performance for large datasets
- Implement content filtering to sync only relevant pages
- Handle webhook delays gracefully in your application
Notion-Specific Benefits:
- Real-time sync via webhooks for instant updates
- Rich formatting and block structure preserved
- Database properties become searchable metadata
- Hierarchical page structure maintained
- Collaborative workspace support