Uso de scripts y trabajos de servidor y Google Workspace para gestionar KPI: un estudio de caso

Hace unos meses, Vtiger presentó el Scripts y trabajos del servidor característica en la plataforma VTAP. Este artículo explora una aplicación práctica de esta función y muestra cómo el equipo de Vtiger la usa internamente para mantener a los miembros del equipo informados sobre sus indicadores clave de rendimiento (KPI).

Desafío: mantener a los equipos actualizados sobre los KPI

El equipo de ingeniería de Vtiger está compuesto por unidades más pequeñas que se centran en el rendimiento, la seguridad, la experiencia del usuario y los problemas de los clientes. Cada equipo tiene su propio conjunto de KPI para realizar un seguimiento del progreso respecto de los objetivos. Para garantizar que todos se mantengan informados, queríamos una forma de actualizar periódicamente a los equipos sobre sus objetivos y su desempeño actual.

Solución: Scripts y trabajos de Google Spaces y VTAP Server

Utilizamos Google Workspace para la comunicación interna, incluidos Google Chats y Grupos de Google. Cada equipo tiene un Google Space dedicado con miembros que influyen directamente en las métricas y son responsables de alcanzar los objetivos.

Google Chats ofrece webhooks para enviar mensajes automatizados a Spaces. Puede configurar estos webhooks navegando a Configuración del espacio > Aplicaciones e integraciones > Webhooks > Agregar webhook.

Para cada equipo, creamos un espacio dedicado. Por ejemplo, el grupo Ferrari rastrea los problemas de rendimiento capturados por herramientas internas y reportados por los clientes. Estas cuestiones se clasifican por impacto y se les asignan niveles de prioridad con sus correspondientes ponderaciones. Los problemas críticos que afectan a múltiples usuarios o servidores reciben la mayor ponderación (p. ej., 10 puntos), mientras que los problemas confinados a usuarios o funciones específicos reciben una ponderación menor (p. ej., 5 puntos). Agregamos todos los problemas reportados y calculamos una puntuación de índice. Una puntuación más alta indica una mayor necesidad de resolución, mientras que una puntuación más baja significa un progreso positivo.

La frecuencia de actualización de cada equipo varía según su flujo de trabajo. Los equipos de atención al cliente requieren actualizaciones diarias a las 10:00 a. m. para estar al tanto de los problemas críticos. Los equipos de rendimiento, cuyo trabajo implica análisis y validación, reciben actualizaciones dos veces por semana para permitir una investigación exhaustiva antes de publicar correcciones.

Crear un trabajo programado para actualizaciones diarias

Así es como configuramos un trabajo del lado del servidor para recordarle al equipo de atención al cliente su puntuación todos los días a las 10:00 a. m.:

  1. Navegue hasta la aplicación Plataforma en el menú principal y seleccione Trabajos del servidor.
  2. Cree un nuevo trabajo de servidor. Estos funcionan de manera similar a los trabajos cron y tienen un límite de ejecución de dos minutos.

Funcionalidad de trabajo del servidor

Requisito: envíe una notificación diaria sobre el índice de problemas del cliente a Google Space.

Solución:

  • Aprovechamos las API del servicio web de Vtiger para acceder a los datos de los informes. 
  • Se creó un informe personalizado en Vtiger para contar los problemas abiertos categorizados por prioridad.
  • Se informaron problemas dentro del módulo de Tareas de Vtiger.
  • El script del servidor utilizó las API HTTP de VTAP para acceder al informe y recuperar datos en formato JSON.
  • Se calcularon y agregaron las puntuaciones y se preparó una plantilla para enviar la información al webhook de Space.
  • Finalmente, las API HTTP de VTAP dentro del trabajo del servidor transmitieron los detalles al Espacio.
  • Nota: Se hablará más sobre las nuevas API de servicios web en los próximos meses.

Programación: La frecuencia del trabajo del servidor garantiza la entrega oportuna de información al grupo.

Código


  

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

 

Beneficios

Este enfoque automatizó el proceso de notificar a los equipos sobre sus KPI. Actualmente, utilizamos para garantizar que todos se mantengan informados y concentrados en lograr sus objetivos.

También ayuda a mejorar la eficiencia y la productividad de sus equipos.

 

Beneficios

Este enfoque automatizó el proceso de notificar a los equipos sobre sus KPI. Actualmente, utilizamos para garantizar que todos se mantengan informados y concentrados en lograr sus objetivos.

También ayuda a mejorar la eficiencia y la productividad de sus equipos.

 
 
 

Próximamente en VTAP

 
 

El módulo Data Connector Designer ofrece una interfaz de usuario y ayuda a la integración con otras aplicaciones.

Puede ver los datos de la aplicación dentro de la interfaz de Vtiger sin almacenar los datos en Vtiger. También puede habilitar una forma más segura y sencilla de implementar flujos de automatización que dependen de datos externos sin copiar los datos al CRM.

Estén atentos para obtener más información sobre esto en los próximos meses.

 

El módulo Data Connector Designer ofrece una interfaz de usuario y ayuda a la integración con otras aplicaciones.

Puede ver los datos de la aplicación dentro de la interfaz de Vtiger sin almacenar los datos en Vtiger. También puede habilitar una forma más segura y sencilla de implementar flujos de automatización que dependen de datos externos sin copiar los datos al CRM.

Estén atentos para obtener más información sobre esto en los próximos meses.

 
 

¡Regístrese para recibir las últimas actualizaciones!