Google 本地服务 API + CRM - 嵌套数组(API 响应映射)

问题描述 投票:0回答:1

我正在构建一个自定义 Zap,以将 Google 本地服务广告 API 与我们的 CRM 集成。看起来一切正常,但是,我注意到有几个新的线索没有通过,这似乎是由于 API 请求使用嵌套在同一字段下的值发送嵌套数据所致。

这是一个示例响应:

    {
    "leadId": "000000000",
    "accountId": "000000000",
    "businessName": "Acme, Inc",
    "leadCreationTimestamp": "2022-08-09T16:21:14Z",
    "leadType": "PHONE_CALL",
    "leadCategory": "roofer",
    "geo": "Miami,Florida,United States",
    "phoneLead": {
      "consumerPhoneNumber": "+15555555678"
    },
    "chargeStatus": "NOT_CHARGED",
    "currencyCode": "USD",
    "timezone": {
      "id": "America/New_York"
    },
    "id": "0000000000"
  },
  {
    "leadId": "000000000",
    "accountId": "000000000",
    "businessName": "Acme, Inc",
    "leadCreationTimestamp": "2022-08-09T16:39:38Z",
    "leadType": "MESSAGE",
    "leadCategory": "roofer",
    "geo": "Miami,Florida,United States",
    "messageLead": {
      "customerName": "Jane Doe",
      "jobType": "attic_venting",
      "postalCode": "33066",
      "consumerPhoneNumber": "+15555555789"
    },
    "chargeStatus": "CHARGED",
    "currencyCode": "USD",
    "timezone": {
      "id": "America/New_York"
    },
    "id": "1111111111"
  },
  {
    "leadId": "000000000",
    "accountId": "000000000",
    "businessName": "Acme, Inc",
    "leadCreationTimestamp": "2022-08-10T19:12:28Z",
    "leadType": "PHONE_CALL",
    "leadCategory": "window_repair",
    "geo": "Miami,Florida,United States",
    "phoneLead": {
      "chargedCallTimestamp": "2022-08-10T19:12:28Z",
      "chargedConnectedCallDurationSeconds": "280s",
      "consumerPhoneNumber": "+15555555890"
    },
    "chargeStatus": "CHARGED",
    "currencyCode": "USD",
    "timezone": {
      "id": "America/New_York"
    },
    "id": "2222222222"
  },

我遇到的问题是将数据映射到我们的 CRM 时,触发测试数据为“consumerPhoneNumber”提供多个字段(基于是否是消息/电话线索以及呼叫是否已连接)。所以我们无法将phoneLead__consumerPhoneNumber和messageLead___consumerPhoneNumber映射到同一字段。

duplicate fields example

当值根据messageLead_consumerPhoneNumber 与phoneLead_consumerPhoneNumber 发生变化时,如何解析API 响应以正确映射consumerPhoneNumber?

我了解一些基本的 Javascript,但解析 API 数据对我来说是新的。任何帮助将不胜感激!

这是我们 API 请求的 JavaScript 代码。

    const options = {
  url: 'https://localservices.googleapis.com/v1/detailedLeadReports:search',
  method: 'GET',
  headers: {
    'Authorization': `Bearer ${bundle.authData.access_token}`,
    'X-QUERY': bundle.authData.query
  },
  params: {
    'query': 'manager_customer_id:XXXXXXXXX',
    'pageSize': '1000'

  }
}

return z.request(options).then((response) => {
  response.throwForStatus();
  const results = response.json;

  const lists = results["detailedLeadReports"].map((item) => {
    return Object.assign(item, {
      id: item["leadId"],
    });
  });

  return lists;
});
javascript multidimensional-array google-ads-api zapier array-map
1个回答
0
投票

你的 zap 起作用了吗?

© www.soinside.com 2019 - 2024. All rights reserved.