Korištenje poslužiteljskih skripti i poslova i Google Workspacea za upravljanje KPI-jevima - studija slučaja

Prije nekoliko mjeseci Vtiger je predstavio Poslužiteljske skripte i poslovi značajka u VTAP platformi. Ovaj članak istražuje praktičnu primjenu ove značajke i prikazuje kako je Vtiger tim interno koristi kako bi članove tima informirao o njihovim ključnim pokazateljima učinka (KPI).

Izazov: Održavanje timova ažuriranim o KPI-jevima

Inženjerski tim Vtigera sastoji se od manjih jedinica koje se fokusiraju na izvedbu, sigurnost, korisničko iskustvo i pitanja kupaca. Svaki tim ima vlastiti skup KPI-jeva za praćenje napretka prema ciljevima. Kako bismo osigurali da svi ostanu informirani, željeli smo način da redovito informiramo timove o njihovim ciljevima i trenutnoj izvedbi.

Rješenje: Google Spaces i VTAP poslužiteljske skripte i poslovi

Koristimo Google Workspace za internu komunikaciju, uključujući Google Chatove i Google Grupe. Svaki tim ima namjenski Google prostor s članovima koji izravno utječu na metriku i odgovorni su za postizanje ciljeva.

Google Chat nudi web-dojavnike za slanje automatiziranih poruka u Spaces. Ove web-dojavnike možete konfigurirati tako da odete na Postavke prostora > Aplikacije i integracije > Web-dojavnici > Dodaj web-dojavljivač.

Za svaki tim kreirali smo poseban prostor. Na primjer, grupa Ferrari prati probleme s performansama koje su uhvatili interni alati i prijavili kupci. Ovi problemi su kategorizirani prema utjecaju i dodijeljene su im razine prioriteta s odgovarajućim ponderima. Kritični problemi koji utječu na više korisnika ili poslužitelja dobivaju najveću težinu (npr. 10 bodova), dok problemi ograničeni na određene korisnike ili značajke dobivaju nižu težinu (npr. 5 bodova). Skupljamo sve prijavljene probleme i izračunavamo ocjenu indeksa. Viši rezultat ukazuje na veću potrebu za rješenjem, dok niži rezultat označava pozitivan napredak.

Učestalost ažuriranja za svaki tim razlikuje se ovisno o njihovom tijeku rada. Timovi koji se suočavaju s klijentima zahtijevaju dnevna ažuriranja u 10:00 kako bi ostali u tijeku s kritičnim problemima. Timovi za izvedbu, čiji rad uključuje analizu i provjeru valjanosti, primaju ažuriranja dvaput tjedno kako bi se omogućila temeljita istraga prije objavljivanja popravaka.

Stvaranje planiranog posla za dnevna ažuriranja

Evo kako smo postavili posao na strani poslužitelja da podsjećamo tim koji radi s korisnicima na njihov rezultat svaki dan u 10:00:

  1. Dođite do aplikacije Platforma u glavnom izborniku i odaberite Poslovi poslužitelja.
  2. Stvorite novi posao poslužitelja. Oni funkcioniraju slično cron poslovima i imaju ograničenje izvršenja od dvije minute.

Funkcionalnost posla poslužitelja

Zahtjev: Pošaljite dnevnu obavijest o indeksu problema korisnika u Google Space.

Riješenje:

  • Iskoristili smo API-je Vtigerove web usluge za pristup podacima izvješća. 
  • Prilagođeno izvješće u Vtigeru stvoreno je za brojanje otvorenih problema kategoriziranih po prioritetu.
  • Problemi su prijavljeni unutar Vtigerovog modula Zadaci.
  • Skripta poslužitelja koristila je VTAP-ov HTTP API za pristup izvješću i dohvaćanje podataka u JSON formatu.
  • Rezultati su izračunati i agregirani te je pripremljen predložak za slanje informacija u Space webhook.
  • Konačno, VTAP-ov HTTP API-ji unutar posla poslužitelja prenijeli su detalje u prostor.
  • Bilješka: Više će se raspravljati o novim API-jima web usluga u nadolazećim mjesecima.

Zakazivanje: Učestalost posla poslužitelja osigurava pravovremenu dostavu informacija grupi.

Kodirati


  

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

 

Pogodnosti

Ovaj pristup automatizirao je proces obavještavanja timova o njihovim KPI-jevima. Trenutno koristimo kako bismo osigurali da svi ostanu informirani i usredotočeni na postizanje svojih ciljeva.

Također pomaže poboljšati učinkovitost i produktivnost vaših timova.

 

Pogodnosti

Ovaj pristup automatizirao je proces obavještavanja timova o njihovim KPI-jevima. Trenutno koristimo kako bismo osigurali da svi ostanu informirani i usredotočeni na postizanje svojih ciljeva.

Također pomaže poboljšati učinkovitost i produktivnost vaših timova.

 
 
 

Uskoro na VTAP-u

 
 

Modul Data Connector Designer nudi korisničko sučelje i pomaže u integraciji s drugim aplikacijama.

Možete vidjeti podatke aplikacije unutar Vtiger sučelja bez pohranjivanja podataka u Vtiger. Također možete omogućiti sigurniji i lakši način implementacije automatiziranih tokova koji ovise o vanjskim podacima bez kopiranja podataka u CRM.

Pratite nas kako biste saznali više o tome u nadolazećim mjesecima.

 

Modul Data Connector Designer nudi korisničko sučelje i pomaže u integraciji s drugim aplikacijama.

Možete vidjeti podatke aplikacije unutar Vtiger sučelja bez pohranjivanja podataka u Vtiger. Također možete omogućiti sigurniji i lakši način implementacije automatiziranih tokova koji ovise o vanjskim podacima bez kopiranja podataka u CRM.

Pratite nas kako biste saznali više o tome u nadolazećim mjesecima.

 
 

Prijavite se za primanje najnovijih ažuriranja!