Connecting Notion to Your OpenClaw AI Assistant
Step-by-step guide to integrating Notion with OpenClaw. Create pages, update databases, and search your workspace — all through your AI assistant.
Connecting Notion to Your OpenClaw AI Assistant
TL;DR: Create a Notion integration, share specific pages with it, add the API key to your OpenClaw config. Your AI can then create pages, update databases, and search your Notion workspace. The annoying part is manually sharing every page you want the AI to access.
Estimated time: 20-30 minutes
Difficulty: Intermediate
What Your AI Can Do with Notion
Once connected, your OpenClaw assistant can:
- Create pages — "Create a meeting notes page for today's standup"
- Update databases — "Add a new task to my project tracker: Review PRs, due Friday"
- Search content — "Find my notes about the Q3 marketing plan"
- Read pages — "What did I write in my journal last Tuesday?"
- Update existing pages — "Add a section to the sprint retrospective about deployment issues"
What it can't do (Notion API limitations):
- Access pages you haven't explicitly shared with the integration
- Modify page layouts or complex blocks (columns, toggles with nested content)
- Manage workspace settings, members, or permissions
- Access comments (limited API support)
Step 1: Create a Notion Integration
- Go to notion.so/my-integrations
- Click "+ New integration"
- Fill in the details:
- Name: "OpenClaw Assistant" (or whatever you want)
- Associated workspace: Select your workspace
- Type: Internal (unless you're building for others)
- Click Submit
- On the next page, copy the Internal Integration Token — it starts with
ntn_
Set Capabilities
On the integration's settings page, configure capabilities:
- Content Capabilities: Enable "Read content", "Update content", "Insert content"
- Comment Capabilities: Optional — enable if you want your AI to read/write comments
- User Capabilities: "No user information" is fine unless you need it
Click Save changes.
Step 2: Share Pages with the Integration
This is the part that frustrates everyone.
Notion integrations can only access pages that are explicitly shared with them. This is a security feature — your integration can't see your entire workspace by default. But it means you have to manually share every page and database you want your AI to access.
How to Share a Page
- Open the page in Notion
- Click the "..." menu (top right) or the Share button
- Click "Add people, emails, groups, or integrations"
- Search for your integration name ("OpenClaw Assistant")
- Select it and click Invite
- Set the access level (usually "Can edit" for full functionality)
The Friction
If you have hundreds of pages, sharing them one by one is tedious. Here are some shortcuts:
Share top-level pages: When you share a parent page, all child pages inherit access. So if you share your "Work" page, everything nested under it becomes accessible.
Share databases at the top level: Share the database itself, and all entries within it are accessible.
Create an "AI Workspace" page: Make a single top-level page called "AI Workspace" (or whatever), share it with the integration, and put everything you want the AI to access under it.
The Bootstrapping Problem
Here's the catch-22: your AI assistant can create new pages, but those new pages need to be created inside a page that's already shared with the integration. If no pages are shared, the AI can't create anything.
Solution: Always share at least one "root" page or database with the integration. This gives the AI a place to create new content. Otherwise, it'll error out trying to create pages with no accessible parent.
# What happens without a shared root:
You: "Create a new page with today's meeting notes"
AI: "Error: I don't have access to any pages in your Notion workspace.
Please share a page with the OpenClaw Assistant integration."
Step 3: Configure OpenClaw
Add the Notion skill to your OpenClaw configuration.
config.json
{
"skills": {
"notion": {
"enabled": true,
"apiKey": "ntn_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
}
}
config.yaml
skills:
notion:
enabled: true
apiKey: "ntn_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Using Environment Variables (Recommended)
export NOTION_API_KEY="ntn_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
{
"skills": {
"notion": {
"enabled": true,
"apiKey": "${NOTION_API_KEY}"
}
}
}
Specifying Default Pages
You can configure default pages for common operations:
{
"skills": {
"notion": {
"enabled": true,
"apiKey": "${NOTION_API_KEY}",
"defaults": {
"journalDatabase": "abc123def456",
"tasksDatabase": "789ghi012jkl",
"notesParent": "mno345pqr678"
}
}
}
}
To find a page or database ID: open it in Notion, look at the URL. The 32-character string after your workspace name is the ID.
https://notion.so/yourworkspace/My-Page-abc123def456ghi789jkl012mno345pq
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This is the page ID (remove dashes)
Step 4: Restart and Test
clawdbot gateway restart
Test the connection by asking your AI to interact with Notion:
You: "Search my Notion for anything about project roadmap"
You: "Create a page called 'Test Page' in my Notes"
You: "What databases do I have access to in Notion?"
If the AI reports access errors, double-check that you shared the relevant pages with the integration (Step 2).
Usage Examples
Creating Structured Content
You: "Create a meeting notes page for today. Include sections for
Attendees, Discussion Points, Action Items, and Next Steps.
Put it in my Meetings database."
Managing Databases
You: "Add a task to my project tracker:
- Title: Review API documentation
- Priority: High
- Due date: Friday
- Assigned to: Me"
Searching and Retrieving
You: "Find all my notes that mention 'quarterly review'"
You: "What tasks are due this week in my project tracker?"
You: "Read the contents of my 'Architecture Decisions' page"
Updating Content
You: "Add a new section to yesterday's meeting notes about
the deployment delay we discussed after the meeting"
Practical Tips
Organize for AI Access
Structure your Notion workspace with AI access in mind:
📁 AI Workspace (shared with integration)
📁 Daily Notes
📁 Meeting Notes
📁 Project Tracker (database)
📁 Quick Capture
📁 Reference Material
This way, sharing one top-level page gives the AI access to everything relevant.
Use Databases, Not Pages, for Structured Data
Notion databases (tables, boards, calendars) work much better with the API than free-form pages. If you want your AI to add tasks, log entries, or track items, use a database.
Be Specific in Requests
The AI needs to know where to put things. "Create a page" is ambiguous — "Create a page in my Meeting Notes database" is clear.
API Rate Limits
Notion's API allows 3 requests per second. For normal assistant use, you'll never hit this. But if you ask the AI to bulk-create 50 pages, it might throttle. The AI will handle retries automatically, but it'll be slow.
Common Issues
"Could not find page/database with ID..."
The page exists but isn't shared with your integration. Go to the page in Notion and share it (Step 2).
"API token is invalid"
- Make sure the token starts with
ntn_ - Check that it's the correct workspace
- Verify the integration hasn't been deleted or disabled at notion.so/my-integrations
AI creates pages but you can't find them
The page was created inside a shared parent that might not be in your sidebar. Search for the page title in Notion, or ask the AI for the page URL.
"Insufficient permissions"
The integration has read-only access to that page. Go to the page's share settings and change the integration's access from "Can view" to "Can edit".
Changes aren't showing up
Notion's API and the web app are sometimes briefly out of sync. Wait a few seconds and refresh the page. If it still doesn't show, check the OpenClaw logs for errors.
Limitations to Know About
No Full-Workspace Access
Unlike some integrations, Notion's API doesn't offer a "grant access to everything" option. Each page must be individually shared (or inherited from a shared parent). This is by design for security, but it's still annoying.
Block Type Support
The Notion API doesn't support every block type. Complex layouts (synced blocks, columns, advanced embeds) may not create or render correctly. Stick to text, headings, lists, to-dos, and tables for reliable results.
No Real-Time Sync
OpenClaw doesn't maintain a live connection to Notion. Each request is a separate API call. There's no webhook that notifies your AI when a Notion page changes. The AI reads the current state when you ask about it.
The Easy Way
Notion integration works the same whether you self-host or use managed hosting — the Notion API setup is always on you. lobsterfarm provides managed OpenClaw hosting — deployment, updates, and support handled for you.
Skip the setup. Start using your AI assistant today.
lobsterfarm gives you a fully managed OpenClaw instance — one click, your own server, running 24/7.