把 Notion 接入 OpenClaw,让 AI 助手能读取你的知识库、创建会议记录、更新任务状态—— 全部通过 Telegram 的自然语言指令完成,不需要打开 Notion。
配置 Notion API
Step 1:创建 Notion Integration
- 访问 notion.so/my-integrations
- 点击「+ New integration」
- 名称:
OpenClaw Assistant - 权限:Read content ✅、Insert content ✅、Update content ✅
- 复制 Internal Integration Token(
secret_开头)
Step 2:授权页面/数据库
Notion 权限是页面级的,需要手动授权:
- 打开要让 AI 访问的页面/数据库
- 右上角「...」->「Connect to」-> 选择
OpenClaw Assistant
Step 3:OpenClaw 配置
json
// ~/.openclaw/config.json
{
"integrations": {
"notion": {
"enabled": true,
"apiKey": "secret_你的integration-token",
"defaultDatabases": {
"tasks": "数据库ID(32位字符串,从URL获取)",
"meetings": "会议记录数据库ID",
"knowledge": "知识库数据库ID"
}
}
}
}数据库 ID 从 URL 获取:notion.so/workspace/[这里就是ID]?v=...
日常对话场景
创建会议记录
你:帮我在 Notion 创建今天产品评审会的会议记录
参与人:张三、李四、王五
议题:Q2 路线图讨论
助手:已在「会议记录」数据库创建:
📋 产品评审会 - 2026/03/16
参与人:张三、李四、王五
议题:Q2 路线图讨论
[已创建页面链接]
需要我帮你添加会议纪要内容吗?
查询任务
你:帮我查一下 Notion 里本周到期的任务
助手:本周到期任务(3个):
⚠️ 高优先级:完成 API 文档 - 明天截止
📌 中优先级:更新用户手册 - 周四
✅ 低优先级:整理设计素材 - 周五
知识库问答
你:我们的 API 认证方式是什么?(在 Notion 技术文档里)
助手:根据技术文档《API 规范 v2.3》:
认证使用 Bearer Token,放在 Authorization 请求头。
Token 有效期 7 天,通过 /auth/refresh 刷新。
详细示例见:[Notion 页面链接]
批量更新任务状态
你:把 Notion 里所有标签为「待测试」的任务改为「测试中」
助手:找到 12 个「待测试」任务,确认批量更新为「测试中」吗?
[确认] [取消] [先给我看清单]
自动化工作流
会议前自动准备
bash
openclaw cron add --schedule "0 9 * * 1-5" --task "读取 Google Calendar 今天的会议,
对每个有 Notion 会议记录数据库关联的会议:
1. 检查是否已有对应页面,没有就创建
2. 拉取上次同名会议的 Action Items 作为背景
3. 发 Telegram 提醒:今日会议列表 + Notion 链接"每日任务日报同步
bash
openclaw cron add --schedule "0 18 * * 1-5" --task "读取 Notion 任务数据库:
- 今天完成的任务(状态=完成)
- 今天新增的任务
- 逾期未完成的任务
生成日报发 Telegram,
同时在 Notion 「日报」数据库创建今天的记录"周报自动生成
bash
openclaw cron add --schedule "0 17 * * 5" --task "读取 Notion 本周所有完成的任务和会议记录,
自动生成周报草稿:
- 本周完成事项(按项目分组)
- 重要决策和结论
- 下周计划(基于未完成任务)
在 Notion 「周报」数据库创建页面,
发链接到 Telegram 让我审阅"HEARTBEAT 配置(Notion 监控)
markdown
# HEARTBEAT.md
## Notion 任务检查
每次心跳检查:
- 今天截止的任务(还没完成的)
- 被分配给我的新任务
- 距离截止 < 2 天的高优先级任务
如果有:发 Telegram 提醒(简洁,不超过 3 条)常用 Notion 数据库操作代码
如需直接用 API 操作:
python
from notion_client import Client
notion = Client(auth="secret_你的token")
# 查询数据库
results = notion.databases.query(
database_id="你的数据库ID",
filter={
"property": "Status",
"select": {"equals": "In Progress"}
},
sorts=[{"property": "Due Date", "direction": "ascending"}]
)
# 创建页面
notion.pages.create(
parent={"database_id": "数据库ID"},
properties={
"Name": {"title": [{"text": {"content": "新任务"}}]},
"Status": {"select": {"name": "Todo"}},
"Due Date": {"date": {"start": "2026-03-20"}}
}
)来源:OpenClaw 官方文档 | Notion API 文档