원클릭으로
lark-workflow-bitable-sync
// 跨表数据同步器:从源多维表格读取数据,与目标表进行比对去重,将差异数据写入目标表。支持字段映射、增量同步、变更报告。当用户需要'数据同步'、'跨表同步'、'合并表格'、'数据迁移'、'表间数据同步'、'把A表的数据同步到B表'时使用。
// 跨表数据同步器:从源多维表格读取数据,与目标表进行比对去重,将差异数据写入目标表。支持字段映射、增量同步、变更报告。当用户需要'数据同步'、'跨表同步'、'合并表格'、'数据迁移'、'表间数据同步'、'把A表的数据同步到B表'时使用。
微型团队CRM:基于飞书多维表格的客户管理、商机漏斗、跟进记录、看板视图、仪表盘和自动化提醒。当用户需要以下操作时触发:系统搭建('创建CRM'、'搭建销售管理系统'、'新建CRM系统');客户管理('新增客户'、'客户建档'、'客户列表'、'修改客户'、'删除客户');商机管理('创建商机'、'商机列表'、'商机跟进'、'推进商机'、'赢单'、'丢单');跟进记录('记录跟进'、'跟进记录'、'销售日报'、'沟通记录');漏斗查询('销售漏斗'、'商机阶段'、'本月赢单'、'业绩统计');自动化提醒('跟进提醒'、'超时预警'、'赢单报喜'、'周报');表单收集('创建客户登记表'、'咨询表单');仪表盘('销售看板'、'创建仪表盘')。
进销存ERP系统:基于飞书多维表格实现货品管理、入库、出库、库存预警、数据分析。当用户需要以下操作时触发:系统搭建('创建进销存系统'、'搭建库存管理'、'新建进销存');货品管理('新增货品'、'添加SKU'、'货品列表'、'修改货品');入库操作('入库'、'进货'、'采购入库'、'登记入库');出库操作('出库'、'领用'、'发货出库'、'登记出库');库存查询('查库存'、'库存清单'、'剩余多少'、'库存不足');库存预警('低库存预警'、'库存报警'、'缺货提醒');数据分析('入库汇总'、'出库统计'、'库存报表'、'滞销分析'、'库存周转');供应商管理('新增供应商'、'供应商列表'、'供货商');仪表盘('库存看板'、'创建仪表盘')。
群公告管理器:获取、设置、追加群公告内容,并通知群成员。当用户需要'群公告'、'发布公告'、'更新公告'、'设置群公告'、'追加公告'、'群通知'、'更新群公告'时使用。
审批催办机器人:自动查询待审批实例,定位当前审批人并发送催办提醒,支持逐级升级催办策略。当用户需要'催审批'、'催办'、'审批提醒'、'提醒审批人'、'跟进审批流程'、'审批到谁了'时使用。
群消息日报生成器:拉取指定群聊在时间范围内的消息记录,AI 自动提取关键信息,生成结构化日报并可选保存为文档或发送到群聊。当用户需要'群日报'、'群消息摘要'、'生成日报'、'群聊总结'、'今日群消息回顾'、'帮我总结一下群里聊了什么'时使用。
文档权限管家:批量设置飞书文档权限,按角色或人员批量授权(可编辑/只读/完整权限),通知被授权用户。当用户需要'设置文档权限'、'批量授权'、'文档权限管理'、'分享文档给团队'、'文档权限配置'、'把文档分享给XX'时使用。
| name | lark-workflow-bitable-sync |
| version | 1.0.0 |
| description | 跨表数据同步器:从源多维表格读取数据,与目标表进行比对去重,将差异数据写入目标表。支持字段映射、增量同步、变更报告。当用户需要'数据同步'、'跨表同步'、'合并表格'、'数据迁移'、'表间数据同步'、'把A表的数据同步到B表'时使用。 |
| metadata | {"requires":{"bins":["lark-cli"]}} |
CRITICAL — 开始前 MUST 先用 Read 工具读取 ../lark-shared/SKILL.md,其中包含认证、权限处理
仅支持 user 身份。执行前确保已授权:
lark-cli auth login --domain base
{源表 base_token + table_id} → {目标表 base_token + table_id}
│
├── base +field-list (源表) ──────► 源表字段结构
│
├── base +field-list (目标表) ────► 目标表字段结构
│
├── AI 字段映射 ──────────────────► 源字段 ↔ 目标字段(用户确认)
│
├── base +record-list (源表) ────► 拉取源数据(分页,max 200/页)
│
├── base +record-list (目标表) ──► 拉取目标现有数据(用于去重)
│
├── AI 数据比对去重 ──────────────► 差异记录集(新增 + 更新)
│
└── base +record-upsert (目标表) ─► 写入差异数据(串行,间隔 1s)
分别获取源表和目标表的字段列表:
# 源表字段
lark-cli base +field-list \
--base-token "<src_base_token>" \
--table-id "<src_table_id>" \
--as user
# 目标表字段
lark-cli base +field-list \
--base-token "<tgt_base_token>" \
--table-id "<tgt_table_id>" \
--as user
注意:两个
+field-list调用不能并发,必须串行。
根据两张表的字段名和类型,AI 自动生成字段映射方案:
## 字段映射方案
| 源字段 | 源类型 | → | 目标字段 | 目标类型 |
|--------|--------|---|---------|---------|
| 客户名称 | text | → | 公司名称 | text |
| 联系电话 | text | → | 电话 | text |
| 状态 | select | → | 跟进状态 | select |
| 创建时间 | datetime | → | 录入日期 | datetime |
**去重字段**:客户名称(以此字段判断记录是否已存在)
请确认此映射方案。
重要:
- 必须与用户确认字段映射方案后再执行同步
- 让用户指定去重字段(用于判断记录是否已存在)
- 只映射可写入字段(忽略公式、查找引用、系统字段)
# 拉取源表全部记录(分页,每页最多 200 条)
lark-cli base +record-list \
--base-token "<src_base_token>" \
--table-id "<src_table_id>" \
--as user
# 如果数据量大,使用分页
lark-cli base +record-list \
--base-token "<src_base_token>" \
--table-id "<src_table_id>" \
--limit 200 \
--as user
注意:每页最多 200 条记录。如果返回数据中有分页信息,继续使用 offset 拉取下一页。
# 拉取目标表现有记录(获取去重字段值)
lark-cli base +record-list \
--base-token "<tgt_base_token>" \
--table-id "<tgt_table_id>" \
--as user
对比源数据和目标数据,基于去重字段判断:
生成差异报告:
## 同步预览
| 类型 | 数量 |
|------|------|
| 新增记录 | N |
| 需更新记录 | N |
| 无变化记录 | N |
| **总计** | **N** |
### 新增记录预览(前 5 条)
| 客户名称 | 联系电话 | 状态 |
|---------|---------|------|
### 需更新记录预览(前 5 条)
| 客户名称 | 字段 | 旧值 | 新值 |
|---------|------|------|------|
确认执行同步?
对每条差异记录调用 +record-upsert(串行,间隔 1 秒):
lark-cli base +record-upsert \
--base-token "<tgt_base_token>" \
--table-id "<tgt_table_id>" \
--json '{"公司名称":"XX科技","电话":"13800138000","跟进状态":"新线索"}' \
--as user
sleep 1
先获取目标记录的 record_id,再更新:
lark-cli base +record-upsert \
--base-token "<tgt_base_token>" \
--table-id "<tgt_table_id>" \
--record-id "<existing_record_id>" \
--json '{"跟进状态":"已联系"}' \
--as user
sleep 1
注意:
- 每次调用间隔至少 1 秒
- 日期字段需要 Unix 毫秒时间戳(不是字符串)
- 人员字段格式为
[{"id":"ou_xxx"}]- 单选字段传选项名称字符串
| 场景 | 降级方案 |
|---|---|
| 字段类型不匹配 | 跳过不兼容字段,只同步兼容字段 |
| 目标表无匹配字段 | 提示用户在目标表创建对应字段 |
| 数据量过大 | 分批同步(每批 50 条) |
| 写入频率限制 | 降低到每 2 秒一条 |
| 字段映射不明确 | 询问用户确认映射关系 |
| 命令 | 所需 scope |
|---|---|
base +field-list | bitable:app:readonly |
base +record-list | bitable:app:readonly |
base +record-upsert | bitable:app |
../lark-base/SKILL.md — 多维表格原子操作