عقدة مجدول التذكيرات: أتمتة تذكيرات البريد المبنية على التاريخ

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

ما هي؟

تراقب عقدة مجدول التذكيرات (Reminder Scheduler) مجموعة سجلات، مثل تواريخ انتهاء العقود أو المواعيد النهائية لتجديد المستندات أو مراحل المشروع، وترسل تلقائيًا تذكيرات بالبريد إلى المستلمين المحددين في فواصل معدّة قبل حلول كل تاريخ.

بعد الإعداد، تعمل العقدة باستمرار في الخلفية ما دام سير العمل نشطًا. تتحقق من مصدر البيانات، وتحسب السجلات ذات التواريخ القريبة، وترسل تذكيرًا عند كل إزاحة معدّة، مثل قبل 30 يومًا وقبل 7 أيام وفي اليوم نفسه. وعندما يتغير تاريخ صف أو عنوان بريده في بيانات المصدر، تستطيع العقدة اكتشاف التغيير فورًا وإعادة حساب التذكير التالي من دون تدخل يدوي.

صُممت العقدة للعمل إلى جانب عقدة استعلام قاعدة البيانات (DB Query) التي تجلب مجموعة البيانات التي يراقبها المجدول.

أهميتها وفوائدها الرئيسية

  • عدم تفويت موعد نهائي مهم. يعمل المجدول على مدار الساعة من دون الحاجة إلى فحص جدول بيانات أو تقويم. ويحصل كل سجل ذي تاريخ قريب على تذكيره تلقائيًا.
  • نقاط تذكير عدة لكل سجل. أعدّ أي عدد تتطلبه عمليتك من الإزاحات، مثل 30 يومًا و7 أيام ويوم واحد قبل الموعد وفي يومه، مع رسالة مستقلة لكل إزاحة.
  • رسائل مخصصة ببيانات كل صف. يدعم الموضوع والنص علامات الدمج {{row.column_name}}، فتضم كل رسالة اسم السجل الحقيقي وموعده وأي حقل آخر من البيانات من دون تخصيص يدوي.
  • التكيف تلقائيًا عند تغير البيانات. عندما يُؤجّل تاريخ أو يتحدث عنوان بريد في المصدر، تعيد ميزة اكتشاف التغيير حساب التذكيرات فورًا، من دون إعادة تشغيل سير العمل أو إعداد العقدة.
  • تحكم تشغيلي. تعرض علامة التذكيرات في قاعدة بيانات سير العمل حالة التذكيرات المعدّة، وتتيح للمشغّلين المخوّلين عرض السجلات أو تحريرها أو إلغاءها أو حذفها باستخدام الإجراءات المتاحة لكل حالة.

قبل أن تبدأ

  • يلزم دور المشرف لإعداد هذه العقدة.
  • يجب أن يحتوي سير العمل على عقدة استعلام قاعدة بيانات سابقة لمجدول التذكيرات. تجلب عقدة الاستعلام السجلات، أي الصفوف، ذات التواريخ المطلوب مراقبتها.
  • يجب أن تعرف أسماء الأعمدة في مصدر بياناتك:
    • عمود مفتاح يعرّف كل صف بصورة فريدة، مثل id أو contract_number؛
    • عمود تاريخ للموعد النهائي المراد مراقبته، مثل expiry_date أو renewal_date؛
    • عمود بريد لعنوان المستلم في كل صف، مثل owner_email أو responsible_person.
  • يجب حفظ سير العمل وجعل حالته نشطًا (Active) قبل بدء الجدولة.
  • يجب إعداد حساب بريد واحد على الأقل في إعدادات البريد بالمنصة.

طريقة الاستخدام خطوة بخطوة

الخطوة 1 — إضافة عقدة استعلام قاعدة بيانات قبل المجدول

