Problem: Manual Note-Taking Kills Productivity
You're juggling Notion for project docs, Obsidian for personal knowledge, and manually copying information between them. OpenClaw can automate this entire workflow through chat.
You'll learn:
- Set up OpenClaw with Notion and Obsidian skills
- Automate bidirectional sync between both tools
- Create proactive workflows with Heartbeat
Time: 20 min | Level: Intermediate
Why This Works
OpenClaw is a self-hosted AI agent (68k+ GitHub stars) that runs on your machine with direct file system access. Unlike ChatGPT or Claude.ai, it can actually read and write to your local Obsidian vault and call Notion's API to create/update pages automatically.
Common use cases:
- Daily journal entries synced to both systems
- Meeting notes from Notion → Obsidian permanent notes
- Task management across platforms
- Automated knowledge base updates
Prerequisites
Required:
- Node.js 22+ installed
- OpenClaw installed (see below if not)
- Notion account (free tier works)
- Obsidian vault on local machine
Check Node version:
node --version
# Should show v22.x or higher
Quick OpenClaw install (if needed):
# macOS/Linux
curl -fsSL https://openclaw.ai/install.sh | bash
# Windows PowerShell
iwr -useb https://openclaw.ai/install.ps1 | iex
Solution
Step 1: Install OpenClaw Skills
# Install Notion skill
openclaw skill install notion
# Install Obsidian skill
openclaw skill install obsidian
# Verify installation
openclaw skill list | grep -E "notion|obsidian"
Expected output:
✓ notion (enabled)
✓ obsidian (enabled)
If skills are missing:
- Error: "Skill not found" → Update OpenClaw:
npm install -g openclaw@latest - Permission denied → Run with sudo on Linux/macOS
Step 2: Configure Notion Integration
Create a Notion internal integration to get your API key.
In your browser:
- Go to https://www.notion.so/my-integrations
- Click "+ New integration"
- Set these fields:
- Name: OpenClaw AI
- Associated workspace: Your workspace
- Capabilities: ✓ Read, ✓ Update, ✓ Insert content
- Click Save and copy the
secret_...token
Add token to OpenClaw:
# Edit config file
nano ~/.openclaw/config/skills/notion.yaml
Paste this configuration:
notion:
enabled: true
api_token: "secret_YOUR_NOTION_INTEGRATION_TOKEN"
api_version: "2022-06-28"
default_workspace_id: "YOUR_WORKSPACE_ID"
Why this works: Notion uses OAuth for internal integrations. The token gives OpenClaw read/write access to pages you explicitly share with it.
Grant page access:
- Open any Notion page or database
- Click "..." (three dots) → "Add connections"
- Select "OpenClaw AI"
Step 3: Configure Obsidian Integration
OpenClaw works with Obsidian vaults as plain Markdown folders—no plugin required.
Find your vault path:
# macOS
cat ~/Library/Application\ Support/obsidian/obsidian.json | grep path
# Linux
cat ~/.config/obsidian/obsidian.json | grep path
# Windows
type %APPDATA%\obsidian\obsidian.json | findstr path
Configure OpenClaw to use your vault:
# Edit TOOLS.md to tell OpenClaw about your vault
nano ~/.openclaw/workspace/TOOLS.md
Add this section:
## Obsidian Vault
My main vault is located at: `/Users/yourname/Documents/ObsidianVault`
Folder structure:
- Daily Notes: `Daily/`
- Permanent Notes: `Zettelkasten/`
- Projects: `Projects/`
- People: `People/`
When creating notes:
- Use [[wikilinks]] for internal references
- Save daily notes as `YYYY-MM-DD.md`
- Tag with #openclaw for synced content
If vault not detected:
- Multiple vaults: Specify which one in TOOLS.md
- iCloud vault: Use full path like
/Users/name/Library/Mobile Documents/iCloud~md~obsidian/Documents/VaultName
Step 4: Test the Integration
Test Notion write:
openclaw chat "Create a new Notion page titled 'OpenClaw Test' with today's date"
Check Notion → You should see the new page
Test Obsidian write:
openclaw chat "Create a note in my Obsidian daily notes folder for today with a task: Test OpenClaw integration"
Open Obsidian → Refresh to see the new note
Test bidirectional sync:
openclaw chat "Read my latest Obsidian daily note and create a summary in Notion under 'Daily Summaries' database"
If it fails:
- Notion error 401: Token expired or not shared with integration
- Obsidian path error: Check vault path in TOOLS.md
- Permission error: OpenClaw needs write access to vault folder
Step 5: Create Automated Workflows
Build a workflow that syncs notes automatically using Heartbeat (OpenClaw's background scheduler).
Edit Heartbeat config:
nano ~/.openclaw/workspace/HEARTBEAT.md
Add this workflow:
# Automated Note Sync
## Active Hours: 8:00 AM - 10:00 PM
### Every 2 hours during active hours:
1. Check Obsidian Daily Note for entries tagged #sync
2. If new entries exist:
- Extract tasks and notes
- Create/update Notion page in "Daily Work" database
- Add link back to Obsidian note
3. Send me HEARTBEAT_OK if nothing to sync
### Every evening at 8 PM:
1. Generate daily summary from Obsidian notes
2. Create Notion page titled "Daily Summary - [DATE]"
3. Message me with summary on WhatsApp
### Important:
- Only sync notes with #sync tag
- Don't sync notes in Archive/ folder
- Use Notion database ID: abc123xyz (your actual DB ID)
Enable Heartbeat:
# Edit OpenClaw config
nano ~/.openclaw/config.json
Set heartbeat interval:
{
"heartbeat": {
"enabled": true,
"interval_minutes": 30,
"active_hours": {
"start": "08:00",
"end": "22:00"
}
}
}
Restart OpenClaw gateway:
openclaw gateway restart
Why this works: Heartbeat runs every 30 minutes, reads HEARTBEAT.md, and decides if action is needed. It only messages you when there's something important—not on every check.
Step 6: Advanced Automation Examples
Meeting notes workflow:
openclaw chat "Set up a workflow: When I create a note in Obsidian tagged #meeting, automatically create a Notion page in my Meetings database with action items extracted"
Knowledge capture:
openclaw chat "Every time I add a note to Obsidian/Zettelkasten/, scan for [[wikilinks]] and update my Notion 'Knowledge Graph' database with connections"
Daily journal:
openclaw chat "At 9 PM daily, ask me 'How was your day?' via WhatsApp. Take my response and save it to both Obsidian Daily Note and Notion Journal database"
Task management:
openclaw chat "Sync tasks: Read todos from Obsidian daily note, create Notion database entries with status 'Todo', and update Obsidian when I mark them Done in Notion"
Verification
Test the setup:
# Check skills are active
openclaw skill list
# View recent logs
tail -f ~/.openclaw/logs/skills.log | grep -E "notion|obsidian"
# Trigger manual heartbeat
openclaw chat "/heartbeat"
You should see:
- No errors in logs
- Notion pages being created
- Obsidian notes updating
What You Learned
- OpenClaw uses "skills" as modular plugins for integrations
- Notion requires explicit page-level permission grants
- Obsidian works as plain Markdown—OpenClaw edits files directly
- Heartbeat enables proactive automation without manual triggers
Limitations:
- Notion API rate limit: 3 requests/second (batch operations for high volume)
- OpenClaw runs locally—machine must stay on for 24/7 automation
- Token costs: Opus 4.5 at ~$15-30/day for heavy heartbeat usage
Cost optimization:
- Use Claude Sonnet 4.5 instead of Opus ($5-10/day)
- Increase heartbeat interval to 60 minutes
- Limit active hours to work time only
Security Considerations
Critical security notes:
Never commit API tokens to version control
# Add to .gitignore echo "*.openclaw/config/" >> .gitignoreRun OpenClaw on a dedicated machine or VPS
- Don't run on your main work computer with sensitive files
- Consider using DigitalOcean 1-Click OpenClaw Deploy ($24/month)
Limit Notion integration permissions
- Only share specific pages, not entire workspace
- Use separate Notion workspace for OpenClaw if handling sensitive data
Obsidian vault isolation
- Create a separate vault for OpenClaw-managed notes
- Use symbolic links to sync specific folders only
Review HEARTBEAT.md regularly
- OpenClaw has full file system access during heartbeats
- Audit what it's programmed to do automatically
Read more: OpenClaw Security Best Practices
Troubleshooting
Notion "Cannot find database"
# Get database ID from Notion URL
# https://notion.so/workspace/DATABASE_ID?v=...
# Copy the DATABASE_ID part
openclaw chat "List all Notion databases I have access to"
Obsidian notes not syncing
# Check vault is detected
openclaw chat "What is my Obsidian vault path?"
# Manually set if wrong
nano ~/.openclaw/workspace/TOOLS.md
Heartbeat not triggering
# Check gateway status
openclaw gateway status
# View heartbeat logs
tail -f ~/.openclaw/logs/heartbeat.log
# Test manually
openclaw chat "/heartbeat"
High token usage
# Check daily spend
openclaw chat "What's my Claude API usage today?"
# Reduce heartbeat frequency
# Edit ~/.openclaw/config.json → set interval_minutes: 120
Tested on OpenClaw v3.2.1, Node.js 22.x, macOS Sonoma, Notion API 2022-06-28 Total setup time: 18 minutes on fresh install