使用伺服器腳本、作業和 Google Workspace 管理 KPI - 案例研究

幾個月前,Vtiger 推出了 伺服器腳本和作業 VTAP 平台中的功能。本文探討了此功能的實際應用,並展示了 Vtiger 團隊如何在內部使用它來讓團隊成員了解其關鍵績效指標 (KPI)。

挑戰:讓團隊了解 KPI 的最新情況

Vtiger 工程團隊由較小的單位組成,專注於效能、安全性、使用者體驗和客戶問題。每個團隊都有自己的一套 KPI 來追蹤目標進度。為了確保每個人都能及時了解情況,我們希望有一種方法可以定期更新團隊的目標和當前績效。

解決方案:Google Spaces 和 VTAP 伺服器腳本和作業

我們利用 Google Workspace 進行內部溝通,包括 Google Chats 和 Google Groups。每個團隊都有一個專門的 Google Space,其成員直接影響指標並負責實現目標。

Google Chats 提供用於向 Spaces 發送自動訊息的網路鉤子。您可以透過導覽至空間設定 > 應用程式和整合 > Webhooks > 新增 Webhook 來設定這些 Webhook。

我們為每個團隊創造了一個專用的空間。例如,法拉利集團追蹤內部工具來捕獲並由客戶報告的效能問題。這些問題按影響進行分類,並指定優先順序和相應的權重。影響多個使用者或伺服器的關鍵問題獲得最高權重(例如,10分),而僅限於特定使用者或功能的問題獲得較低權重(例如,5分)。我們匯總所有報告的問題併計算指數得分。較高的分數表示更需要解決問題,而較低的分數表示積極的進展。

每個團隊的更新頻率會根據其工作流程而有所不同。面向客戶的團隊需要每天上午 10:00 進行更新,以掌握關鍵問題。性能團隊的工作涉及分析和驗證,每週兩次收到更新,以便在發布修復程序之前進行徹底調查。

建立每日更新的排程作業

以下是我們如何設定伺服器端作業以每天上午 10:00 提醒面向客戶的團隊他們的分數:

  1. 導航到主選單中的平台應用程序,然後選擇伺服器作業。
  2. 建立一個新的伺服器作業。這些功能與 cron 作業類似,並且有兩分鐘的執行限制。

伺服器作業功能

需求:向 Google Space 發送有關客戶問題索引的每日通知。

解決方案:

  • 我們利用 Vtiger 的 Web 服務 API 來存取報告資料。 
  • Vtiger 中建立了一個自訂報告來統計按優先級分類的未決問題。
  • Vtiger 的任務模組中報告了問題。
  • 伺服器腳本利用 VTAP 的 HTTP API 來存取報表並取得 JSON 格式的資料。
  • 計算並彙總分數,並準備好範本用於將資訊傳送到 Space webhook。
  • 最後,伺服器作業中的 VTAP 的 HTTP API 將詳細資訊傳輸到 Space。
  • 請注意: 未來幾個月我們將更深入討論新的 Web 服務 API。

調度:伺服器工作頻率確保及時傳遞訊息給群組。

推薦碼


  

