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**
Другие вопросы по тегам