يقرأ مجدول التذكيرات بياناته من إخراج عقدة استعلام قاعدة بيانات. ويجب أن تكون تلك العقدة متصلة وسابقة له.

  1. افتح سير العمل في المصمم المرئي باختيار تحرير (Edit) من شاشة إدارة سير العمل.
  2. اسحب عقدة استعلام قاعدة بيانات من الشريط الجانبي إلى اللوحة، وصِلها بمسار سير العمل.
  3. انقرها نقرًا مزدوجًا وأعدّها لجلب السجلات المطلوب مراقبتها، مثل استعلام يعيد عقودًا بأعمدة id وname وexpiry_date وowner_email.
  4. امنح العقدة تسمية يسهل التعرف عليها، ودوّن اسم متغير الإخراج (Output Variable) الذي تنتجه، مثل db_rows.
  5. احفظ عقدة استعلام قاعدة البيانات.

الخطوة 2 — إضافة عقدة مجدول التذكيرات

  1. اعثر في الشريط الجانبي على مجدول التذكيرات (Reminder Scheduler) تحت العُقد المنطقية أو المتقدمة.
  2. اسحبه إلى اللوحة وصِله بعد عقدة استعلام قاعدة البيانات.

الخطوة 3 — فتح إعدادات مجدول التذكيرات

  1. انقر العقدة نقرًا مزدوجًا. تفتح لوحة إعداد بعنوان Reminder Scheduler Node.

الخطوة 4 — اختيار مصدر البيانات

إذا كانت عقدة استعلام قاعدة بيانات متصلة قبله:

  1. تعرض قائمة متغير الصفوف (Rows Variable) تحت مصدر البيانات (Data Source) عُقد الاستعلام السابقة المتاحة. اختر العقدة التي يحتوي متغير إخراجها على سجلاتك، مثل عقدة «سجلات العقود» ذات المتغير db_rows.
  2. يُملأ حقل جدول المصدر (Source Table) تلقائيًا باسم الجدول المكتشف من عقدة الاستعلام، ويظهر للقراءة فقط.

إذا لم تكن هناك عقدة استعلام متصلة بعد، بالإدخال اليدوي:

  1. اكتب في حقل متغير الصفوف اسم متغير إخراج عقدة الاستعلام، مثل db_rows.
  2. اكتب في حقل الجدول (Table) تحت جدول المصدر اسم جدول قاعدة البيانات الدقيق، مثل contracts.

الخطوة 5 — ربط الأعمدة

  1. املأ في قسم ربط الأعمدة (Column Mapping):

    الحقل ما تدخله
    عمود المفتاح (Key Column) العمود الذي يعرّف كل صف بصورة فريدة، مثل id أو contract_number. القيمة الافتراضية id.
    عمود التاريخ (Date Column) العمود الذي يحتوي التاريخ المطلوب مراقبته، مثل expiry_date أو deadline. القيمة الافتراضية deadline.
    عمود البريد (Email Column) العمود الذي يحتوي عنوان بريد مستلم كل صف، مثل owner_email أو contact_email. القيمة الافتراضية email.
  2. يجب أن تطابق أسماء الأعمدة هذه تمامًا الأسماء التي تعيدها عقدة استعلام قاعدة البيانات.


الخطوة 6 — إعداد إزاحات التذكير

يحدد قسم إزاحات التذكير (Reminder Offsets) توقيت إرسال كل رسالة بالنسبة إلى عمود التاريخ. لكل إزاحة:

  • التسمية (Label) — اسم مقروء يظهر في سجل التدقيق، مثل «قبل 7 أيام» أو «في اليوم نفسه»؛
  • الأيام (Days) — عدد الأيام قبل التاريخ لإرسال التذكير. استخدم 0 ليوم الموعد نفسه.

الإزاحات الافتراضية هي:

  • قبل 7 أيام، التسمية 7d والأيام 7؛
  • قبل يوم واحد، التسمية 1d والأيام 1؛
  • في اليوم نفسه، التسمية 0d والأيام 0.

