Skip to content

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 · 复盘 → 周报数据汇总

1. 「+ 新建」 → "复盘 → 画像"
2. 触发器: 新增记录 v06_复盘归档
3. 动作: 修改 v06_甲方画像 "历次反馈摘要" 字段

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