Serverscripts, banen en Google Workspace gebruiken om KPI's te beheren - een casestudy

Een paar maanden geleden introduceerde Vtiger de Serverscripts en -taken functie in het VTAP-platform. Dit artikel onderzoekt een praktische toepassing van deze functie en laat zien hoe het Vtiger-team deze intern gebruikt om teamleden op de hoogte te houden van hun Key Performance Indicators (KPI's).

Uitdaging: teams op de hoogte houden van KPI's

Het technische team van Vtiger bestaat uit kleinere eenheden die zich richten op prestaties, beveiliging, gebruikerservaring en klantproblemen. Elk team heeft zijn eigen set KPI's om de voortgang ten opzichte van de doelstellingen te volgen. Om ervoor te zorgen dat iedereen op de hoogte blijft, wilden we een manier om teams regelmatig op de hoogte te houden van hun doelstellingen en huidige prestaties.

Oplossing: Google Spaces en VTAP-serverscripts en -taken

We gebruiken Google Workspace voor interne communicatie, waaronder Google Chats en Google Discussiegroepen. Elk team heeft een speciale Google Space met leden die rechtstreeks invloed hebben op de statistieken en verantwoordelijk zijn voor het behalen van doelstellingen.

Google Chats biedt webhooks voor het verzenden van geautomatiseerde berichten naar Spaces. U kunt deze webhooks configureren door naar Space-instellingen > Apps en integraties > Webhooks > Webhook toevoegen te navigeren.

Voor elk team hebben we een speciale ruimte gecreëerd. De Ferrari-groep houdt bijvoorbeeld prestatieproblemen bij die zijn vastgelegd door interne tools en gerapporteerd door klanten. Deze kwesties worden gecategoriseerd op basis van hun impact en krijgen prioriteitsniveaus toegewezen met bijbehorende gewichten. Kritieke problemen die betrekking hebben op meerdere gebruikers of servers krijgen het hoogste gewicht (bijvoorbeeld 10 punten), terwijl problemen die beperkt zijn tot specifieke gebruikers of functies een lager gewicht krijgen (bijvoorbeeld 5 punten). We verzamelen alle gemelde problemen en berekenen een indexscore. Een hogere score duidt op een grotere behoefte aan oplossing, terwijl een lagere score positieve vooruitgang betekent.

De updatefrequentie voor elk team varieert op basis van hun workflow. Klantgerichte teams hebben dagelijks om 10 uur updates nodig om kritieke problemen onder controle te houden. Prestatieteams, wier werk analyse en validatie omvat, ontvangen twee keer per week updates om grondig onderzoek mogelijk te maken voordat oplossingen worden vrijgegeven.

Een geplande taak maken voor dagelijkse updates

Zo hebben we een taak op de server opgezet om het klantgerichte team elke dag om 10:00 uur aan hun score te herinneren:

  1. Navigeer naar de Platform-app in het hoofdmenu en selecteer Servertaken.
  2. Maak een nieuwe servertaak. Deze werken op dezelfde manier als cron-taken en hebben een uitvoeringslimiet van twee minuten.

Servertaakfunctionaliteit

eis: stuur dagelijks een melding over de klantprobleemindex naar Google Space.

Het resultaat:

  • We hebben de webservice-API's van Vtiger gebruikt om toegang te krijgen tot rapportgegevens. 
  • Er is een aangepast rapport in Vtiger gemaakt om openstaande problemen te tellen, gecategoriseerd op prioriteit.
  • Er zijn problemen gemeld binnen de takenmodule van Vtiger.
  • Het serverscript maakte gebruik van de HTTP-API's van VTAP om toegang te krijgen tot het rapport en gegevens op te halen in JSON-indeling.
  • Scores werden berekend en samengevoegd, en er werd een sjabloon opgesteld om de informatie naar de Space-webhook te verzenden.
  • Ten slotte hebben de HTTP-API's van VTAP binnen de servertaak de details naar de Space verzonden.
  • Let op: De komende maanden zal er meer worden besproken over de nieuwe webservice-API's.

Scheduling: De servertaakfrequentie zorgt voor een tijdige levering van informatie aan de groep.

Code


  

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

 

Voordelen:

Deze aanpak automatiseerde het proces van het informeren van teams over hun KPI’s. Momenteel gebruiken we om ervoor te zorgen dat iedereen op de hoogte blijft en gefocust blijft op het bereiken van zijn of haar doelen.

Het helpt ook de efficiëntie en de productiviteit van uw teams te verbeteren.

 

Voordelen:

Deze aanpak automatiseerde het proces van het informeren van teams over hun KPI’s. Momenteel gebruiken we om ervoor te zorgen dat iedereen op de hoogte blijft en gefocust blijft op het bereiken van zijn of haar doelen.

Het helpt ook de efficiëntie en de productiviteit van uw teams te verbeteren.

 
 
 

Binnenkort te zien op VTAP

 
 

De Data Connector Designer-module biedt een gebruikersinterface en helpt bij de integratie met andere applicaties.

U kunt applicatiegegevens binnen de Vtiger-interface bekijken zonder de gegevens in Vtiger op te slaan. U kunt ook een veiligere en eenvoudigere manier mogelijk maken om automatiseringsstromen te implementeren die afhankelijk zijn van externe gegevens, zonder de gegevens naar de CRM te kopiëren.

Blijf ons volgen om hier de komende maanden meer over te leren.

 

De Data Connector Designer-module biedt een gebruikersinterface en helpt bij de integratie met andere applicaties.

U kunt applicatiegegevens binnen de Vtiger-interface bekijken zonder de gegevens in Vtiger op te slaan. U kunt ook een veiligere en eenvoudigere manier mogelijk maken om automatiseringsstromen te implementeren die afhankelijk zijn van externe gegevens, zonder de gegevens naar de CRM te kopiëren.

Blijf ons volgen om hier de komende maanden meer over te leren.

 
 

Schrijf je in om de laatste updates te ontvangen!