Active Campaign API: как "создать или обновить контакт" вместе со значениями настраиваемых полей?
Я использую Node js и могу создавать / обновлять адрес электронной почты, имя или номер телефона контакта. Но настраиваемые поля у меня никогда не обновлялись. Вот что я получил до сих пор.
var data = JSON.stringify({
"contact": {
"email": "t@brady.com",
"firstName": "Tom",
"lastName": "Brady",
"phone": "111122233",
"myCustomField": "myValue"
}
});
var options = {
hostname: hostname,
path: '/api/3/contact/sync',
method: 'POST',
headers: {
'Api-Token': apiToken,
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': data.length
}
}
var req = this.https.request(options, function(res){
});
req.on('error', function(err){
console.log('error: ' + err.message);
});
req.write(data);
req.end();
Таким образом, будут обновлены встроенные поля контакта (адрес электронной почты, имя, телефон), но не myCustomField. Есть идеи, почему? Как это решить? Буду очень признателен за любую помощь.
PS myCustomField существует в активной кампании. Контакт просто не имеет ценности.
1 ответ
Во-первых, вам нужно получить идентификатор настраиваемых полей. Вы можете сделать это с почтальоном с помощью
GET
запрос
https://youraccountname.api-us1.com/api/3/fields
docs, и когда у вас есть идентификаторы, которые вы хотите обновить, вы можете легко сделать это следующим образом. Надеюсь, это поможет. Я много боролся, прежде чем понял это.
fetch(proxyurl + active_campaign_url, {
mode: "cors",
method: "POST",
body: JSON.stringify({
contact: {
firstName,
lastName,
email,
fieldValues: [
{
field: 1,
value: jobTitle,
},
{
field: 30,
value: companyName
}
],
},
}),
headers: headers,
})
.then((response) => response.json())**strong text**