لإضافة إزاحة مخصصة:

  1. اكتب في حقل التسمية أسفل قسم الإزاحات اسمًا، مثل «قبل أسبوعين».
  2. اكتب في حقل الأيام عدد الأيام قبل التاريخ، مثل 14.
  3. انقر إضافة (Add). تظهر الإزاحة الجديدة كوسم في القائمة.

لإزالة إزاحة:

  1. انقر X على وسم الإزاحة لإزالتها.

يجب إعداد إزاحة واحدة على الأقل؛ يظل زر حفظ معطلًا حتى توجد واحدة.


الخطوة 7 — كتابة قالب البريد

  1. املأ في قسم قالب البريد (Email Template):

    الموضوع (Subject) — سطر موضوع الرسالة. استخدم {{row.column_name}} لإدراج قيمة من بيانات الصف الحالي.

    مثال: تذكير: ينتهي {{row.contract_name}} خلال {{row.days_remaining}} يومًا

    النص (Body) — نص الرسالة. استخدم نصًا عاديًا مع علامات الدمج {{row.column_name}}.

    مثال:

    مرحبًا،
    
    هذا تذكير بأن العقد {{row.contract_name}} سينتهي في {{row.expiry_date}}.
    
    يرجى اتخاذ إجراء التجديد اللازم قبل الموعد النهائي.
    
    مع التحية،
    نظام سير العمل في RAPTIX
    

    يمكن استخدام أي اسم عمود تعيده عقدة الاستعلام بصيغة {{row.column_name}}.


الخطوة 8 — إعداد الخيارات المتقدمة

  1. في قسم متقدم (Advanced):

    المنطقة الزمنية للمصدر (Source Timezone) — اختر المنطقة الزمنية التي تُخزن بها تواريخ بياناتك، لضمان إرسال التذكيرات في الوقت الصحيح بالنسبة إلى المنطقة المحلية للبيانات.

    الخيارات المتاحة: Africa/Cairo وUTC وAmerica/New_York وAmerica/Los_Angeles وEurope/London وEurope/Paris وAsia/Dubai وAsia/Riyadh وAsia/Kolkata.

    التثبيت التلقائي لمُشغّل اكتشاف التغيير (Auto-install change detection trigger) — عندما تحدد هذا المربع، وهو موصى به، يثبّت النظام تلقائيًا مستمعًا لتغييرات قاعدة البيانات في جدول المصدر. وهذا يعني:

    • عند إدراج صف جديد، يُنشأ جدول تذكيراته فورًا؛
    • عند تغير تاريخ صف أو بريده، يُعاد حساب جدول تذكيراته فورًا؛
    • عند حذف صف، تُلغى تذكيراته المعلّقة تلقائيًا.

    إذا ألغيت التحديد، تُكتشف التغييرات كل 5 دقائق باستخدام وضع الاستقصاء بدلًا من اكتشافها فورًا.

    تشغيل سير العمل عند (Trigger workflow on): تتحكم ثلاثة مربعات مستقلة في أنواع تغير الصفوف التي تعيد حساب التذكيرات:

    مربع التحديد ما يتحكم فيه
    INSERT، إضافة صف جديد تحصل السجلات الجديدة تلقائيًا على جدول تذكيراتها. مفعّل افتراضيًا.
    UPDATE، تغير تاريخ الصف أو بريده تُعاد حساب التذكيرات عند تغير التاريخ أو البريد. معطل افتراضيًا؛ فعّله إذا كانت التواريخ تتغير كثيرًا.
    DELETE، إزالة صف وإلغاء التذكير تُلغى التذكيرات المعلّقة عند حذف الصف. مفعّل افتراضيًا.

الخطوة 9 — حفظ الإعداد

  1. انقر حفظ (Save) أسفل يمين اللوحة. تتحدث عقدة مجدول التذكيرات في اللوحة وتعرض رمز جرس.

  2. احفظ سير العمل كاملًا بزر حفظ في شريط أدوات المصمم أو باستخدام Ctrl+S.

  3. تأكد من أن حالة سير العمل نشط (Active) في شاشة إدارة سير العمل؛ إذ لا تعمل التذكيرات إلا للمسارات النشطة.


