分享人:乔祤,钉钉连接平台开发人员
视频地址:一键回看
目录
一、连接流介绍
二、如何自建连接流
三、连接流扩展
四、Q&A
一、连接流介绍
连接流的作用
- 案例场景
通过钉钉OA审批申请一个报销单,然后将报销单数据推送到企业群,并同步到销帮帮和企业内部系统中,整个流程涉及钉钉官方应用、生态三方应用和企业内部应用。 - 传统的方式
使用编码来实现,需要对每个节点的每个入参出参、每个API接口都十分了解,同时需要一台服务器部署这一数据流转的服务,过程非常复杂。 使用连接流操作:在连接平台创建简单的连接流(见下图),只需将每个节点串连起来即可实现数据流转:
- 无需代码开发即可完成三个系统数据的打通;
- 能够将钉钉官方/生态三方的应用与企业内部系统进行相互打通;
- 上述的流程支持逆向触发,比如由企业内部系统发起,然后自动创建钉钉/销帮帮报销单,再推送钉钉消息;
- 通过连接流可以极大的减少开发成本。
连接流的概念
- 连接平台分为连接器和连接流两部分;
- 连接器包括触发事件和执行动作;
- 连接流是以连接器的“触发事件”为输入,“执行动作”为输出的流程编排服务,从而实现应用间的数据互通;
- 同时,连接流支持逻辑判断,根据上游节点的出参不同完成不同节点的业务逻辑、选择不同的执行动作等。
连接流的特点
- 可视化拖拽完成流程编排;
- 支持自定义动作、网络请求、逻辑分支等等;
- 支持表达式完成一些复杂的逻辑判断/模型转换;
- 能够打通钉钉-三方-企业内部之间数据流转。
连接流使用场景
连接流是实现钉钉官方、三方生态、企业内部应用数据互连互通的核心桥梁。
二、如何自建连接流
创建连接流
操作路径:钉钉开放平台-->开放能力-->连接平台-->连接流-->创建流
流编辑
- 在创建流页面点击确定后进入流编辑界面;
- 操作路径:选择连接流-->详情-->连接流;
- 流编辑是将各节点之间进行串连,第一个节点是触发事件,比如:会议室预定、宜搭表单更新,下一个节点是执行动作,比如:同步数据到群聊中等。
典型场景
场景一:官方应用互通
【案例】会议室预定后发送机器人通知
这个案例中涉及的两个钉钉官方应用:智能会议室和机器人消息,通过连接流相互连接。
操作步骤:
第一步:创建会议室
- 进入OA审批页面找到“智能会议室”并点击进入;
- 点击添加会议进入设置页面,填写名称、人数、描述等关键信息并点击保存;
- 会议室创建完毕;
第二步:添加机器人
- 进入群聊页面的群设置,点击智能群助手进入机器人管理页面,选择“添加机器人”;
- 选择“自定义”,点击“添加”,填写名称、关键词等信息,点击“完成”;
- 机器人添加完毕;
第三步:创建连接流
- 进入开放平台,依次点击开放能力-连接平台,进入连接平台页面;
- 点击左侧连接流,再点击“创建流”;
- 填写名称、描述,选择业务流,并点击确定;
- 设置触发事件,选择智能会议室-会议室预定事件;
- 设置执行动作,在官方下选择机器人;
执行动作选择“发送markdown”消息,入参设置录入标题、正文、accessToken,其中标题要含关键词“会议室”;
切换至群聊中的机器人管理页面获取accessToken,选择刚创建的机器人;
复制webhook连接并粘贴到聊天框内,复制access_token后面的部分;
切回连接流界面,选择固定值将token粘贴入取值框,点击确定并保存; - 发布连接流,连接流创建完毕;
第四步:效果展示
- 进入群聊,在搜索框搜索“智能会议室”;
- 选择刚创建的会议室并选择时间预定;
- 预定成功后有机器人发送消息到群聊;
场景二:内部应用-官方应用互通
【案例】企业报警信息通过机器人发送到群
本案例是将企业订单支付超时告警通知,通过机器人发送到钉钉群聊,其中订单支付超时告警是企业内部应用,机器人是钉钉应用,通过连接流将两个应用互通。
操作步骤:
第一步:创建连接器
- 进入连接平台在左侧选择“连接器”,点击“创建连接器”;
- 录入名称、连接、鉴权等必要信息,然后点击“确定”;
- 选择刚创建的连接器,并选择“触发事件”,点击“创建触发事件”;
设置触发事件:
- 填写基本信息;
- 模型配置,添加一个message字段;
- 填写基本信息;
- 连接器创建完成;
第二步:创建连接流
- 进入连接流页面,点击“创建流”,填写名称和描述并选择“业务流”;
- 设置触发事件,选择刚创建的自建连接器“企业告警通知”的“消息告警通知”事件;
- 设置执行动作,在官方下选择机器人;
执行动作选择“发送markdown”消息,入参设置录入标题、正文、Token等重要信息,其中AccessToken复用会议室预定通知机器人; - 点击确定并发布连接流,连接流创建完毕。
第三步:效果展示
- 在“我的连接器”中选择刚创建的连接器;
- 选择触发事件,复制Webhook连接;
- 通过ApiPost模拟企业内部应用调用,将Webhook粘贴到请求地址栏,录入必要的message字段并点击“发送”;
- 切回群聊页面,看到机器人发送的告警通知;
场景三:三方应用-内部应用互通
【案例】销帮帮新增客户同步到企业内部系统
销帮帮CRM有新增客户,需要同步客户数据到企业内部应用,在这个案例中,三方应用销帮帮通过连接流与企业内部应用进行互通,并完成业务逻辑处理。
操作步骤:
第一步:创建连接流
- 进入连接平台,点击“创建流”并填写相关信息;
- 触发事件选择“销帮帮”-“新增客户”;
- 删除默认的执行动作,添加“网络请求”,填写业务系统网络请求信息,选择需要的业务字段,保存并发布连接流;
- 连接流创建完成。
第二步:效果展示
- 进入销帮帮客户管理页面,并点击“新建”;
- 填写客户信息并保存;
- 切换到业务系统,等待触发断点,可以看到销帮帮的数据已经同步到业务系统中。
三、连接流扩展
扩展一:集成流
操作路径
开放能力-->连接平台-->连接流-->创建流-->选择集成流
集成流vs业务流
- 集成流是被集成在业务中使用的,需要入参和出参,而无需触发事件;
- 业务流可以在节点中通过引用子函数的方式引用集成流,这样可以将公用流的逻辑沉淀为集成流引入相关的业务流中以减少流的编排工作,同时为业务流的开发创造便利;
扩展二:三方流
三方流是已经配置好的流,可以在连接平台的连接流市场上选择并安装使用。
扩展三:表达式
操作路径
- 流编辑-->选择节点-->入参映射;
- 在设置执行动作时,需要设置每个节点的出入参,下游节点的入参来自上游节点的出参,通常使用拖拽的方式操作;
- 但当一些复杂场景无法直接连接出入参时,需要运用表达式;
- 表达式是连接流中重要的数据映射服务,通过提供的多种函数,完成复杂模型间的数据转换,以实现复杂的逻辑转换和节点关联。
四、Q&A
Q:连接流和连接器之间是一种什么样的关系
我们钉钉的连接平台主要有两大块,一块是连接器一块就是连接流了。连接器主要是由一些简单的动作或者是触发事件组成的。然后连接流呢它里面的每一个节点都需要从连接器上面去拿。比如说去拿连接器里面的一个触发事件,去从连接器里面拿一个实践动作等等。让连接流除了去连接器里面拿出执行动作和出发事件之外呢,它也支持自己的一些比如说逻辑节点啊或者是像一些自己自定义的webbook的网关节点它也是支持到的。
Q:如果我们的连接流没有请求通,我们应该如何去排查呢
如果我们连接流没有请查通的话,那么我们有两种排查方式。第一种排查方式的话就是我们在那个整个连接平台的一个执行记录里面可以看到你这个连接流的一个执行记录,可以看到每个节点的一个异常情况,然后根据异常情况进行排查。如果还是排查不到的话,建议就加我们的一个群,那然后在那个共创群里面附上你的那个执行的一些比如说一些 TraceId 给了我们,然后我们这边有技术人员帮你一起排查。
Q:钉钉连接平台和宜搭的一个连接器工厂之间有什么一些区别
我们钉钉连接平台的话它是一个独立的一个平台,你能够用它去连接比如说二方或三方的一些连接器来实现你的一些所需要的逻辑。然后宜搭的连接器工厂的话它其实也是跟我们钉钉连接平台绑在一起的。就是说在我们把我们的连接器的能力然后包装在他们的平台里面,能够在宜搭里面直接调到我们连接器的能力。这样子的话其实两个是没有冲突的。
Q:连接流有没有收费的和一些更高级的功能,后续关于一些连接流还会有哪些新的功能我们有没有在规划中
连接流的话目前是暂时的话是不收费的,就是所有的功能都是免费的。但是如果你要用OA这些审批里面一些专业版材料的能力的话,可能需要你付费买那个钉钉专业版,然后再能够享受到OA审批的一些高级的一些功能。然后他跟连接器是有关联的,然后后续的一些新功能的话是我们这边连接流目前已经能够支持到我们企业之间连接流以及像我们的集成流还有像那个网关的像我们的这边apas的一个流,这个流的话还没有完全对外开放,后面的话会陆续对外开放就是能够把我们连接器的能力集成在你们的业务系统里面。比如说我有很多的执行动作但是我不方便在连接器里面进行一个创建,那么这个时候我们就可以去调你的一个接口,从你的接口里面拿到你有哪些连接器的一些执行动作。这样子的话就能够在连接器里面能够拿到更多跟你们业务相关的一些功能了。
Q:连接流触发事件是否支持一个快速的一个调试呢
这个是支持的,目前我们要调用连接流的话一般是需要调用触发事件来进一步找到它关联的连接流进行一个触发的。所以说入口是一个触发事件,然后对于触发事件的调用的话有两种方式:第一种方式就是通过开关平台的open API你可以从文档里面找到相关的接口然后拿到比如说拿到 token 之类的一些参数给到我们帮你调用,这种相对麻烦一点。还有一种就是调试能力。就是我们的那个触发事件是支持webhook的,在触发事件的管理页面然后找到webhook地址复制出来,然后就能够直接请求了。能够很方便的进行一个调试操作。
Q:我们一个应用系统的话可以配置多个连接器吗
一个应用系统是可以配置多个连接器的。这个是可以的。
Q:连接流的一个使用是否需要编写代码或者是去部署服务器呢
整个连接器的一个操作都是不需要编写代码和部署服务器的,就是如果刚刚上面所讲到的那样只需要在我们整个连接平台进行相关的一些比如说创建连接器,然后把连接器里面的触发事件和执行动作进行一个组合就能够完成相关的业务逻逻辑了。这同时呢既然它不需要编写代码那么它也不需要找专门的服务器进行部署了。直接在我们连接平台点击发布整个连接流就能够用起来了。
Q:连接流能不能去主动的调用企业内部系统的一个API
这个是支持的。就是你连接流调企业内部的API的话,就属于刚刚所讲到的,就是企业内部
应用的之间的一个数据互通。那么在连接流里面你可以有两种方式,第一种方式你建连接器,
在连接器的那个执行动作里面去通过http的请求绑定到你企业内部系统。然后第二种方式,
你直接在连接流里面选择一个网关节点,然后通过网关的方式去调你的企业内部的API就可以了。然后呢通过这种方式比如说你的上游如果是来自于我们官方应用的话,那么相当于是把官方用的数据导入到了你企业内部应用里面。如果我的上游来自于三方应用的话,那么我们就把生态应用的数据导入到你企业内部应用里面去了。
Q:我们的连接器它有一个上线的这样一个设定吗
目前是没有设定相关的上线的。当然对连接器的那个只触发事件的那个调用是有一点限流的。就是你不能频繁的来调用我的触发事件。这个是有一些简单的限流操作的。
Q:我们在自研系统里面我们每一个功能的一些执行事件都需要在钉钉里面去创建一个连接器吗
如果说你的执行事件很多的话你可以考虑就是我刚刚讲到就是我们还没有完全开放的能力
就是我们能够从你的系统里面去拿。你有哪些执行事件,然后进行相关的一个触发。
Q:那么触发器的webhook的地址是可以直接配置在企业业务系统中使用吗还是只能去用于调试呢
你可以直接使用的也没有太大的问题。但是更好的是建议你通过openapi的方式调过来。那样子的话调过来我们能够拿到你更多的在我们整个开放平台的一些身份。身份数据方面我们去直接调用,比如执行一些鉴权操作
Q:如何知道执行动作所需要的一些入颤的类型和说明呢
执行动作的话,我们在那个连接器市场里面,可以找到相关的连接器,然后找到他执行动作。一般的话,就是在执行动作后面都会有详细的描述。描述呢会附加一个文档链接,或点击文档链接的话就能够知道这个执行动作所需要的一些入参及每个入参的类型,以及他从哪去拿这个入参的数据等等。