飞书审批如何实现自动触发子流程 | 飞书审批、集成平台

用过飞书的朋友可能知道,飞书的审批流程不支持触发子流程这个功能,举个例子,比如我发起了一个出差流程,正常来说我希望流程走完后,可以自动触发一个订票流程,这样就不用手动去发起订票流程,也节省了时间提高了效率。

那么有没有办法利用飞书现有的平台能力,实现这个子流程自动触发的效果呢?
今天就试试用飞书的集成平台来实现。简单来说就是利用集成平台,将出差流程和订票流程串起来,通过一些自动化指令和参数的传递,来实现这个效果。

那么接下来我们就实际用出差流程和订票流程这个简单的案例,来说说是如何实现的。

(注:先说明一下,免费版的飞书,是没法使用集成平台的)

一、流程

首先我们需要在飞书审批里配置出差流程和订票流程

因为是举例说明,所以流程我们配置的简单一些,主要还是看怎样把这两个流程串起来。

1、出差流程

配置几个简单的字段,流程就配置一个审批节点。

2、订票流程

表单同样配置几个简单的字段

流程这里说明一下,因为是自动触发提交,所以提交节点,表单的关联审批是自动带出对应的出差申请流程,然后自动提交到第二个节点,即“行政人员填写”,这个节点会收到待办,然后去填写“是否已预订”、“出发日期”和“返程日期”字段信息。

这样我们就先把两个流程准备好了。

二、开放平台

首先我们需要在飞书开放平台里创建应用,先提前准备好。

在开放平台里面,我们需要创建对应的飞书自建应用,因为后续的工作流需要绑定应用的凭证或地址,同时也可能会承载一些机器人的能力等。

飞书开放平台:https://open.feishu.cn/

进入开发者后台后,我们创建一个自建应用

然后在自建应用内,我们先添加机器人的应用能力

在这个应用里面,我们还需要配置一些接口权限。这个我们稍晚点来配置。

我们先创建版本,让这个应用生效先。

命名版本号和使用范围并提交审批后,这个应用就正式生效了。

三、集成平台

集成平台,是一个集成工作流,类似zapier、make和n8n这样的自动化工作流,可以用集成平台来把各种应用串联起来实现一些自动化。

所以我们希望通过集成平台,来把出差和订票的两个流程串起来。

飞书集成平台:https://anycross.feishu.cn/ (注:免费版的飞书是没法使用集成平台的)

进入到集成平台后,我们先创建一个工作流

然后我们创建节点,来实现触发子流程的效果

接下来我们就说说每个节点如何配置及各自的作用。

1、飞书审批节点 – 审批实例状态变更

我们在第一个节点,添加一个飞书审批的节点。选择“审批实例状态变更”的操作。

这个节点,我们是希望监听出差申请流程的状态,当有出差申请流程审批通过后,就触发我们这个集成流程。

在“凭证”tab下,我们选择新建应用凭证。

在新建的页面上,我们需要去配置凭证名称,认证类型和应用,这个应用就选择我们之前在开放平台创建的应用。最后点击“创建并连接”

接着在节点页面,我们看到飞书很贴心的告诉了我们缺少哪些配置

我们直接点击“配置应用凭证”,会弹出如下的申请页面,同样的飞书很贴心的把所有需要配置和申请的权限全部列出来了,我们直接提交配置申请即可。

提交配置完成后,凭证这里没有提示语了,说明已经连接成功。

接着,我们在设置节点里,配置审批定义code和实例状态过滤。

审批定义code,即出差申请流程的模板id,在流程模板编辑这里,url里的definitionCode后面这一串数字就是了。

实例状态过滤,选择哪些状态的流程,我们选择了approved,即只有审批通过的流程才可以触发集成流。

到这里,第一个节点就配置完成了。

2、飞书审批节点 – 获取审批实例详情

第二个节点也还是添加一个飞书审批节点,然后选择“获取审批实例详情”的操作。

在入参这里,注意“审批实例code”字段的配置,这里需要选择上个节点的出参。

如何配置呢?我们把鼠标点在审批实例code前面的小圆圈上,然后拖拽鼠标到第一个节点内。

第一个节点会弹出一个如下的弹框,里面就是第一个节点的出参列表了,我们选择里面的instance_code即可。

前两个节点配置完成后,我们可以点击调试,来试一下有没有问题

在日志这里,我们可以看到调试的结果,有绿色对钩,说明是没有问题的

比如我们点击获取实例详情这里,在出参处,可以看到output的结果。也就是已经审批通过的出差申请流程的数据。

3、飞书审批节点 – 查看审批定义详情

这个节点也是飞书审批节点,操作是“查看审批定义详情”,这个节点的目的是,根据Approval Code获取指定审批定义的详情,用于构造创建审批实例。简单来说就是要获取到订票流程是怎么配置的。

入参这里的审批定义code,输入订票流程的流程模板code(流程模板code如何获取上面有介绍过)

调试后我们看日志,这个节点output里会将订票流程的模板信息用JSON展示出来。

因为出参的JSON格式是序列化的,为了更清晰一些,我们接下来需要添加一个JSON节点,解析JSON

4、JSON助手

添加JSON助手的节点

选择JSON parse的操作

入参这里,我们选择上一个节点的form字段,即对form字段进行解析。

调试之后看看结果:

5、动态脚本

这里我们增加一个动态脚本的节点。我们需要从上一个节点中,获取到“关联审批”的字段信息,为后面把字段信息传到订票流程做准备。

这个节点的入参,input需要配置两个name和value

①name:instance_code ,value:选择出差流程的instance_code

②name:form_connect ,value:选择上一个节点的出参

入参配置完成后,我们需要一段JavaScript Code

目的就是为了获取到关联审批字段的id,type和value

function handler(input) {
  // 提取instance_code和form_connect
  let instance_code = '';
  let form_connect = [];

  input.forEach((item) => {
    if (item.name === 'instance_code') {
      instance_code = item.value;
    } else if (Array.isArray(item.value)) {
      form_connect = item.value;
    }
  });

  // 找到“关联审批”字段的id和type
  let targetField = form_connect.find((field) => field.name === '关联审批');

  if (targetField) {
    const id = targetField.id;
    const type = targetField.type;

    // 构建返回的对象
    const result = [
      {
        id: id,
        type: type,
        value: [instance_code],
      },
    ];

    return result;
  } else {
    // 如果没有找到关联审批字段,返回空数组或者其他合适的值
    return [];
  }
}

6、JSON序列化

作为发起实施流程的表单json入参。选择json节点,选择JSON Serialize的操作。

6、飞书审批-创建审批实例

最后一个节点,我们需要实现自动触发订票流程,这里我们添加一个飞书审批的节点,然后选择创建审批实例的操作。

在入参这里,首先配置发起审批用户的user_Id,也就是用谁的账号触发这个订票流程。

user_Id可以从第二个节点的出参选择到。

其次,配置审批定义的code,这个code是订票流程的模板id。

最后配置json数组,控件值。这个地方选择上个节点的出参,也就是关联审批字段的id,type和value的数组。

到此,整个工作流就配置完成了。

我们可以点击调试试一下

发起一个出差申请流程,当流程审批结束后,会自动触发一个订票申请流程。

最后别忘了,让这个工作流能自动运行,还需要点击一下发布。这样后面才能自动运行。

好了,那么以上就是如何用飞书的集成平台,来实现触发飞书审批子流程的一个需求。

评论区已关闭。

滚动至顶部