Lark-workflow-feishu-cli lark-workflow-approval-reminder
审批催办机器人:自动查询待审批实例,定位当前审批人并发送催办提醒,支持逐级升级催办策略。当用户需要'催审批'、'催办'、'审批提醒'、'提醒审批人'、'跟进审批流程'、'审批到谁了'时使用。
install
source · Clone the upstream repo
git clone https://github.com/liangdabiao/lark-workflow-feishu-cli
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/liangdabiao/lark-workflow-feishu-cli "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/lark-workflow-approval-reminder" ~/.claude/skills/liangdabiao-lark-workflow-feishu-cli-lark-workflow-approval-reminder && rm -rf "$T"
manifest:
.claude/skills/lark-workflow-approval-reminder/SKILL.mdsource content
审批催办机器人工作流
CRITICAL — 开始前 MUST 先用 Read 工具读取
,其中包含认证、权限处理../lark-shared/SKILL.md
适用场景
- "帮我催一下那个报销审批" / "催审批"
- "审批单12345到谁手里了?" / "审批到谁了"
- "帮我催办一下审批流程" / "催办"
- "提醒一下审批人处理审批" / "审批提醒"
- "跟进一下XXX的审批进度" / "跟进审批流程"
前置条件
需要 user 身份(查询审批)和 bot 身份(发消息催办)。
lark-cli auth login --domain im,contact --scope "approval:instance:readonly"
注意:审批 API 未被 lark-cli 直接封装,需要使用
调用。首次使用前,参考lark-cli api确认 API 路径。../lark-openapi-explorer/SKILL.md
工作流
{审批实例 ID 或 approval_code} │ ├── lark-cli api GET ────────────► 查询审批实例状态 │ /approval/v4/instances/{id} │ ├── AI 提取当前审批人 ───────────► approver_open_id │ ├── contact +search-user ─────────► 获取审批人信息(姓名等) │ ├── im +messages-send ────────────► 发送催办消息 │ └── [超24h未处理] ────────────────► 升级催办策略 ├── 群内 @催办 └── 通知上级/HR
Step 1: 查询审批实例状态
方式一:按实例 ID 查询
如果用户提供了审批实例 ID:
MSYS_NO_PATHCONV=1 lark-cli api GET "/open-apis/approval/v4/instances/<instance_id>" \ --as user
方式二:按审批定义 code 查询
如果用户提供了审批定义的 code(或名称):
# 先通过 openapi-explorer 确认 API 路径 # 查询待审批实例列表 MSYS_NO_PATHCONV=1 lark-cli api GET "/open-apis/approval/v4/instances" \ --params '{ "approval_code": "<approval_code>", "status": "1", "page_size": 50 }' \ --as user
status 参数说明:
— 审批中(待处理)1
— 已通过2
— 已拒绝3
— 已撤销4
— 已转交6
API 文档确认
审批 API 未被 lark-cli 直接封装。调用前,建议使用 openapi-explorer 模式确认最新 API 路径和参数:
- 获取顶层索引:
https://open.feishu.cn/llms.txt- 找到审批模块文档链接
- 确认具体 API 的参数和响应格式
Step 2: 提取当前审批人
从审批实例详情中提取:
— 实例编号instance_code
— 审批标题title
— 当前状态status- 当前审批节点和审批人信息
AI 从返回结果中分析出当前待处理的审批节点和对应的审批人。
审批人可能是个人(
open_id)也可能是群组,需要分别处理。
Step 3: 查找审批人信息
lark-cli contact +search-user --query "<审批人姓名>" --as user
获取审批人的
open_id。
Step 4: 发送催办消息
lark-cli im +messages-send \ --user-id "<approver_open_id>" \ --markdown "审批催办提醒 审批单:{审批标题} 审批编号:{instance_code} 提交时间:{submit_time} 当前状态:待您审批 请您尽快处理,如有问题请联系发起人。" \ --as bot
Step 5: 升级催办(可选)
如果审批已超过 24 小时未处理,启动升级策略:
第二级:群内 @催办
lark-cli im +messages-send \ --chat-id "<相关群chat_id>" \ --markdown '<at user_id="ou_xxx"></at> 您有一笔审批单待处理已超过 24 小时,请尽快处理: 审批单:{审批标题} 审批编号:{instance_code}' \ --as bot
第三级:通知上级
如果超过 48 小时仍未处理,通知审批人的直属上级或发起人:
lark-cli im +messages-send \ --user-id "<上级或发起人_open_id>" \ --markdown "审批超时通知 审批单:{审批标题} 审批编号:{instance_code} 当前审批人:{审批人姓名} 等待时间:{N} 小时 请协助推动审批流程。" \ --as bot
降级策略
| 场景 | 降级方案 |
|---|---|
| 审批 API 不可用 | 提示用户检查 approval 权限是否开通 |
| 查不到审批实例 | 提示用户确认实例 ID 或审批名称 |
| 审批人查不到 | 使用返回的 open_id 直接发送消息 |
| 消息发送失败 | 输出催办信息让用户手动通知 |
| 无群聊可 @ | 跳过群内 @催办,直接通知个人 |
| 审批已完成 | 告知用户"该审批已处理完毕",无需催办 |
权限表
| 命令 | 所需 scope |
|---|---|
| |
| |
| |
参考
— 原生 API 调用模式(审批 API 未封装,需用此模式)../lark-openapi-explorer/SKILL.md
— 消息发送../lark-im/SKILL.md
— 通讯录查询../lark-contact/SKILL.md