مراقبة التذكيرات

بعد تنشيط سير العمل:

  • افتح قاعدة بيانات سير العمل من رأس إدارة سير العمل، ثم اختر التذكيرات.
  • انقر علامة التذكيرات (Reminders).
  • سترى قائمة بكل إدخالات التذكير المعدّة مع حالتها، مثل نشط أو ملغى، وإعداد توقيتها وسير العمل المرتبط بها.
  • يعرض سجل الإرسال (Send History) لكل تذكير الرسائل التي أُرسلت والمستلمين وأوقات الإرسال.
  • لإيقاف تذكير محدد مؤقتًا، اختره واستخدم الإجراء المتاح. ولإلغائه، استخدم خيار الإلغاء.

شرح الخيارات والإعدادات

الإعداد القسم ما يفعله
الجدول (Table) جدول المصدر جدول قاعدة البيانات الذي يراقبه المجدول. يُملأ تلقائيًا من عقدة استعلام متصلة، أو يُدخل يدويًا.
عمود المفتاح ربط الأعمدة عمود المعرّف الفريد، ويُستخدم لمطابقة الصفوف عبر دورات الاستقصاء.
عمود التاريخ ربط الأعمدة حقل التاريخ الذي يؤدي اقترابه إلى تشغيل التذكيرات.
عمود البريد ربط الأعمدة الحقل الذي يحتوي عنوان بريد المستلم لكل صف.
متغير الصفوف مصدر البيانات اسم المتغير من عقدة الاستعلام السابقة الذي يحتوي على الصفوف.
تسمية الإزاحة إزاحات التذكير اسم مقروء لتوقيت كل تذكير، يظهر في سجلات التدقيق.
أيام الإزاحة إزاحات التذكير عدد الأيام قبل التاريخ لإرسال التذكير؛ 0 يعني يوم الموعد.
الموضوع قالب البريد موضوع رسالة التذكير، ويدعم علامات {{row.column_name}}.
النص قالب البريد نص رسالة التذكير، ويدعم علامات {{row.column_name}}.
المنطقة الزمنية للمصدر متقدم المنطقة الزمنية لتواريخ المصدر، وتؤثر في حساب «اليوم».
التثبيت التلقائي لمُشغّل اكتشاف التغيير متقدم يكتشف تغيرات جدول المصدر فورًا بدلًا من كل 5 دقائق عند تمكينه.
مُشغّل INSERT متقدم يكتشف الصفوف الجديدة ويجدول تذكيراتها.
مُشغّل UPDATE متقدم يكتشف تغير تاريخ الصف أو بريده ويعيد جدولة تذكيراته.
مُشغّل DELETE متقدم يلغي التذكيرات المعلّقة عند حذف الصف.

نصائح وأفضل الممارسات

  • فعّل مُشغّلي INSERT وDELETE دائمًا. من دون اكتشاف INSERT، لا تحصل السجلات الجديدة بعد بدء سير العمل على تذكيرات حتى دورة الاستقصاء التالية. ومن دون DELETE، قد تستمر التذكيرات بعد زوال السجل الأصلي.
  • فعّل اكتشاف UPDATE عندما يمكن أن تتغير المواعيد. إذا سمحت العملية بتمديد المواعيد، وهو شائع في إدارة العقود، ففعّله ليُعاد حساب الجدول بدلًا من إرسال تذكيرات قديمة.
  • استخدم المنطقة الزمنية للمصدر بطريقة صحيحة. إذا كانت التواريخ مخزنة بتوقيت UTC والمستخدمون في القاهرة، فاختر Africa/Cairo ليُرسل تذكير «يوم الموعد» في التاريخ المحلي الصحيح.
  • اختبر أولًا بتاريخ قريب. قبل النشر، أضف مؤقتًا صف اختبار بتاريخ بعد يوم وبريد تجريبي للتأكد من وصول التذكيرات في الموعد وبالمحتوى الصحيح.
  • اجعل نص البريد موجزًا. تكون رسائل التذكير أكثر فاعلية عندما تكون قصيرة وموجهة إلى إجراء. ضمّن الحقول الأساسية، مثل اسم السجل والموعد والإجراء المطلوب، من دون إضافات.
  • استخدم تسميات وصفية للإزاحات. تكون «قبل التجديد بـ30 يومًا» أوضح من 30d، وتظهر التسميات في علامة التذكيرات بقاعدة بيانات سير العمل.
  • أضف رابطًا أو خطوات تالية في النص. إذا كان على المستلمين اتخاذ إجراء، فاربط مباشرة بالنظام أو المستند أو سير العمل المعني.

