簡體   English   中英

顯示標簽而不是內部值 (Google Apps Script/Google Sheets/HubSpot)

[英]Displaying Labels instead of Internal Values (Google Apps Script/Google Sheets/HubSpot)

你可以說我是一個真正的編碼新手。 現在我正在嘗試通過 Google Apps 腳本和 Google 表格將 HubSpot 帳戶連接到 Google Data Studio。 我從這個例子中的簡單內容開始:

https://medium.com/@alexisbedoret/create-a-hubspot-custom-dashboard-with-google-spreadsheet-and-data-studio-27f9c08ade8d

我嘗試像上面示例中的那樣構建我的代碼。 問題是,我正在獲取交易所在的“交易階段”和“管道”(如果您願意的話,狀態)的內部值,而不是“附加”到內部值的相應標簽或名稱(見照片)

谷歌表格的截圖

其他東西,如交易名稱(或圖片中的“Bewerbermanagementsystem”)工作正常。

不知道這對你們來說是否足夠,但如果有人能幫助我就太好了,因為我確實缺乏編碼知識:D

這是代碼的一部分:

   function getDeals() {
   var service = getService();
   var headers = {headers: {'Authorization': 'Bearer '+ service.getAccessToken()}};
   var keep_going = true;
   var offset = 0;
   var deals = Array();
   while(keep_going) {
      var url = API_URL + "/deals/v1/deal/paged?properties=dealstage&properties=pipeline&properties=bewerbermanagementsystem&properties=amount&properties=dealname&properties=dealtype&limit=250&offset="+offset;
      var response = UrlFetchApp.fetch(url, headers);
      var result = JSON.parse(response.getContentText());
      keep_going = result.hasMore;
      offset = result.offset;
      result.deals.forEach(function(deal) {
         var dealstage = (deal.properties.hasOwnProperty("dealstage")) ? deal.properties.dealstage.value : 0;
         var pipeline = (deal.properties.hasOwnProperty("pipeline")) ? deal.properties.pipeline.value : 0;
         var bewerbermanagementsystem = (deal.properties.hasOwnProperty("bewerbermanagementsystem")) ? deal.properties.bewerbermanagementsystem.value : "unknown";
         var amount = (deal.properties.hasOwnProperty("amount")) ? deal.properties.amount.value : 0;
         var dealname = (deal.properties.hasOwnProperty("dealname")) ? deal.properties.dealname.value : 0;
         var dealtype = (deal.properties.hasOwnProperty("dealtype")) ? deal.properties.dealtype.value : 0;
         deals.push([stageId,pipeline,bewerbermanagementsystem,amount,dealname,dealtype]);
      });
   }
   return deals;
}

HubSpot 提供的集成模塊很大程度上消除了編寫自定義代碼以將 HubSpot 數據提取到 Google 表格的需要。 集成模塊可以很好地維護當前的對象列表(聯系人、交易等),並且幾乎可以立即在 Sheets 中反映 HubSpot 中的數據。

也就是說,集成只返回屬性的“內部值”,例如對於交易階段,這些可能根本不直觀或不相關。

我修復了這個問題,我在表格中創建了一個映射表,它將從 HubSpot 導入的原始數據值轉換為表格中具有合理值的另一列:

名為 KeyValues 的工作表,其中包含默認 HubSpot 交易階段的鍵值對映射表

在 Google 表格中使用 XLOOKUP 數組 function,您可以將一整列原始 HubSpot 值轉換為有意義的重新標記值。 function 是:

={"Stage";arrayformula(if($A$2:$A="", "", XLOOKUP($C$2:$C, KeyValues!$A$2:$A, KeyValues!$B$2:$B, na(), 0, 1)))}

這個數組 function 一次將整個原始舞台列轉換為舞台列。 它應該放在數據集成表的header行中。 數組公式優於使用單獨的相對行級公式,因為它減少了 Sheets 所需的服務器往返次數並使計算速度更快。 然后,您可以將翻譯后的列提供給 pivot 表或其他計算。 我添加了與映射的Label字段關聯的索引值,以便於對 pivot 表中的類別進行排序。

顯示原始值和映射值的工作表

用於查找索引值的數組 function 與用於查找映射數據值的數組幾乎相同:

={"Index";arrayformula(if($A$2:$A="", "", XLOOKUP($C$2:$C, KeyValues!$A$2:$A, KeyValues!$C$2:$C, na(), 0, 1)))}

我發現 HubSpot 偶爾會混淆並添加重復行,因此我創建了Dupe列,該列根據唯一 ID(如交易名稱或 HubSpot recordID)標記重復值:

={"Dupe";arrayformula(if($A$2:$A="", "", COUNTIF($A$2:$A, $A$2:$A )-1))}

如果您確實看到重復項,了解 Google 表格中的哪一行實際上是 HubSpot 中的當前記錄非常重要; 您應該始終導出數據中的recordID ,然后您可以構造一個 URL 以使用如下公式查看 Sheets 行引用的內容:

={"URL";arrayformula(if($A$2:$A="", "", "https://app.hubspot.com/contacts/[Your HubSpot ID goes Here]/deal/"&$F2:F))}

工作表中不必要的(重復的)行將導致 HubSpot 出現 404 錯誤,因此您可以刪除該行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM