飞书流程设置动态审批人

文章介绍了一种解决飞书流程中审批人配置复杂问题的方法。通过创建联系人控件,结合CMDB数据,利用自动化接口动态获取审批人,减少模板维护的错误和复杂性。当工单提交后,系统自动填充审批人,简化了审批流程的管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工作中遇到使用飞书流程的场景,由于有不同的项目和业务,所以搞了一个通用流程,但是不同的业务需要不同审批人,刚开始使用飞书流程编排通过条件判断的方式来配置,但随着公司业务的增多和人员的变动,模板的维护工作越来越繁琐,几十个分支判断下修改容易出错,调试也比较麻烦。

所以基于飞书当前流程的功能和接口分析后设计了一个从cmdb自动获取业务相关责任人配到审批单里的方案。

原理:
1、流程里创建联系人控件,设置允许填写多个
2、配置联系人控件的权限提交人不可见
3、配置一个固定审批人作为第一个审批环节,并授权编辑表单联系人权限。
4、后续审批按角色配置,引用表单内联系人。
5、启用审批分析中的数据管理,对应会创建一个多维表格。
6、在多维表格里增加自动化,调用接口
7、封装一个api,接收到工单里的项目、业务等数据,从cmdb里查询到相关责任人列表
8、调用审批同意接口,同时提交form表单把审批人填进去

这样用户提交一个工单后会自动触发一个回填审批人的接口调用。

### 如何使用Bot在飞书进行审批消息的发送 为了实现通过 Bot 在飞书中发送审批消息的功能,需遵循特定流程设置并调用相应的 API 接口。以下是具体的操作说明: #### 1. 创建应用与机器人 创建一个内部集成的应用程序,并在此应用程序下建立自定义机器人。此过程涉及获取 Webhook URL 和必要的凭证信息用于后续的消息推送。 #### 2. 获取所需权限 确保已授予足够的权限给该应用程序以便能够代表员工执行操作以及向指定范围内的成员发送通知。如果遇到 `employee_id:readonly` 或者 `send_as_bot` 这样的权限错误,则表明当前授权级别不足以完成这些动作[^2]。 #### 3. 构造请求体 当准备就绪之后,可以按照官方文档中的指导构造 POST 请求的数据结构以触发审批事件的通知。通常情况下,这会涉及到 JSON 格式的负载设计,其中包含了待审事项的关键字段如标题、描述文字以及其他任何有助于接收方理解上下文的信息。 ```json { "msg_type": "interactive", "card": { "config": { "wide_screen_mode": true, "enable_forward": false }, "elements": [ { "tag": "div", "text": { "content": "**新申请提交**\n\n申请人:张三\n部门:技术部\n日期:2024-01-08", "type": "lark_md" } }, { "actions": [ { "tag": "button", "text": { "content": "批准", "type": "plain_text" }, "value": "{\"action\":\"approve\"}" }, { "tag": "button", "text": { "content": "拒绝", "type": "plain_text" }, "value": "{\"action\":\"reject\"}", "type": "danger" } ], "tag": "action" } ], "header": { "title": { "content": "请假申请审核", "type": "plain_text" } } } } ``` 上述代码片段展示了如何构建一条带有交互按钮(批准/拒绝)的卡片样式消息,适用于处理工作流中的决策场景[^3]。 #### 4. 发送HTTP请求 最后一步就是利用 Python 等编程语言发起 HTTP POST 请求至所获得的 Webhook 地址,附带之前精心编排好的 payload 数据作为 body 参数传递过去。成功后,目标聊天室将会显示由机器人发出的通知卡片等待相关人员响应。 ```python import requests from json import dumps url = 'https://open.feishu.cn/open-apis/bot/v2/hook/<your-webhook-id>' headers = {'Content-Type': 'application/json'} data = {...} # 替换成上面提到的那个JSON对象 response = requests.post(url, headers=headers, data=dumps(data)) if response.status_code != 200: print(f'Error occurred while sending message: {response.text}') else: print('Message sent successfully.') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值