asyncfunctionmain() { //Type your code here let url = "https://YOUR_ACCOUNT_URL/api/records/data?module=Reports&id=REPORT_ID"; var USERNAME = 'VTIGER_USERNAME'; var PASSWORD = 'VTIGER_PASSWORD'; var authHeader = btoa(USERNAME+":"+PASSWORD); var options = {           headers: {Authorization: 'Basic '+authHeader}       } var response = await vtap.macro.http.get(url, options); var body = JSON.parse(response.body); //extract information from the report. let data = {}; for(let i in body){ if("Bug" === body[i]["Calendar.tasktype"]) {         data[body[i]["Calendar.taskpriority"]] = body[i]["record_count"];     } } if(!data["URGENT"]) data['URGENT']=0; if(!data["High"]) data['High']=0; if(!data["Medium"]) data['Medium']=0; if(!data["Low"]) data['Low']=0; let text = "\n\n Today's open bugs tasks count - "+ newDate().toDateString()+'\n -------------------------------------\n'; text = text + "URGENT Tasks - "+data["URGENT"]+"\n"; text = text + "High Tasks - "+data["High"]+"\n"; text = text + "Medium Tasks - "+data["Medium"]+"\n"; text = text + "Low Tasks - "+data["Low"]+"\n"; text = text + "Performance Index Score : "+ ((10 * parseInt(data["URGENT"])) + (5 * parseInt(data['High'])) + (3 * parseInt(data['Medium']))) + "\n"; var options = {         headers : { 'contentType': 'application/json'         }, 'body' : JSON.stringify({'text':text})     }; let chatWebhookURL = "https://chat.googleapis.com/v1/spaces/zz/messages?key=yyyyyy&token=xxxxx";     vtap.macro.http.post(chatWebhookURL,options); }


  

asyncfunctionmain() { //Type your code here let url = "https://YOUR_ACCOUNT_URL/api/records/data?module=Reports&id=REPORT_ID"; var USERNAME = 'VTIGER_USERNAME'; var PASSWORD = 'VTIGER_PASSWORD'; var authHeader = btoa(USERNAME+":"+PASSWORD); var options = {           headers: {Authorization: 'Basic '+authHeader}       } var response = await vtap.macro.http.get(url, options); var body = JSON.parse(response.body); //extract information from the report. let data = {}; for(let i in body){ if("Bug" === body[i]["Calendar.tasktype"]) {         data[body[i]["Calendar.taskpriority"]] = body[i]["record_count"];     } } if(!data["URGENT"]) data['URGENT']=0; if(!data["High"]) data['High']=0; if(!data["Medium"]) data['Medium']=0; if(!data["Low"]) data['Low']=0; let text = "\n\n Today's open bugs tasks count - "+ newDate().toDateString()+'\n -------------------------------------\n'; text = text + "URGENT Tasks - "+data["URGENT"]+"\n"; text = text + "High Tasks - "+data["High"]+"\n"; text = text + "Medium Tasks - "+data["Medium"]+"\n"; text = text + "Low Tasks - "+data["Low"]+"\n"; text = text + "Performance Index Score : "+ ((10 * parseInt(data["URGENT"])) + (5 * parseInt(data['High'])) + (3 * parseInt(data['Medium']))) + "\n"; var options = {         headers : { 'contentType': 'application/json'         }, 'body' : JSON.stringify({'text':text})     }; let chatWebhookURL = "https://chat.googleapis.com/v1/spaces/zz/messages?key=yyyyyy&token=xxxxx";     vtap.macro.http.post(chatWebhookURL,options); }

 

優勢

這種方法自動化了向團隊通知其 KPI 的過程。目前,我們用來確保每個人都了解情況並專注於實現他們的目標。

它還有助於提高團隊的效率和生產力。

 

優勢

這種方法自動化了向團隊通知其 KPI 的過程。目前,我們用來確保每個人都了解情況並專注於實現他們的目標。

它還有助於提高團隊的效率和生產力。

 
 
 

即將在 VTAP 推出

 
 

數據連接器設計器模組提供使用者介面並協助與其他應用程式整合。

您可以在Vtiger介面中查看應用程式數據,而無需將數據儲存在Vtiger中。您也可以採用更安全、更簡單的方式來實施依賴外部資料的自動化流程,而無需將資料複製到 CRM。

請繼續關注,在未來幾個月內了解更多相關資訊。

 

數據連接器設計器模組提供使用者介面並協助與其他應用程式整合。

您可以在Vtiger介面中查看應用程式數據,而無需將數據儲存在Vtiger中。您也可以採用更安全、更簡單的方式來實施依賴外部資料的自動化流程,而無需將資料複製到 CRM。

請繼續關注,在未來幾個月內了解更多相關資訊。

 
 

註冊以接收最新更新!