Install
openclaw skills install @thcjp/notionopenclaw skills install @thcjp/notion核心功能: 本技能提供中文交互、化工作流场景等能力。
| 能力 | 免费版 | 付费版 |
|---|---|---|
| 基础功能 | 支持 | 支持 |
| NotionAPI创建管理 | 不支持 | 支持 |
| 大数据集流式处理 | 不支持 | 支持 |
| 多数据源关联查询 | 不支持 | 支持 |
| 可视化图表自动生成 | 不支持 | 支持 |
| 定时数据同步与增量更新 | 不支持 | 支持 |
详细的输入输出格式请参考下方章节说明。
| 场景 | 输入 | 输出 |
|---|---|---|
| 项目管理 | 项目名称与任务列表 | Notion数据库 + 任务页面 + 属性配置 |
| 知识库构建 | 文档分类与内容 | 结构化页面树 + 数据库索引 + 关联关系 |
| 会议记录 | 会议时间与参会人 | 会议笔记页面 + 任务分配数据库 + 关联页面 |
| 数据导入 | CSV/JSON数据 | Notion数据库条目 + 属性映射 + 批量创建 |
| 自动化工作流 | 触发条件与操作 | 定时创建页面 + 属性更新 + 状态流转 |
不适用于:Notion页面实时协作编辑、Notion评论管理、Notion工作区设置管理、文件上传(需配合files API)
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| content | string | 否 | 操作描述或JSON格式的页面/块内容 |
| operation | string | 否 | 操作类型,可选值: create_page/query_db/append_blocks/search/update_page,默认 search |
| database_id | string | 否 | 目标数据库ID(查询/创建数据库条目时使用) |
| page_id | string | 否 | 目标页面ID(追加块/更新页面时使用) |
| token | string | 否 | Notion Integration Token,也可通过环境变量 NOTION_TOKEN 配置 |
| style | string | 否 | 输出风格, 参考 references/style.md |
{
"success": true,
"data": {
"page": {
"id": "page-uuid-string",
"url": "https://notion.so/page-uuid-string",
"properties": {
"Name": {
"title": [{"text": {"content": "新任务"}}]
},
"Status": {
"select": {"name": "进行中", "color": "blue"}
}
}
},
"metadata": {
"template_used": "reviewer",
"operation": "create_page",
"blocks_created": 3,
"style": "专业"
}
},
"error": null
}
输出模板参考: assets/output.json
{
"operation": "create_page",
"database_id": "abc123def456",
"content": {
"Name": {"title": [{"text": {"content": "修复登录Bug"}}]},
"Status": {"select": {"name": "待处理"}},
"Priority": {"select": {"name": "高"}},
"Due Date": {"date": {"start": "2024-01-20"}},
"Tags": {"multi_select": [{"name": "前端"}, {"name": "紧急"}]}
}
}
{
"operation": "query_db",
"database_id": "abc123def456",
"content": {
"filter": {
"and": [
{"property": "Status", "select": {"equals": "待处理"}},
{"property": "Priority", "select": {"equals": "高"}}
]
},
"sorts": [
{"property": "Due Date", "direction": "ascending"}
],
"page_size": 10
}
}
{
"operation": "append_blocks",
"page_id": "page-uuid-string",
"content": {
"children": [
{
"object": "block",
"type": "heading_2",
"heading_2": {"rich_text": [{"type": "text", "text": {"content": "会议纪要"}}]}
},
{
"object": "block",
"type": "bulleted_list_item",
"bulleted_list_item": {"rich_text": [{"type": "text", "text": {"content": "讨论了Q1路线图"}}]}
},
{
"object": "block",
"type": "to_do",
"to_do": {"rich_text": [{"type": "text", "text": {"content": "完成API文档"}}], "checked": false}
},
{
"object": "block",
"type": "code",
"code": {"rich_text": [{"type": "text", "text": {"content": "npm install"}}], "language": "bash"}
}
]
}
}
{
"operation": "search",
"content": {
"query": "项目计划",
"filter": {"property": "object", "value": "page"},
"page_size": 5
}
}
| 块类型 | API字段名 | 说明 |
|---|---|---|
| 段落 | paragraph | 普通文本段落 |
| 一级标题 | heading_1 | H1标题 |
| 二级标题 | heading_2 | H2标题 |
| 三级标题 | heading_3 | H3标题 |
| 无序列表项 | bulleted_list_item | 圆点列表 |
| 有序列表项 | numbered_list_item | 数字列表 |
| 待办事项 | to_do | 复选框,支持checked属性 |
| 代码块 | code | 支持language属性 |
| 引用 | quote | 引用块 |
| 分割线 | divider | 水平分割线 |
| 切换块 | toggle | 可折叠内容块 |
| 呼叫块 | callout | 高亮提示框 |
secret_xxxxxxxxxxxx,以环境变量 NOTION_TOKEN 存储title 类型,每个数据库只能有一个标题属性{"start": "2024-01-20", "end": "2024-01-21"}append_blocks 最多创建100个块,超出需分批请求query_db 默认返回10条,最大100条,通过 start_cursor 分页获取| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent内置LLM提供 |
| Notion Integration Token | API | 必需 | https://notion.so/my-integrations |
API Key配置方式:
export NOTION_TOKEN="secret_your_integration_token_here"
配置后需重启会话或开启新终端生效。API Key应妥善保管,避免泄露到版本控制系统.
A: 首先在 https://notion.so/my-integrations 创建Internal Integration,获取Token(secret_ 开头)。然后在Notion中打开要操作的页面或数据库,点击右上角"..." → "Connections" → 搜索并添加你的Integration。最后将Token设置为环境变量 NOTION_TOKEN,即可通过 create_page、query_db、append_blocks 等操作管理Notion内容。
A: 此错误表示Integration没有访问目标资源的权限。Notion的权限模型要求每个页面/数据库单独授权。解决方法:打开目标页面 → "..." → "Connections" → 添加Integration。注意:如果页面在子页面中,需要对父页面授权,子页面会继承权限。
A: Notion的富文本通过 rich_text 数组实现,每个元素可指定不同样式。例如加粗文本:{"type": "text", "text": {"content": "重要"}, "annotations": {"bold": true}}。链接文本:{"type": "text", "text": {"content": "点击这里", "link": {"url": "https://example.com"}}}。一个 rich_text 数组可包含多个不同样式的文本段。
A: 筛选使用 filter 对象,支持 and/or 组合条件。单属性筛选:{"property": "Status", "select": {"equals": "进行中"}}。多属性组合:{"and": [{"property": "Status", "select": {"equals": "进行中"}}, {"property": "Priority", "select": {"equals": "高"}}]}。每种属性类型有不同的筛选操作符:select支持 equals/does_not_equal,date支持 before/after/on_or_before,text支持 contains/starts_with。
| 错误场景(续) | 原因 | 处理方式 |
|---|---|---|
| LLM响应超时或无响应 | 网络延迟或模型负载过高 | 重试请求;确认Agent平台LLM服务正常 |
| 输入内容格式不正确 | 用户输入不符合skill预期格式 | 检查输入是否符合skill使用说明中的格式要求,参考示例章节 |
| 执行结果与预期不符 | 指令描述不够明确或上下文不足 | 提供更详细的指令描述,补充必要的上下文信息 |
| 命令执行失败 | 运行环境不满足要求或权限不足 | 确认运行环境符合依赖说明中的要求;检查命令权限设置 |
| 401 Unauthorized | Token无效或过期 | 重新生成Integration Token,更新环境变量 |
| 404 object_not_found | Integration未授权访问目标资源 | 在Notion页面中添加Integration连接 |
| 429 rate_limited | API请求频率超限(3次/秒) | 降低请求频率,添加请求间隔延迟 |
| 操作步骤 | 手动耗时 | 自动化耗时 | 时间节约 | 准确率提升 |
|---|---|---|---|---|
| 创建新页面 | 10分钟 | 1分钟 | 9分钟 | 100% |
| 更新数据库记录 | 20分钟 | 2分钟 | 18分钟 | 100% |
| 批量导入数据 | 1小时 | 15分钟 | 45分钟 | 100% |
| 搜索特定信息 | 30分钟 | 5分钟 | 25分钟 | 100% |
| 生成可视化图表 | 2小时 | 30分钟 | 1.5小时 | 100% |
| 对比维度 | 本技能 | 手动操作 | Python脚本 | 专业软件 |
|---|---|---|---|---|
| 易用性 | 高 | 低 | 中 | 高 |
| 功能丰富度 | 高 | 低 | 中 | 高 |
| 成本 | 低 | 中 | 高 | 高 |
| 学习曲线 | 低 | 高 | 中 | 高 |
| 扩展性 | 高 | 低 | 中 | 高 |
| 痛点 | 描述 | 影响范围 | 解决方案 | 量化效果 |
|---|---|---|---|---|
| 数据手动录入 | 效率低,易出错 | 影响工作效率和准确性 | 自动化数据录入 | 时间节约50%,错误率降低至1% |
| 信息检索困难 | 难以快速找到所需信息 | 影响决策效率 | 搜索功能,快速定位信息 | 信息检索时间缩短80% |
| 数据同步复杂 | 数据在不同系统间同步困难 | 影响协作效率 | 自动化数据同步 | 数据同步时间缩短70% |
| 错误现象 | 可能原因 | 诊断步骤 | 解决方案 |
|---|---|---|---|
| 无法创建页面 | Notion API Token失效 | 检查Token是否过期或正确 | 重新生成Token或更新Token |
| 数据库查询无结果 | 查询条件错误或数据库结构问题 | 检查查询条件和数据库结构 | 修正查询条件或调整数据库结构 |
| 块内容无法追加 | 页面ID错误或权限问题 | 检查页面ID和权限 | 确保页面ID正确且具有追加内容的权限 |
| 自动化任务失败 | 依赖的服务不可用或配置错误 | 检查依赖服务状态和配置 | 修复依赖服务或调整配置 |
| 风险项 | 等级 | 防护措施 | 验证方法 |
|---|---|---|---|
| API密钥泄露 | 高 | 通过环境变量配置,禁止硬编码 | 定期检查代码和配置文件 |
| 命令执行风险 | 高 | 仅执行白名单命令,避免拼接用户输入 | 使用沙箱环境测试 |
| 网络通信安全 | 中 | 使用HTTPS协议,验证SSL证书 | 定期检查证书有效期 |
| 敏感数据暴露 | 高 | 输出结果中不包含密钥、令牌等敏感信息 | 日志脱敏审查 |
| 未授权访问 | 中 | 限制访问权限,实施认证机制 | 定期审计访问日志 |
A1: "Notion API创建管理页面/数据库/块。Notion API for creating and managing pages, databases,。支持文本指令和结构化参数输入,具体格式参考使用流程章节。
A2: 是的,部分功能需要配置对应平台的API Key。请在依赖说明章节查看具体要求,并通过环境变量安全配置。
A3: 检查命令参数是否正确,确认运行环境支持exec能力。如遇权限问题,请参照错误处理章节排查。