← Back to Integrations

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

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.

Recommended Next Steps