Webhook

更多执行动作可查看《变更属性》《移出标签组》《终止旅程》

什么是webhook?

——webhook(也被称为网络回调或HTTP推送API)是一个应用为其他应用提供实时信息的一种方法。
——当webhook被触发后,它将传送数据到其他应用程序中去,该应用程序会立即获取到数据,而不需要定时调用当前应用的openAPI批量获取数据。

Linkflow webhook 动作

——在Linkflow客户旅程中使用webhook动作图元,当客户旅程被触发,webhook可以向配置地址发起请求,将客户旅程触发事件信息、联系人信息、自定义信息发送给配置地址。

配置webhook 动作图元

  • 在客户旅程画板上,拖入webhook动作图元
  • 点击设置按钮,填写信息

消息接收URL:请填写接收消息地址
请求方法:目前只支持post方法
消息格式:目前只支持JSON
消息结构体配置:您可以在此自定义消息结构体中的参数

  • 用户详情
    消息结构体增加contact参数,包括所有非空的系统预置用户属性、自定义用户属性、用户来源utm
  • 关注状态用户微信账号
    contact结构体中增加wechatAccounts参数
  • 用户身份
    选择需要推送的identities参数
  • 用户自定义连接账号
    contact结构体中增加udcAccounts参数
  • 触发事件
    消息结构体中增加event参数
  • 自定义参数
    消息结构体中增加_custom参数
    示例
{
  "sendTime": 1553249452973,
  "contact": {
    "id": 100,
    "name": "张三",
    "mobilePhone": "13912341234",
    "email": "zhangsan@example.com",
	"utm": {
      "source": "企业微信",
      "medium": "名片分享",
    },     
	"wechatAccounts": [
    	{
        	"appId":"wx73a996aaaaaaaaa",
        	"openId":"oGMVZ1AGl3mMQfWkrVl535QNCZsI",
        	"isActive":false
    	},
     	{
        	"appId":"wx73a996aaaaaaaaa",
        	"openId":"oGMVZ1AGl3mMQfWkrVl535QIayAq",
        	"isActive":true
    	},
    	{
       	 "unionId":"ogdN81fzE7J6ZDVuyhGhOJ8MHTRc"
    	},  
    	{
       	 "unionId":"ogdN81fzE7J6ZDVuyhGhOJ8asdbs"
    	}
	],
	"identities": [         //用户身份
		{
        "id": "ov7GewyvTj93CtHYJujyfqoe0XFY",
        "type": "wechat.openId",
        "dateCreated": "2022-12-20 09:22:17"
      },
      {
        "id": "LA8nJq95615177365349220352",
        "type": "youzan.yzOpenId",
        "dateCreated": "2022-12-20 09:22:17"
      },     
	],
	"udcAccounts": [
      {
        "externalId": "externId1",  //联系人在自定义渠道的账号
        "channelId": "abc.com",  //自定义渠道连接的channelid
        "channelName": "abc website"  //自定义渠道连接的名称
      }
    ]
  },
  "event": {
    "eventDate": 1553249452973,
    "channelId": "wx123",
    "channelName": "微信mp",
    "event": "WECHAT__SUBSCRIBE",
    "attr1": "XXX",
    "attr2": "XXX",
    "contactId":18257,  
    "id":104298,  
    "items": []
  },

  "_custom": {
    "foo": "bar"
  }
}


消息结构体参数字段含义

字段名类型描述示例
sendTimelong请求时间1553249452973
contactobject联系人参见1.1联系人结构体参数字段
eventobject触发事件参见1.2事件结构体参数字段
_customobject自定义参数

1.1联系人结构体参数字段含义

字段名类型描述示例
idstring联系人ID1553249452973
namestring联系人姓名张三
mobilephonestring联系人手机15150000000
emailstring联系人邮箱zhangsan@demo.com
wechatAccountslist联系微信账号列表(公众号、小程序)
udcAccountslist联系人自定义渠道账号列表

1.2事件结构体参数字段含义

字段名类型描述示例
idstring事件id104298
eventDatelong时间戳:事件发生时间1554798374000
channelIdstring连接idudc_1544vOULeekh
channelNamestring连接名称源犀科技
eventstring事件编码WECHAT__SUBSCRIBE
sdkVersionstringSDK的版本1.0.0
sdkTypestring记录此事件的SDKiOS SDK
platformstring应用平台iOS
screenWidthBigDecimal屏幕宽度
screenHeightBigDecimal屏幕高度
appVersionstring应用版本
bundleKeystring应用包名
osstring操作系统Linux
osVersionstring操作系统版本例如8.1.1
browserstring浏览器名称谷歌浏览器
browserVersionstring浏览器版本11
countrystring国家中国
provincestring省份江苏
citystring城市南京
networkTypestring网络类型WiFi
manufacturerstring设备供应商三星
deviceModelstring设备类型iPhone
operatorstring运营商中国联通
debugModeBoolean是否是测试数据true
imeistringIMEI
ipstringip地址
latitudeBigDecimal纬度
longitudeBigDecimal经度
attr1见1.3事件属性名称
attr2见1.3事件属性名称
attr3见1.3事件属性名称
attr4见1.3事件属性名称
attr5见1.3事件属性名称
attr6见1.3事件属性名称
attr7见1.3事件属性名称
attr8见1.3事件属性名称
attr9见1.3事件属性名称
attr10见1.3事件属性名称
attr11见1.3事件属性名称
attr12见1.3事件属性名称
attr13见1.3事件属性名称
attr14见1.3事件属性名称
attr15见1.3事件属性名称
attr16见1.3事件属性名称
attr17见1.3事件属性名称
attr18见1.3事件属性名称
attr19见1.3事件属性名称
attr20见1.3事件属性名称
itemslist子事件。
utmobjectutm参数。{ "source":"wechat", "medium":"qrcode", "content":"联否ALPHA", "term":"1" ,"campaign":"营销活动3"}
contactIdlong事件联系人id18257


1.3事件属性类型值定义

含义说明
text字符串
integer整数
number数字
datetime日期
enum枚举按照string处理
reference引用linkflow内部引用id,按照string处理

1.4用户身份类型字段含义

字段名类型描述示例
idstring用户身份IDov7GewyvTj93CtHYJujyfqoe0XFY
typestring用户身份类型wechat.openId
dateCreatedstring用户身份创建时间022-12-20 09:22:17

推送规则

当工作流被触发,webhook工作被触发,linkflow会向配置地址发起请求。
1、消息推送服务通过 POST 、参数编码为 JSON 的方式向开发者提供的地址推送消息;
2、开发者接收到消息后需要在10秒内回复code为 200的响应;
3、当推送没有成功返回会进入重发,最多重发三次。 规则是无法连通或者返回的http code 大于等于500(服务器异常);
4、消息推送成功的逻辑是开发者服务器返回200。

场景举例

场景描述:需要将每个加入标签组“webhook”的联系人同时同步到外部的服务器(如阿里云服务器等)
流程设计如下:


然后发布流程,凡是加入此标签组的人员均可以同步到外部服务器。

注:联系人信息可以实时同步到外部服务器,如网络缓慢问题,数据同步会稍后延后。

接口鉴权

1、当webhook配置的接口需要鉴权时,您可前往设置-App集成设置-授权设置中,配置一个用于获取令牌的授权,授权的配置请参考:《授权设置》
2、勾选webhook的启用鉴权功能,在下方填入需要鉴权的请求参数,令牌的值可以使用通配符#{auth.授权标识.令牌的key}获取(通配符外也可拼接空格与字符串)您需要根据您配置的授权返回结构自行判断填写令牌的key。