
1 什么是Webhook?
Webhook是一种简单快速联通企业内部与外部数据的方式。 Webhook作为集简云的内置应用既可以进行流程触发,也可以用于执行向其他系统同步数据。
2 如何使用Webhook?
在集简云中您可以使用Webhook接收外部系统发送来的数据并使用到流程中, 也可以将流程中的数据通过Webhook推送到其他系统中。下面我们分别说明一下如何通过Webhook接收数据与发送数据
2.1 接收数据
接收数据是由集简云自动生成一个唯一的URL地址,将此URL地址添加到您的应用系统的回调地址中,例如金数据表单的推送地址,或者简道云的事件回调地址,Udesk客服系统的事件回调地址,或者Mautic执行动作发送webhook的设置中。
每当此Wehook URL地址收到数据后即可自动解析数据中的字段,并自动触发数据流程。

可以复制到任意可以设置事件回调地址的应用配置中:
示例:金数据表单数据推送

接收到数据后,webhook会把接收到的数据转换为样本:

样本数据可以在后续步骤中使用:

接收数据时的配置说明
这里我们介绍一下Webhook接收数据时的动作和配置说明:
集简云目前有三种接收Webhook的动作,我们分别说明一下:

触发动作:”当接收到数据时“动作如何使用?:
这个动作指接收到外部推送数据,只展现请求Body体中的内容,我们以Postman为例:

我们标注出的Body下多种格式都支持推送到集简云并自动识别。
触发动作:"当接收到含请求头的数据时”动作如何使用?
有时候第三方系统发送的数据并不在body中,而是在请求头(Header)中或者在参数(Params)中,此时我们可以使用“当接收到含请求头的数据时”动作来获取完整的请求内容:

通过“当接收到含请求头的数据时”动作,我们可以获取到全部的请求头(Header), 参数(Params) 以及请求体(Body)中的内容。

在接收数据后如何返回指定内容?
在接收到数据后,集简云Webhook会默认返回:
{
"Code": 200,
"Data": null,
"Msg": "成功"
}
但是,一些第三方系统要求推送数据后返回指定的内容,以表示推送成功,否则会视为失败而继续推送数据。对于这种需求,您可以在接收数据时设置一个自定义的返回内容:

例如,如果第三方系统要求返回 “code”:"200", “data”:"success" 以表示成功接收到了数据,您可以在"自定义返回内容“中设置,设置后会按照您设置内容进行返回:

触发动作:“当请求指定的数据接口拉取数据时”如何使用?
Webhook除了可以接收数据触发流程外,也可以定时查询指定接口是否有新数据,如果有新数据时,同步新数据并触发流程。
例如:如果我们希望通过“聚合数据”的“新闻头条”接口获取最新娱乐新闻(https://www.juhe.cn/docs/api/id/235),当有新的新闻时同步数据并自动触发流程。 但是聚合数据新闻接口并不会主动推送数据给集简云。此时,可以使用拉取方式,定时去拉取数据并判断是否有新数据,如果有的话,自动触发流程:


在设置时请注意一定要填写一个唯一的排重ID,这个ID将由于判断是否有新增数据,如果设置错误可能会出现重复数据推送。排重ID是一条数据中唯一的ID,比如新闻这个示例中,可以以 title (新闻标题),或者url (新闻链接地址)作为唯一的排重ID。
2 如何利用Webhook作为执行动作?
在做执行动作时,Webhook可以将数据流程中的数据按照自定义的格式发送到您的指定URL中,您的系统可以在接收到数据后进行处理,以达到与您内部系统进行集成的目的。
集简云 Webhook可以使用多种方式发送数据,包括Get, Post, PUT 和发送自定义请求内容

2.1 设置字段匹配
在字段匹配界面可以设置数据传送的格式,添加流程中的数据以匹配企业接收数据端需要的内容与格式

- 接收地址URL: 接收此数据的URL地址
- 数据:要传输的数据,第一列为字段Key,第二列为字段值,可以添加多个
- Payload的类型:选则发送数据的格式,支持Form,Json, XML, Raw
- 在数组中包裹请求:选择是否使用数组包裹上面设置的数据内容
- 文件:发送数据中可以包含文件url,如果包括的话将自动文件将自动被转换为 multipart/form-data格式
- 是否扁平化处理(Unflatten):如果使用则会将多个数组层级内的数据转化到一个层级,例如:

扁平化处理后将输出为:

- Basic Auth:如果接收数据端有身份校验机制可以在这里设置身份信息,使用 | 符号区分用户名和密码
- Header:可以设置多个Header信息
2.2 Webhook执行动作使用示例
我们通过一个示例来了解如何使用Webhook设置指定动作请求第三方接口。 在这个示例中,百度OCR接口,智能识别图片中的文字内容,这个接口的使用将分为两个步骤 (大部分接口只需要1个步骤即可,但为了展现更复杂的场景,我们示例中的需要两个步骤来完成接口调用):
步骤1:使用百度OCR提供 API Key 和 API Secrect 获取授权 Access Token (接口文档:https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjhhu)
我们根据百度云的接口文档要求进行配置:

我们在集简云Webhook中选择 发生数据Post,请填写对应的参数:

发送数据后我们获取到了AccessToken:

步骤2:通过步骤1中获取Access Token,调用百度OCR接口将示例图片中的文字识别出来 (接口文档:https://cloud.baidu.com/doc/OCR/s/zk3h7xz52)


点击发送,测试成功。

如果您的请求参数非常复杂可以使用 Webhook执行动作中的 “发送自定义请求”,这里可以设置Json格式的请求内容:
示例:

Webhook是一种简单快速连接企业内部与外部数据连接的方式, Webhook作为集简云的内置应用既可以进行流程触发,也可以用于执行向其他系统同步数据。
Webhook是一种简单快速连接企业内部与外部数据连接的方式, Webhook作为集简云的内置应用既可以进行流程触发,也可以用于执行向其他系统同步数据。