استخدام البرامج النصية للخادم والوظائف وGoogle Workspace لإدارة مؤشرات الأداء الرئيسية - دراسة حالة

قبل بضعة أشهر، قدم Vtiger البرامج النصية للخادم ووظائفه ميزة في منصة VTAP. تستكشف هذه المقالة التطبيق العملي لهذه الميزة وتعرض كيفية استخدام فريق Vtiger لها داخليًا لإبقاء أعضاء الفريق على اطلاع بمؤشرات الأداء الرئيسية (KPIs).

التحدي: إبقاء الفرق على اطلاع دائم بمؤشرات الأداء الرئيسية

يتألف فريق Vtiger الهندسي من وحدات أصغر تركز على الأداء والأمان وتجربة المستخدم ومشكلات العملاء. كل فريق لديه مجموعته الخاصة من مؤشرات الأداء الرئيسية لتتبع التقدم المحرز في تحقيق الأهداف. ولضمان بقاء الجميع على اطلاع، أردنا طريقة لإطلاع الفرق على أهدافهم وأدائهم الحالي بانتظام.

الحل: البرامج النصية والوظائف لـ Google Spaces وVTAP Server

نحن نستخدم Google Workspace للاتصالات الداخلية، بما في ذلك محادثات Google ومجموعات Google. يمتلك كل فريق مساحة Google مخصصة تضم أعضاء يؤثرون بشكل مباشر على المقاييس ويكونون مسؤولين عن تحقيق الأهداف.

تقدم Google Chats خطافات الويب لإرسال رسائل تلقائية إلى Spaces. يمكنك تكوين خطافات الويب هذه من خلال الانتقال إلى إعدادات المساحة > التطبيقات وعمليات التكامل > خطافات الويب > إضافة خطاف ويب.

لكل فريق، قمنا بإنشاء مساحة مخصصة. على سبيل المثال، تقوم مجموعة فيراري بتتبع مشكلات الأداء التي تم التقاطها بواسطة الأدوات الداخلية والإبلاغ عنها من قبل العملاء. يتم تصنيف هذه المشكلات حسب التأثير ويتم تعيين مستويات الأولوية لها مع الأوزان المقابلة. تحظى المشكلات الحرجة التي تؤثر على العديد من المستخدمين أو الخوادم بأعلى وزن (على سبيل المثال، 10 نقاط)، بينما تحصل المشكلات التي تقتصر على مستخدمين أو ميزات محددة على وزن أقل (على سبيل المثال، 5 نقاط). نقوم بتجميع كافة المشكلات التي تم الإبلاغ عنها وحساب درجة المؤشر. تشير الدرجة الأعلى إلى حاجة أكبر للحل، في حين تشير الدرجة المنخفضة إلى تقدم إيجابي.

يختلف تكرار التحديث لكل فريق بناءً على سير العمل الخاص به. تتطلب الفرق التي تتعامل مع العملاء تحديثات يومية في الساعة 10:00 صباحًا للبقاء على اطلاع على المشكلات الحرجة. تتلقى فرق الأداء، التي يتضمن عملها التحليل والتحقق من الصحة، تحديثات مرتين في الأسبوع للسماح بإجراء تحقيق شامل قبل إصدار الإصلاحات.

إنشاء مهمة مجدولة للتحديثات اليومية

فيما يلي كيفية إعداد مهمة من جانب الخادم لتذكير الفريق الذي يتعامل مع العملاء بنتائجهم كل يوم في الساعة 10:00 صباحًا:

  1. انتقل إلى تطبيق النظام الأساسي في القائمة الرئيسية وحدد وظائف الخادم.
  2. إنشاء وظيفة خادم جديدة. تعمل هذه الوظائف بشكل مشابه لوظائف cron ولها حد تنفيذ مدته دقيقتان.

وظائف وظيفة الخادم

متطلبات: أرسل إشعارًا يوميًا حول فهرس مشكلات العملاء إلى Google Space.

الحلول:

  • لقد استفدنا من واجهات برمجة التطبيقات لخدمة الويب الخاصة بـ Vtiger للوصول إلى بيانات التقرير. 
  • تم إنشاء تقرير مخصص في Vtiger لحساب المشكلات المفتوحة المصنفة حسب الأولوية.
  • تم الإبلاغ عن مشكلات داخل وحدة مهام Vtiger.
  • استخدم البرنامج النصي للخادم واجهات برمجة تطبيقات HTTP الخاصة بـ VTAP للوصول إلى التقرير وجلب البيانات بتنسيق JSON.
  • تم حساب النتائج وتجميعها، وتم إعداد قالب لإرسال المعلومات إلى خطاف الويب الخاص بالفضاء.
  • أخيرًا، قامت واجهات برمجة تطبيقات HTTP الخاصة بـ VTAP داخل مهمة الخادم بنقل التفاصيل إلى المساحة.
  • ملاحظة: سيتم مناقشة المزيد حول واجهات برمجة التطبيقات الجديدة لخدمة الويب في الأشهر المقبلة.

جدولة: يضمن تكرار مهمة الخادم تسليم المعلومات إلى المجموعة في الوقت المناسب.

رمز


  

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

 

الفوائد

يعمل هذا النهج على أتمتة عملية إخطار الفرق حول مؤشرات الأداء الرئيسية الخاصة بهم. نستخدم حاليًا لضمان بقاء الجميع على اطلاع وتركيز على تحقيق أهدافهم.

كما أنه يساعد على تحسين كفاءة وإنتاجية فرقك.

 

الفوائد

يعمل هذا النهج على أتمتة عملية إخطار الفرق حول مؤشرات الأداء الرئيسية الخاصة بهم. نستخدم حاليًا لضمان بقاء الجميع على اطلاع وتركيز على تحقيق أهدافهم.

كما أنه يساعد على تحسين كفاءة وإنتاجية فرقك.

 
 
 

قريبا على VTAP

 
 

توفر وحدة Data Connector Designer واجهة مستخدم وتساعد على التكامل مع التطبيقات الأخرى.

يمكنك رؤية بيانات التطبيق داخل واجهة Vtiger دون تخزين البيانات في Vtiger. يمكنك أيضًا تمكين طريقة أكثر أمانًا وأسهل لتنفيذ تدفقات الأتمتة التي تعتمد على البيانات الخارجية دون نسخ البيانات إلى CRM.

ترقبوا معرفة المزيد عن هذا في الأشهر المقبلة.

 

توفر وحدة Data Connector Designer واجهة مستخدم وتساعد على التكامل مع التطبيقات الأخرى.

يمكنك رؤية بيانات التطبيق داخل واجهة Vtiger دون تخزين البيانات في Vtiger. يمكنك أيضًا تمكين طريقة أكثر أمانًا وأسهل لتنفيذ تدفقات الأتمتة التي تعتمد على البيانات الخارجية دون نسخ البيانات إلى CRM.

ترقبوا معرفة المزيد عن هذا في الأشهر المقبلة.

 
 

قم بالتسجيل لتلقي آخر التحديثات!