Използване на сървърни скриптове и работни места и Google Workspace за управление на KPI - Казус от практиката

Преди няколко месеца Vtiger представи Сървърни скриптове и задачи функция в платформата VTAP. Тази статия изследва практическо приложение на тази функция и демонстрира как екипът на Vtiger я използва вътрешно, за да информира членовете на екипа за техните ключови показатели за ефективност (KPI).

Предизвикателство: Поддържане на екипите актуализирани относно KPI

Инженерният екип на Vtiger се състои от по-малки звена, фокусирани върху производителността, сигурността, потребителското изживяване и проблемите на клиентите. Всеки екип има свой собствен набор от KPI за проследяване на напредъка спрямо целите. За да гарантираме, че всички остават информирани, искахме начин да актуализираме редовно екипите за техните цели и текущо представяне.

Решение: Google Spaces и VTAP сървърни скриптове и задачи

Ние използваме Google Workspace за вътрешна комуникация, включително Google Chats и Google Groups. Всеки екип има специално Google пространство с членове, които пряко влияят на показателите и отговарят за постигането на целите.

Google Chats предлага уеб кукички за изпращане на автоматизирани съобщения до Spaces. Можете да конфигурирате тези уебкукички, като отидете до Настройки на пространството > Приложения и интеграции > Уебкукички > Добавяне на уебкукичка.

За всеки екип създадохме специално пространство. Например групата Ferrari проследява проблеми с производителността, уловени от вътрешни инструменти и докладвани от клиенти. Тези проблеми са категоризирани по въздействие и са присвоени нива на приоритет със съответните тежести. Критичните проблеми, засягащи множество потребители или сървъри, получават най-висока тежест (напр. 10 точки), докато проблемите, ограничени до конкретни потребители или функции, получават по-ниска тежест (напр. 5 точки). Обединяваме всички докладвани проблеми и изчисляваме индексен резултат. По-висок резултат показва по-голяма нужда от разрешаване, докато по-нисък резултат означава положителен напредък.

Честотата на актуализиране за всеки екип варира в зависимост от техния работен процес. Екипите, работещи с клиенти, изискват ежедневни актуализации в 10:00 сутринта, за да бъдат в крак с критичните проблеми. Екипите за ефективност, чиято работа включва анализ и валидиране, получават актуализации два пъти седмично, за да позволят задълбочено проучване, преди да пуснат корекции.

Създаване на планирано задание за ежедневни актуализации

Ето как настроихме работа от страна на сървъра, за да напомняме на екипа, работещ с клиенти, за техния резултат всеки ден в 10:00 ч.:

  1. Отидете до приложението Platform в главното меню и изберете Server Jobs.
  2. Създайте ново сървърно задание. Те функционират подобно на cron заданията и имат ограничение за изпълнение от две минути.

Функционалност на работата на сървъра

Изискване: Изпращайте ежедневно известие за индекса на клиентския проблем до Google Space.

Решение:

  • Използвахме API на уеб услугата на Vtiger за достъп до данните от отчетите. 
  • Създаден е персонализиран отчет във Vtiger за отчитане на откритите проблеми, категоризирани по приоритет.
  • Бяха докладвани проблеми в модула за задачи на Vtiger.
  • Сървърният скрипт използва HTTP API на VTAP за достъп до отчета и извличане на данни във формат JSON.
  • Резултатите бяха изчислени и обобщени и беше подготвен шаблон за изпращане на информацията към Space webhook.
  • И накрая, HTTP API на VTAP в рамките на заданието на сървъра предаде подробностите на пространството.
  • Забележка: През следващите месеци ще бъде обсъдено повече относно новите API на уеб услугите.

Scheduling: Честотата на работата на сървъра осигурява навременна доставка на информация до групата.

код


  

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

 
 

Модулът Data Connector Designer предлага потребителски интерфейс и помага за интегрирането с други приложения.

Можете да видите данните на приложението в интерфейса на Vtiger, без да съхранявате данните във Vtiger. Можете също така да активирате по-сигурен и по-лесен начин за внедряване на потоци за автоматизация, които зависят от външни данни, без да копирате данните в CRM.

Останете на линия, за да научите повече за това през следващите месеци.

 

Модулът Data Connector Designer предлага потребителски интерфейс и помага за интегрирането с други приложения.

Можете да видите данните на приложението в интерфейса на Vtiger, без да съхранявате данните във Vtiger. Можете също така да активирате по-сигурен и по-лесен начин за внедряване на потоци за автоматизация, които зависят от външни данни, без да копирате данните в CRM.

Останете на линия, за да научите повече за това през следващите месеци.

 
 

Регистрирайте се, за да получавате най-новите актуализации!