我想使用Zapier和Webhooks在两个不同的CRM(Clevertap和Intercom)之间配置同步。通常,Clevertap将以下JSON发送到webhook:
{
"targetId": 1548328164,
"profiles": [
{
"event_properties": {
"MSG-sms": true,
"MSG-push": true,
"businessRole": "EMPLOYEE",
"Mobile Number": "123123123123",
"Name": "Artem Hovtvianisa",
"Title": "Mr",
"Last Name": "Hovtvianisa",
"Gender": "M",
"Customer type": "Business Account Holder",
"MSG-email": true,
"First Name": "Artem",
"Last seen IP": "111.177.74.50",
"tz": "GMT+0200",
"International customer": "yes",
"isBusiness": true,
"Email": "xxxyyy@gmail.com",
"Identity": 15675
},
"objectId": "e32e4de3c1e84b2d9bab3707c92cd092",
"all_identities": [
"15675",
"xxxyyy@gmail.com"
],
"email": "xxxyyy@gmail.com",
"identity": "15675"
}
]
}
Zapier提供了两种捕获Webhook:常规和原始。
捕获原始钩
当我使用这种类型时,可以很好地处理JSON原始数据,然后在下一步(Zapier JS代码应用程序)中,像上面的示例一样,我可以传递正确的JSON数据。
但是,当我使用简单的JS代码解析JSON对象并获取profile [0]数组值时,出现以下错误“ TypeError:无法读取未定义的属性'0'”
“代码”步骤中的JS代码:
var result = JSON.parse(JSON.stringify(inputData));
console.log(result.profiles[0]);
return result;
抓钩
如果我使用常规的Catch Hook,则以某种奇怪的方式对数据进行钩子处理,如下所示:
JSON.parse无法识别此结构。
请告知我如何以正确的方式处理Webhook Zapier步骤以获取profile [0]数组项值?
谢谢!
答案 0 :(得分:2)
Zapier Platform团队的David在这里。您在正确的轨道上!
赶上原始的钩子就是去这里的方法。您的问题是数据是以字符串形式输入的,因此您在解析之前对它进行了重新字符串化,从而使您回到了原始位置。一个更简单的版本:
int
相反,只需解析它,您就很好了!
brk