Base Automation Extension 部署文档 (v0.6)¶
用途: 在飞书 Bitable base 内加按钮/字段触发, 实现 in-base 自动化 配套:
scripts/base_extension_p0_button.js
0. 什么是 Base Automation Extension¶
飞书 Bitable 内置的"无代码自动化"工具, 80% 场景不需要写代码。
| 触发器类型 | 例子 |
|---|---|
| 字段值变化 | "状态" 从 open → 整改中 |
| 按钮被点击 | PM 点 "整改" 按钮 |
| 定时器 | 每天 09:00 跑 |
| 新增记录 | 有新 P0 红线就触发 |
| Webhook 接收 | 外部系统 POST 调 base |
| 动作类型 | 例子 |
|---|---|
| 更新本表字段 | 把"状态" 改为 "已修" |
| 新增其他表记录 | 触红线 → 自动加 1 行复盘 |
| 发飞书 IM | 通知整改人 |
| 调外部 Webhook | POST 到 chunx 后端 |
1. 立即可做的 3 个自动化¶
自动化 1 · P0 触红线 → 自动通知¶
场景: v06_P0红线 新增 1 行, 自动 @ 整改人发飞书 IM
1. base → 「⋯ → 自动化」
2. 「+ 新建」 → 命名 "P0 触红线通知"
3. 触发器: 新增记录 v06_P0红线, 状态 = "open"
4. 动作 1: 发飞书消息, 接收人 ${整改人}, 内容 "🚨 P0 ${P0 编号} 触红线! 24h 内处理"
5. 动作 2: 修改记录 "状态" = "整改中"
6. 保存 + 测试
自动化 2 · 项目立项 → 自动建 12 步任务¶
场景: v06_项目立项 新增 → v06_生产进度 加 12 行
1. 「+ 新建」 → "项目立项联动"
2. 触发器: 新增记录 v06_项目立项
3. 循环: 12 步骤每个加 1 行
Task ID = ${项目ID}-T${step_num:02d}
脚本名 = ${12 步骤名}
自动化 3 · 复盘 → 周报数据汇总¶
2. JS 扩展 (复杂逻辑)¶
参考 scripts/base_extension_p0_button.js。
部署步骤¶
1. base 「⋯ → 自动化 → + 新建 → 高级 → JavaScript」
2. 粘贴 base_extension_p0_button.js 内容
3. 配触发条件 (字段变化/按钮/定时)
4. 测试 → 启用
JS API 速查¶
const { record } = context;
const val = record.getCellValueString('字段名');
await record.updateCellValue('字段名', { text: '新值' });
const otherTable = await base.getTable('v06_甲方画像');
const records = await otherTable.queryAllRecords();
await otherTable.createRecord({ '字段名': '值' });
// 外部 API 需通过 base 自动化的"调用 webhook" 动作
3. 录屏教程脚本 (建议自录)¶
视频 1 · 5 分钟配第 1 个自动化¶
00:00 进入 base, 介绍 v06_P0红线 表
00:30 「⋯ → 自动化」
01:00 「+ 新建」 → 选「新增记录触发」
01:30 配触发器: v06_P0红线, 状态=open
02:30 加动作: 发飞书 IM 给 ${整改人}
03:30 加动作: 改 状态 为 "整改中"
04:00 测试: 手动加 1 行, 看 IM 到达
05:00 启用
视频 2 · 10 分钟写 JS 扩展¶
00:00 场景: P0 按钮点击触发整改
01:00 「⋯ → 自动化 → + 新建 → 高级 → JS」
02:00 粘贴 base_extension_p0_button.js
04:00 配触发器: 字段 "整改按钮" 点击
05:00 调试: console.log 看字段值
07:00 加 try/catch
09:00 测试 + 保存
视频 3 · Webhook 集 chunx 后端¶
00:00 base 触发 → 调 chunx FastAPI → 跑 audit_3skill.py
01:00 准备 FastAPI 1 endpoint
03:00 base 加「调用 Webhook」动作
05:00 配 URL + Headers + Body
07:00 测试看后端日志
09:00 错误处理 + 重试
4. 故障排查¶
| 现象 | 原因 | 修 |
|---|---|---|
| 触发不响应 | 自动化未启用 | 列表看是否绿色 |
| 字段读不到 | 字段名拼写错 | record.fieldList 看真实名 |
| IM 发不出去 | 接收人 open_id 错 | 用 ${user_open_id} |
| webhook 超时 | 后端 30s 不响应 | 立即返 ack + 异步 |
| 字段更新被覆盖 | 并发写 | revision 乐观锁 |
5. Self-hosting Extension (进阶)¶
1. 开发: @base-open-sdk/base-extension-sdk
2. 打包: npm run build
3. 发布到企业 npm 私服
4. 安装: base 「⋯ → 扩展商店 → 安装自有扩展」
参考: https://open.feishu.cn/document/base-extensions/base-automation-extension-development-guide
6. 推荐路线¶
Week 1: 无代码自动化 3 个 (P0/立项/复盘)
Week 2: JS 扩展 1 个 (复杂按钮)
Week 3: Webhook 集 chunx 后端
Month 2+: Self-hosting Extension
归属: ~/.claude/skills/ecc-shared/sop/07_BaseExtension部署文档.md
配套: scripts/base_extension_p0_button.js