تنفيذ نظام إشعار بالموافقة عبر البريد الإلكتروني من خطوتين في جداول بيانات Google

تنفيذ نظام إشعار بالموافقة عبر البريد الإلكتروني من خطوتين في جداول بيانات Google
Google Sheets

أتمتة إخطارات الموافقة في سير عمل جداول البيانات

في بيئات الأعمال سريعة الخطى اليوم، يمكن أن تؤثر كفاءة عمليات الموافقة بشكل كبير على سير العمل التشغيلي. تعتمد العديد من المؤسسات على جداول بيانات Google لإدارة المهام مثل طلبات الموافقة نظرًا لمرونتها وسهولة الوصول إليها. وينشأ تحدٍ شائع عند تنفيذ نظام آلي لهذه العمليات، خاصة عندما يتضمن آلية موافقة من خطوتين. ويتطلب هذا النظام إرسال بريد إلكتروني آلي إلى قسم تكنولوجيا المعلومات بعد الحصول على الموافقات المبدئية والنهائية، على أن تتحول حالة الطلب إلى "موافق عليه".

ومع ذلك، فإن أتمتة هذه العملية عبر Google Apps Script يمثل تحديًا غريبًا. لا يتم تنشيط مشغل "onEdit" المدمج، وهو أمر بالغ الأهمية لبدء إرسال البريد الإلكتروني، للتغييرات التي يتم إجراؤها برمجيًا - فقط لتلك التي يتم إجراؤها من خلال التفاعل المباشر مع المستخدم. يشكل هذا القيد عقبة كبيرة في الحالات التي يتم فيها تنفيذ تحديث الحالة من "معلق" إلى "معتمد" بواسطة برنامج نصي. تضع هذه المقدمة الأساس لاستكشاف الحلول لدمج إشعارات البريد الإلكتروني الآلية بسلاسة ضمن سير عمل الموافقة المستند إلى جداول بيانات Google، مما يضمن الاتصال في الوقت المناسب وكفاءة العملية.

يأمر وصف
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Approvals") الوصول إلى جدول البيانات النشط واسترداد ورقة تسمى "الموافقات".
getDataRange() يحصل على كافة البيانات الموجودة في الورقة كنطاق.
getValues() إرجاع قيم الخلايا الموجودة في النطاق كمصفوفة ثنائية الأبعاد.
MailApp.sendEmail(email, subject, body) يرسل بريدًا إلكترونيًا يحتوي على المستلم والموضوع والنص المحدد.
sheet.getRange(i + 1, emailSentColumn + 1).setValue("sent") يضبط قيمة خلية معينة على "مرسل"، مما يشير إلى إرسال بريد إلكتروني.
google.script.run يستدعي وظيفة Google Apps Script من تطبيق ويب.
withSuccessHandler(function()) يحدد وظيفة ليتم تشغيلها في حالة نجاح استدعاء google.script.run.
withFailureHandler(function(err)) يحدد دالة يتم تشغيلها في حالة فشل استدعاء google.script.run، ويمرر الخطأ كوسيطة.
updateStatusInSheet(approvalId, status) وظيفة Google Apps Script مخصصة (غير معروضة في مقتطف الشفرة) تعمل على تحديث حالة طلب الموافقة في جدول البيانات.

فك رموز آلية البريد الإلكتروني الآلي

يهدف نظام تشغيل البريد الإلكتروني الآلي الذي صممته لجداول بيانات Google في المقام الأول إلى تبسيط عملية الموافقة داخل المؤسسات، خاصة بالنسبة للحالات التي تتطلب موافقة من مانحين متعددين قبل المتابعة. يتفاعل الجزء الأول من الحل، المصمم في Google Apps Script، بشكل مباشر مع جداول بيانات Google حيث يتم تسجيل حالات الموافقة. يتحقق البرنامج النصي من ورقة "الموافقات" بأكملها بحثًا عن الصفوف التي قام كل من المعتمد 1 والموافق 2 بوضع علامة "موافق عليه" على موافقتهما. وهذا أمر بالغ الأهمية لأن النص البرمجي يهدف إلى العمل فقط عند منح كلا الموافقتين، مما يعكس طلبًا معتمدًا بالكامل. ولتحقيق ذلك، يتكرر البرنامج النصي خلال كل صف، ويفحص الأعمدة المحددة المخصصة لقرار كل معتمد والحالة العامة للطلب. عندما يستوفي الصف المعايير - تمت الموافقة على كلا المعتمدين، ويتم تعيين الحالة إلى "موافق عليه" - يقوم البرنامج النصي بتشغيل بريد إلكتروني إلى قسم تكنولوجيا المعلومات. يتم إرسال إشعار البريد الإلكتروني هذا باستخدام خدمة MailApp، وهي جزء من Google Apps Script الذي يسهل إرسال البريد الإلكتروني مباشرة من البرنامج النصي. ويضمن إبلاغ قسم تكنولوجيا المعلومات على الفور بالطلب المعتمد، مما يسمح باتخاذ إجراء سريع.

