OpenClaw + Notion Setup
Turn Notion into your agent's project brain. OpenClaw reads and writes to Notion pages and databases through the official API — create meeting notes, update task boards, query databases, and sync daily summaries, all from Telegram or WhatsApp.
OpenClaw guide · Updated 2026 · Practical setup steps
What You Need
A Notion workspace with at least one database or page you want the agent to access, plus a running OpenClaw gateway. The integration uses Notion's Internal Integration Token, which gives scoped API access to pages you explicitly share with the integration.
Step 1: Create a Notion Integration
Go to notion.so/my-integrations and click New Integration. Name it "OpenClaw", select your workspace, and copy the Internal Integration Token (starts with secret_). The integration starts with no access to any pages — you must share specific pages and databases with it in the next step.
Step 2: Share Pages with the Integration
Open each Notion page or database you want OpenClaw to access. Click the three-dot menu, select "Connect to", and choose your OpenClaw integration. This grants read and write access to that specific page and all its children. Only share what the agent needs — start narrow and expand later.
Step 3: Install the Notion Skill
clawhub install notion
The skill requires Node.js (for the notion-cli bridge) and your API key as an environment variable:
export NOTION_API_KEY="secret_your_token_here"
Alternatively, configure it in openclaw.json:
{
"skills": {
"entries": {
"notion": {
"enabled": true,
"env": {
"NOTION_API_KEY": "${NOTION_API_KEY}"
}
}
}
}
}
Restart the gateway: openclaw gateway restart.
Step 4: Add Context to TOOLS.md
Help your agent understand your Notion structure:
## Notion
- Workspace: [Your Company Name]
- Key databases:
- "Tasks" (ID: abc123) — project tasks with Status, Priority, Due Date
- "Meeting Notes" (ID: def456) — meeting records with Date, Attendees
- "Content Calendar" (ID: ghi789) — blog posts with Status, Publish Date
- Always use the database ID, not the page URL
- When creating tasks, set Status to "Todo" and Priority to "Medium" by default
Example Commands
- "Add a task to my Notion board: Review Q1 numbers, due Friday, high priority"
- "What's on my Notion content calendar this week?"
- "Create a meeting note for today's standup with action items from this conversation"
- "Search Notion for everything related to the pricing redesign"
- "Update the status of the 'Homepage Redesign' task to In Progress"
Automate with Cron
# Weekly project sync — every Monday at 9am
openclaw cron add \
--name "Notion weekly sync" \
--cron "0 9 * * 1" \
--session isolated \
--message "Query my Notion Tasks database. Summarize: how many tasks are overdue, how many are in progress, and what's due this week. Send the summary." \
--announce --channel telegram
# Auto-archive completed tasks — every Friday at 5pm
openclaw cron add \
--name "Notion cleanup" \
--cron "0 17 * * 5" \
--session isolated \
--model "google/gemini-2.5-flash" \
--message "Query my Notion Tasks database for items with Status 'Done' and Due Date older than 2 weeks. Move them to the Archive database."
Tips
Notion is cloud-based, so it works regardless of where OpenClaw runs — local machine, VPS, Docker container, or Raspberry Pi. This makes it the most portable note-taking integration compared to obsidian (local files only) or apple-notes (macOS only).
For meeting notes, combine the notion skill with your calendar skill: "After my 2pm meeting, create a Notion page in Meeting Notes with today's date, attendees from the calendar event, and a template for action items."
Notion's API uses a version header (currently 2025-09-03). The skill handles this automatically, but if you encounter version errors after a Notion API update, check for a skill update: clawhub update notion.