Používanie serverových skriptov a úloh a Google Workspace na správu kľúčových ukazovateľov výkonu – prípadová štúdia

Pred niekoľkými mesiacmi spoločnosť Vtiger predstavila Serverové skripty a úlohy funkcie na platforme VTAP. Tento článok skúma praktickú aplikáciu tejto funkcie a ukazuje, ako ju tím Vtiger interne používa na informovanie členov tímu o ich kľúčových ukazovateľoch výkonu (KPI).

Výzva: Aktualizácia tímov o KPI

Tím inžinierov Vtiger pozostáva z menších jednotiek zameraných na výkon, bezpečnosť, používateľskú skúsenosť a problémy zákazníkov. Každý tím má svoj vlastný súbor KPI na sledovanie pokroku oproti cieľom. Aby sme zabezpečili, že každý zostane informovaný, chceli sme spôsob, ako pravidelne aktualizovať tímy o ich cieľoch a aktuálnom výkone.

Riešenie: Google Spaces a serverové skripty a úlohy VTAP

Google Workspace využívame na internú komunikáciu vrátane četov Google a Skupin Google. Každý tím má vyhradený priestor Google s členmi, ktorí priamo ovplyvňujú metriky a sú zodpovední za dosahovanie cieľov.

Služba Rozhovory Google ponúka webhooky na odosielanie automatických správ do služby Spaces. Tieto webhooky môžete nakonfigurovať tak, že prejdete na Nastavenia priestoru > Aplikácie a integrácie > Webhooky > Pridať webhook.

Pre každý tím sme vytvorili vyhradený priestor. Napríklad skupina Ferrari sleduje problémy s výkonom zachytené internými nástrojmi a nahlásené zákazníkmi. Tieto problémy sú kategorizované podľa vplyvu a sú im priradené úrovne priority s príslušnými váhami. Kritické problémy ovplyvňujúce viacerých používateľov alebo servery majú najvyššiu váhu (napr. 10 bodov), kým problémy obmedzené na konkrétnych používateľov alebo funkcie majú nižšiu váhu (napr. 5 bodov). Agregujeme všetky nahlásené problémy a vypočítame skóre indexu. Vyššie skóre znamená väčšiu potrebu rozlíšenia, zatiaľ čo nižšie skóre znamená pozitívny pokrok.

Frekvencia aktualizácií pre každý tím sa líši v závislosti od ich pracovného postupu. Tímy pre zákazníkov vyžadujú denné aktualizácie o 10:00, aby mali prehľad o kritických problémoch. Výkonnostné tímy, ktorých práca zahŕňa analýzu a overovanie, dostávajú aktualizácie dvakrát týždenne, aby umožnili dôkladné preskúmanie pred vydaním opráv.

Vytvorenie plánovanej úlohy pre denné aktualizácie

Takto sme nastavili úlohu na strane servera, aby sme tímu pre zákazníkov pripomenuli ich skóre každý deň o 10:00:

  1. Prejdite do aplikácie Platform v hlavnom menu a vyberte Server Jobs.
  2. Vytvorte novú úlohu servera. Tieto fungujú podobne ako úlohy cron a majú dvojminútový limit vykonania.

Funkčnosť úlohy servera

Požiadavka: Odosielajte denné upozornenie o indexe problémov zákazníka do služby Google Space.

Riešenie:

  • Na prístup k údajom prehľadov sme využili rozhrania API webových služieb Vtiger. 
  • Vlastná správa vo Vtiger bola vytvorená na počítanie otvorených problémov kategorizovaných podľa priority.
  • Problémy boli hlásené v rámci modulu Vtiger's Tasks.
  • Skript servera využíval rozhrania HTTP API VTAP na prístup k zostave a načítanie údajov vo formáte JSON.
  • Skóre sa vypočítali a agregovali a pripravila sa šablóna na odoslanie informácií do vesmírneho webhooku.
  • Nakoniec HTTP API VTAP v rámci úlohy servera preniesli podrobnosti do priestoru.
  • Poznámka: O nových API webových služieb sa bude viac diskutovať v nasledujúcich mesiacoch.

Plánovanie: Frekvencia úloh servera zabezpečuje včasné doručenie informácií skupine.

kód


  

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); }

 

Výhody

Tento prístup zautomatizoval proces oznamovania tímov o ich KPI. V súčasnosti sa snažíme zabezpečiť, aby každý zostal informovaný a sústredený na dosahovanie svojich cieľov.

Pomáha tiež zlepšiť efektivitu a produktivitu vašich tímov.

 

Výhody

Tento prístup zautomatizoval proces oznamovania tímov o ich KPI. V súčasnosti sa snažíme zabezpečiť, aby každý zostal informovaný a sústredený na dosahovanie svojich cieľov.

Pomáha tiež zlepšiť efektivitu a produktivitu vašich tímov.

 
 
 

Už čoskoro na VTAP

 
 

Modul Data Connector Designer ponúka používateľské rozhranie a pomáha integrovať sa s inými aplikáciami.

Údaje aplikácie môžete vidieť v rozhraní Vtiger bez ukladania údajov do Vtiger. Môžete tiež povoliť bezpečnejší a jednoduchší spôsob implementácie tokov automatizácie, ktoré závisia od externých údajov bez kopírovania údajov do CRM.

Zostaňte naladení a v nasledujúcich mesiacoch sa o tom dozviete viac.

 

Modul Data Connector Designer ponúka používateľské rozhranie a pomáha integrovať sa s inými aplikáciami.

Údaje aplikácie môžete vidieť v rozhraní Vtiger bez ukladania údajov do Vtiger. Môžete tiež povoliť bezpečnejší a jednoduchší spôsob implementácie tokov automatizácie, ktoré závisia od externých údajov bez kopírovania údajov do CRM.

Zostaňte naladení a v nasledujúcich mesiacoch sa o tom dozviete viac.

 
 

Prihláste sa a získajte najnovšie aktualizácie!