تعمل آلية تحديث حالة الموافقة من خلال تطبيق ويب بمثابة النظير الأمامي لنظام البريد الإلكتروني الآلي. يعد هذا المكون مهمًا بشكل خاص لأن مشغل "onEdit" في جداول بيانات Google يستجيب فقط للتعديلات اليدوية، وليس التغييرات البرمجية. للتحايل على هذا القيد، تتيح واجهة الويب البسيطة للمستخدمين تحديث حالة طلب الموافقة. عند التفاعل، مثل النقر على زر لوضع علامة "موافق عليه" على الطلب، يستدعي تطبيق الويب وظيفة Google Apps Script من خلال الأمر "google.script.run". يعد هذا الأمر فعالاً لأنه يمكّن البرنامج النصي من تنفيذ الإجراءات في ورقة Google بناءً على المدخلات الواردة من واجهة الويب، مما يحاكي التعديلات اليدوية بشكل فعال. يمكن للبرنامج النصي بعد ذلك متابعة التحقق من التغييرات وإرسال رسائل البريد الإلكتروني كما هو مصمم، مما يؤدي إلى سد الفجوة التي أحدثتها قيود مشغل "onEdit". يضمن هذا الحل ثنائي المكونات أن تكون عملية الموافقة فعالة وقابلة للتكيف، وتلبي الحاجة إلى التدخلات اليدوية والآلية في سير العمل.

تبسيط إشعارات البريد الإلكتروني لمراحل الموافقة في تطبيقات جداول البيانات

Google Apps Script لمعالجة الخلفية

function checkApprovalsAndSendEmail() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Approvals");
  var range = sheet.getDataRange();
  var values = range.getValues();
  var emailSentColumn = 5; // Assuming the fifth column tracks email sending status
  var approver1Column = 2; // Column for approver 1's status
  var approver2Column = 3; // Column for approver 2's status
  var statusColumn = 4; // Column for the overall status
  for (var i = 1; i < values.length; i++) {
    var row = values[i];
    if (row[statusColumn] == "approved" && row[emailSentColumn] != "sent") {
      if (row[approver1Column] == "approved" && row[approver2Column] == "approved") {
        var email = "it@domain.com";
        var subject = "Approval Request Completed";
        var body = "The approval request for " + row[0] + " has been fully approved.";
        MailApp.sendEmail(email, subject, body);
        sheet.getRange(i + 1, emailSentColumn + 1).setValue("sent");
      }
    }
  }
}

تحديث حالة الموافقة تلقائيًا عبر تطبيق الويب

HTML وJavaScript للتفاعل مع الواجهة الأمامية

<!DOCTYPE html>
<html>
<head>
<title>Approval Status Updater</title>
</head>
<body>
<script>
function updateApprovalStatus(approvalId, status) {
  google.script.run
    .withSuccessHandler(function() {
      alert('Status updated successfully.');
    })
    .withFailureHandler(function(err) {
      alert('Failed to update status: ' + err.message);
    })
    .updateStatusInSheet(approvalId, status);
}
</script>
<input type="button" value="Update Status" onclick="updateApprovalStatus('123', 'approved');" />
</body>
</html>

تعزيز كفاءة سير العمل من خلال أتمتة جداول البيانات

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

يؤكد هذا الأسلوب على أهمية تحديثات الحالة المُدارة برمجيًا داخل جدول البيانات، وهي طريقة تتجنب قيود مشغل "onEdit". ومن خلال استخدام برنامج نصي مخصص يستمع إلى تغييرات الحالة ويرسل إشعارات عبر البريد الإلكتروني وفقًا لذلك، يمكن للمؤسسات التحايل على عنق الزجاجة اليدوي، وبالتالي أتمتة عنصر مهم في سير العمل التشغيلي الخاص بها. لا يعمل هذا المحور المنهجي على تحسين عملية الموافقة فحسب، بل يقدم أيضًا مستوى من قابلية التوسع والقدرة على التكيف لم يكن من الممكن تحقيقه سابقًا من خلال العمليات اليدوية، مما يفتح الباب أمام نظام إدارة سير عمل أكثر ديناميكية واستجابة.

الأسئلة المتداولة حول أتمتة جداول البيانات

  1. سؤال: هل يمكن أن تعمل عملية الأتمتة لأي مستند في جداول بيانات Google؟
  2. إجابة: نعم، يمكن تطبيق الأتمتة على أي مستند في جداول بيانات Google، بشرط أن يتم تكوين البرنامج النصي بشكل صحيح لبنية هذا المستند المحدد.
  3. سؤال: هل المعرفة بالبرمجة مطلوبة لتنفيذ هذه البرامج النصية؟
  4. إجابة: تعد المعرفة الأساسية بالترميز في JavaScript مفيدة لتخصيص البرامج النصية وتنفيذها في Google Apps Script.
  5. سؤال: هل يمكن لمشغل البريد الإلكتروني الآلي التعامل مع طلبات الموافقة المتعددة في وقت واحد؟
  6. إجابة: نعم، يمكن للبرنامج النصي التعامل مع طلبات متعددة من خلال التكرار عبر صفوف البيانات والتحقق من حالة الموافقة لكل طلب.
  7. سؤال: ما مدى أمان العملية الآلية؟
  8. إجابة: تعتبر العملية آمنة مثل أي عملية لجداول بيانات Google وGoogle Apps Script، وذلك باستخدام بروتوكولات الأمان القياسية من Google لحماية البيانات.
  9. سؤال: هل يمكن للبرنامج النصي إرسال إشعارات إلى عناوين بريد إلكتروني متعددة؟
  10. إجابة: نعم، يمكن تعديل البرنامج النصي لإرسال إشعارات إلى عناوين بريد إلكتروني متعددة عن طريق ضبط معلمة المستلم في وظيفة MailApp.sendEmail.

تلخيص الرؤى والخطوات إلى الأمام

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