2

我正在使用 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 存在于 Active Campaign 中。联系人只是没有价值。

4

1 回答 1

6

首先,您需要获取自定义字段的归档 id。您可以使用带有GET请求https://youraccountname.api-us1.com/api/3/fields 文档的邮递员来执行此操作,并且当您拥有要更新的 ID 时,您可以轻松地这样做。希望它有所帮助。在我弄清楚这一点之前,我挣扎了很多。

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**
于 2021-02-25T20:47:29.680 回答