الأسئلة الشائعة

س: ماذا يحدث إذا فشل إرسال رسالة تذكير؟

يمكن التحقق من الإرسال الفاشل في قاعدة بيانات سير العمل باستخدام التذكيرات والإشعارات. راجع الخطأ وعدد المحاولات قبل تحديد ما إذا كان ينبغي لسير العمل توليد تذكير آخر.

س: هل يمكن إرسال التذكير إلى أكثر من شخص لكل سجل؟

يرتبط حقل عمود البريد بعنوان واحد لكل صف. لإشعار عدة أشخاص، إما: أ) تخزين قائمة مفصولة بفواصل في عمود البريد وإعداد نظام البريد للتعامل معها، أو ب) إضافة عدة عُقد مجدول تذكيرات تشير إلى أعمدة مختلفة، مثل primary_email وsecondary_email.

س: هل تستمر التذكيرات إذا أُعيد تشغيل الخادم أثناء جدولتها؟

نعم. يُحفظ جدول التذكيرات بصورة دائمة. بعد إعادة التشغيل، يستأنف المجدول من موضعه ويرسل أي تذكيرات استحقت أثناء التوقف.

س: ماذا لو مر تاريخ سجل ثم أضفته بعد ذلك؟

لا تُرسل التذكيرات إلا للتواريخ المستقبلية. إذا أُدرج صف بتاريخ ماضٍ، فلا تُرسل الإزاحات الماضية؛ ولا تنطبق إلا النقاط التي لا تزال مستقبلية.

س: هل يمكنني إيقاف كل تذكيرات سير عمل مؤقتًا؟

نعم. اضبط سير العمل على غير نشط (Inactive) في شاشة إدارة سير العمل. يوقف ذلك كل نشاطه، بما فيه المجدول. أعد تنشيطه للاستئناف.

س: ما معنى وضع الاستقصاء، ومتى أستخدمه؟

عند إلغاء تحديد التثبيت التلقائي للمُشغّل، يتحقق المجدول من التغييرات كل 5 دقائق بدلًا من اكتشافها فورًا. استخدم هذا الوضع عندما لا تسمح صلاحيات قاعدة البيانات بتثبيت المُشغّلات أو عندما تكون مُشغّلات مستوى قاعدة البيانات مقيّدة. ويقابله تأخير محتمل قدره 5 دقائق قبل تحديث جدول السجلات الجديدة أو المعدلة.

س: هل يمكن إضافة عدة عُقد مجدول تذكيرات إلى سير العمل نفسه؟

نعم. يمكن لكل عقدة مراقبة مصدر مختلف أو استخدام ربط أعمدة وإزاحات مختلفة، مثل عقدة لتجديد العقود وأخرى لمواعيد فحص المعدات.

س: كيف أزيل إزاحة لم أعد أحتاج إليها؟

افتح إعدادات العقدة، واعثر على وسم الإزاحة في قسم الإزاحات، وانقر زر X. احفظ العقدة. لا تتأثر التذكيرات التي سبق إرسالها لتلك الإزاحة.

هل ما زلت بحاجة إلى مساعدة؟ راجع الحصول على مساعدة من الدعم أو تواصل مع مسؤول مساحة العمل.