title: “影刀RPA 飞书审批自动化:提交审批与结果跟踪”
date: 2026-07-01
author: 林焱
影刀RPA 飞书审批自动化:提交审批与结果跟踪
公司用飞书OA,每次提交报销或请假都要手动填一堆表单,提交了还要盯着看有没有批。这种高度重复的操作,正是影刀的主场。
什么情况用什么
适合自动化的飞书审批场景:
批量提交费用报销(月底集中报销10+笔)
每周/每月固定提交的申请(固定IT采购申请)
监控审批状态并在通过后自动触发下一步操作
从其他系统(ERP、Excel)读取数据批量发起审批
不适合的场景:
- 审批内容每次都不同,需要人判断填什么
- 金额等关键字段需要人工核对再提交
拼多多店群自动化上架方案
怎么做
方法1:调用飞书开放平台API(推荐)
飞书有完整的开放API,可以用代码直接发起审批,无需操作界面。
第一步:获取应用凭证
- 进入飞书开放平台
https://open.feishu.cn - 创建企业自建应用
- 申请「审批」相关权限:
approval:approval查看审批定义approval:instance创建审批实例
- 获取
App ID和App Secret
【影刀操作】
新建流程「飞书审批自动提交」
添加【Python】指令(获取access_token)
importrequestsimportjson app_id='cli_xxxxxxxxx'app_secret='your_app_secret'# 获取tenant_access_tokenresp=requests.post('https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal',json={'app_id':app_id,'app_secret':app_secret})result=resp.json()access_token=result['tenant_access_token']yda.set_variable('access_token',access_token)print('Token获取成功')添加【Python】指令(发起审批)
importrequestsimportjson access_token=yda.get_variable('access_token')headers={'Authorization':f'Bearer{access_token}','Content-Type':'application/json'}# 发起审批实例(approval_code是审批定义的唯一标识,在飞书审批管理里查)payload={'approval_code':'YOUR_APPROVAL_CODE','user_id':'ou_xxxx',# 提交人的user_id'form':json.dumps([{'id':'widget1',# 表单控件ID,在审批定义里查'type':'input','value':'业务差旅报销'# 报销说明},{'id':'widget2','type':'amount','value':'1580.00'# 报销金额},{'id':'widget3','type':'date','value':'2024-06-26'# 日期}])}resp=requests.post('https://open.feishu.cn/open-apis/approval/v4/instances',headers=headers,json=payload)result=resp.json()ifresult['code']==0:instance_code=result['data']['instance_code']yda.set_variable('instance_code',instance_code)print(f'审批提交成功,审批单号:{instance_code}')else:raiseException(f'审批提交失败:{result["msg"]}')
方法2:查询审批状态并跟踪结果
【影刀操作】
添加【Python】指令(轮询审批状态)
importrequestsimporttime access_token=yda.get_variable('access_token')instance_code=yda.get_variable('instance_code')headers={'Authorization':f'Bearer{access_token}'}max_wait_hours=24# 最长等待24小时check_interval=300# 每5分钟检查一次for_inrange(max_wait_hours*12):resp=requests.get(f'https://open.feishu.cn/open-apis/approval/v4/instances/{instance_code}',headers=headers)result=resp.json()status=result['data']['status']print(f'当前审批状态:{status}')ifstatus=='APPROVED':print('审批已通过!')yda.set_variable('approval_result','approved')breakelifstatus=='REJECTED':reject_reason=result['data'].get('comment','无说明')print(f'审批被驳回,原因:{reject_reason}')yda.set_variable('approval_result','rejected')breakelifstatus=='CANCELED':print('审批已撤销')yda.set_variable('approval_result','canceled')breaktime.sleep(check_interval)else:print('审批超时,请人工跟进')yda.set_variable('approval_result','timeout')添加【条件判断】指令
- 判断条件:变量
approval_result等于approved - 如果为真:触发后续业务流程(如记账、通知财务)
- 如果为假:发送通知告知处理人审批结果
- 判断条件:变量
方法3:从Excel批量提交多笔报销
【影刀操作】
- 添加【读取Excel】指令
- 文件路径:
C:\报销\6月报销单.xlsx - 保存结果:变量
expense_list
- 文件路径:
- 添加【循环】指令遍历报销列表
- 在循环内调用「提交审批」子流程
- 添加等待(避免触发频率限制):每提交一笔等待3秒
有什么坑
坑1:不知道approval_code
每个审批流程有一个唯一的approval_code,新人经常找不到。
找法:飞书管理后台→工作台→审批→找到对应审批流程→复制审批编码。
TEMU店群如何管理运营?
坑2:不知道表单控件ID
审批表单里每个控件都有一个id,不知道ID就不知道往哪个字段填数据。
找法:调用APIGET /open-apis/approval/v4/approvals/{approval_code}可以获取审批定义,里面包含所有控件的ID和类型。
坑3:user_id获取方式错误
发起审批时需要填提交人的user_id,用手机号或邮箱是不行的,必须是飞书的open_id或union_id。
获取方式:调用POST /open-apis/contact/v3/users/batch_get_id,传入手机号换取user_id。
坑4:Token有效期只有2小时
access_token 2小时过期,长流程跑到一半Token失效。
解决方法:封装一个get_valid_token()函数,每次调用前检查Token是否快过期,是则刷新。
总结
飞书审批自动化的最佳路径是API,不是操作界面。接口稳定、速度快、不受UI变动影响。关键是要找到approval_code和表单控件ID,这是最容易卡住的地方。搞定这两个,批量提交审批就是循环调接口的事。