[英]Google Apps Script - Changing values in a range of google sheets cells
[英]Displaying Labels instead of Internal Values (Google Apps Script/Google Sheets/HubSpot)
你可以說我是一個真正的編碼新手。 現在我正在嘗試通過 Google Apps 腳本和 Google 表格將 HubSpot 帳戶連接到 Google Data Studio。 我從這個例子中的簡單內容開始:
我嘗試像上面示例中的那樣構建我的代碼。 問題是,我正在獲取交易所在的“交易階段”和“管道”(如果您願意的話,狀態)的內部值,而不是“附加”到內部值的相應標簽或名稱(見照片)
其他東西,如交易名稱(或圖片中的“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 導入的原始數據值轉換為表格中具有合理值的另一列:
在 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.