在白码低代码开发平台中,是支持外部crm系统的线索通过接口流入到白码系统里面,换而言之,只要外部的系统有线索api接口,白码系统可以接收线索并在白码系统上进行后续操作。本文以飞鱼crm系统为例,讲解如何接收飞鱼crm系统传过来的线索
准备两个数据表,一个是客户表(基础字段),一个是日志(记录每次回调的事件和返回时间)
新增一个webhook,写入以下代码
代码如下:?????????复制代码
async?function?hook($req?=?request,?$resp?=?response,?$modules?=?modules)?{
????let?req?=?$req.body;//回调回来的数据
????let?now?=?await?$modules.moment().format("YYYY-MM-DD?HH:mm:ss");//当前时间
????let?logForm?=?{
????????"63ff01a2f725340df45e8f22":?"线索回调",//回调类型??string
????????"63ff01a2f725340df45e8f23":?JSON.stringify(req),//回调事件??string
????????"63ff01a2f725340df45e8f24":?now,//回调时间??string
????}
????await?$modules.data.saveData("63ff004a0ef3f00df536edfd",?logForm)
????$resp.body?=?{
????????"code":?"0",
????????"message":?"success"
????}//返回success
?????//对回调回来的数据进行处理
}
点击修改icon,将路径后缀改为callback
点击展开基本信息,在路径后面点击复制
打开飞鱼crm系统,在左侧设置里,找到api设置-线索推送规则(飞鱼帮助文档:帮助中心)
填写规则名字,选择需要回传的字段,点击下一步
填入第二步复制的回调url,点击下一步
此步骤直接点击下一步
此步骤直接点击下一步
点击发送测试数据,默认发送飞鱼自带的demo数据,如果返回结果就是第二步代码中"$resp.body"内写的一样,即代表返回成功,返回成功可以点击保存
若是在飞鱼crm中已有数据,推荐使用线上数据,更好的匹配白码数据表
保存后,把是否启用打开,即可完成设置api规则
在数据集,找到回调日志数据表,点击该条数据,复制,到json美化工具打开,观察数据结构及我们所需的字段
代码如下:?????????复制代码
???//对回调回来的数据进行处理
????let?map?=?{
????????0:?"字节-橙子建站",
????????1:?"字节-橙子建站",
????????2:?"其他渠道-?外部导入",
????????5:?"字节?-?抖音企业号",
????????7:?"字节?-?巨量线索",
????????8:?"字节?-?云店",
????????9:?"字节?-?星图",
????????10:?"字节?-?获客宝",
????????11:?"字节?-?住小帮",
????}//渠道map
????let?unix?=?Number(req.create_time)//创建时间
????//数据?客户?63feff350ef3f00df536eac5
????let?cusForm?=?{
????????"63ff0191f725340df45e8ebb":?req.name?||?"",//客户名称??string
????????"63ff0191f725340df45e8ebd":?req.telphone?||?"",//电话??string
????????"63ff0191f725340df45e8ebc":?map[req.clue_source],//渠道??string
????????"63ff0191f725340df45e8ec0":?req.id,//线索id??string
????????"63ff0191f725340df45e8ec1":?$plugin.moment(unix?*?1000).format("YYYY-MM-DD"),//创建日期??date
????????"63ff0191f725340df45e8ec2":?$plugin.moment(unix?*?1000).format("HH:mm:ss"),
????????"63ff0191f725340df45e8ebe":?req.ad_id,
????????"63ff0191f725340df45e8ebf":?req.adv_id
????}
????await?$modules.data.saveData("63feff350ef3f00df536eac5",?cusForm)