نظام التنبيهات في Nama ERP
نظرة عامة
نظام التنبيهات في Nama ERP هو منصة تواصل شاملة ترسل تلقائياً تنبيهات للمستخدمين عند وقوع أحداث تجارية محددة. يستطيع النظام إرسال الرسائل عبر قنوات متعددة تشمل التنبيهات داخل التطبيق والبريد الإلكتروني والرسائل النصية القصيرة SMS وWhatsApp.
ما هو نظام التنبيهات؟
يراقب نظام التنبيهات الأنشطة التجارية داخل Nama ERP ويُطلق تلقائياً تواصلاً مع المستخدمين المعنيين وفق قواعد محددة مسبقاً. يعمل كجسر بين العمليات التجارية وتواصل المستخدمين، مما يضمن إطلاع أصحاب المصلحة على التغييرات المهمة أو الإجراءات التي تتطلب انتباههم.
المكونات الرئيسية
- محرك التنبيهات (Notification Engine) - النظام الأساسي الذي يراقب الأحداث ويُطلق التنبيهات
- معالج الرسائل (Message Renderer) - يحوّل القوالب إلى رسائل مخصصة
- قنوات التسليم (Delivery Channels) - الطرق المتنوعة لإرسال التنبيهات (البريد الإلكتروني، SMS، إلخ)
- تعريفات التنبيهات (Notification Definitions) - القواعد التي تحدد متى وإلى من تُرسل التنبيهات
كيف تعمل التنبيهات
1. اكتشاف الحدث
يكتشف النظام تلقائياً وقوع الأحداث التجارية، مثل:
- إنشاء سجل جديد (عميل، فاتورة، موظف، إلخ)
- تحديث السجلات الموجودة
- حذف السجلات
- سير عمل الاعتماد (الموافقة، الرفض، الإرجاع)
- تغييرات الحالة (مسودة، إلغاء، مراجعة)
- عمليات الطباعة
- أعطال النظام أو أخطاء المعالجة
2. مطابقة القواعد
عند وقوع حدث، يتحقق النظام من قواعد التنبيه المطابقة لـ:
- نوع الكيان (Entity Type): نوع السجل الذي تغيّر (مثل SalesInvoice، Customer)
- نوع التغيير (Change Type): ما الذي حدث (إدراج، تحديث، حذف، اعتماد، إلخ)
- المعايير (Conditions): شروط إضافية يجب استيفاؤها
- الأولوية (Priority): تُعالج القواعد بترتيب الأولوية
3. تحديد المستلمين
يحدد النظام من يجب أن يتلقى التنبيهات بناءً على:
- الاستهداف المستند إلى الحقل: الإرسال للمستخدمين المشار إليهم في حقول محددة (مثل مندوب المبيعات، المدير)
- الاستهداف المستند إلى الاستعلام: استخدام استعلامات قاعدة البيانات لإيجاد المستلمين
- الاستهداف المستند إلى الدور: الإرسال للمستخدمين ذوي الأدوار أو الوظائف المحددة
- الاستهداف اليدوي: مستلمون محددون بشكل صريح
4. توليد الرسائل
تُنشأ الرسائل باستخدام قوالب ديناميكية يمكنها تضمين:
- قيم الحقول من السجل المُغيَّر
- معلومات السجلات المرتبطة
- محتوى مخصص للمستخدم
- روابط للسجلات ذات الصلة
- جداول وبيانات منسقة
5. التسليم متعدد القنوات
يستطيع النظام تسليم التنبيه ذاته عبر قنوات متعددة:
- التنبيهات داخل التطبيق (In-App Notifications): تُعرض داخل واجهة ERP
- البريد الإلكتروني (Email): رسائل HTML غنية مع مرفقات وروابط
- رسائل SMS: رسائل نصية إلى الهواتف المحمولة
- WhatsApp: رسائل عبر WhatsApp Business API
- إشعارات FCM: إشعارات Push للأجهزة المحمولة
أنواع التنبيهات حسب الحدث التجاري
تنبيهات دورة حياة المستند
- الإنشاء: "تم إنشاء فاتورة مبيعات جديدة SI-2024-001 بواسطة John Smith"
- التحديثات: "تم تحديث معلومات الاتصال بالعميل ABC Corp"
- الاعتماد: "أمر الشراء PO-2024-123 يتطلب موافقتك"
- تغييرات الحالة: "تم إلغاء الفاتورة SI-2024-001"
تنبيهات سير العمل
- طلبات الاعتماد: إشعار المعتمدين عند احتياج المستندات للاعتماد
- قرارات الاعتماد: إعلام أصحاب المصلحة بنتائج الاعتماد
- التصعيد: تنبيه عند تأخر الاعتمادات
- الإرجاع: إشعار عند إرجاع المستندات للمراجعة
تنبيهات النظام
- أعطال العمليات: تنبيه المديرين بأخطاء النظام
- مشكلات النسخ المتماثل: إشعار بمشكلات مزامنة البيانات
- المهام المجدولة: نتائج العمليات الآلية
قواعد الأعمال المخصصة
- تنبيهات الحدود: الإشعار عند تجاوز القيم للحدود المحددة
- تذكيرات المواعيد النهائية: التنبيه عند اقتراب تواريخ الاستحقاق
- تنبيهات الامتثال: ضمان استيفاء المتطلبات التنظيمية
قوالب الرسائل والمحتوى الديناميكي
لغة القوالب (Tempo)
تستخدم رسائل التنبيه لغة قوالب Tempo لإنشاء محتوى ديناميكي ومخصص. يتيح ذلك تضمين الرسائل لـ:
Dear {customer.name1},
Your invoice {code} dated {valueDate} with amount {money.total}
has been {translate(status)}.
You can view the invoice details here: {link($this)}
Best regards,
{$user.name1}الوصول الديناميكي للحقول
يمكن للقوالب الوصول إلى أي حقل من السجل أو السجلات المرتبطة:
{code}- كود السجل{customer.name1}- الاسم العربي للعميل{employee.contactInfo.email}- عنوان البريد الإلكتروني للموظف{details.item.item.name2}- اسم الصنف من سطور المستند
المحتوى الشرطي
عرض محتوى مختلف بناءً على الشروط:
{if(money.remaining)}
Outstanding amount: {money.remaining}
{else}
This invoice is fully paid
{endif}الحلقات والجداول
عرض المعلومات المتكررة كسطور المستند:
{opentable}
{row}{cell}Item{cell}Quantity{cell}Price{endrow}
{loop(details)}
{row}{cell}{details.item.item.name2}{cell}{details.quantity}{cell}{details.price.unitPrice}{endrow}
{endloop}
{closetable}سجل التغييرات (Audit Trail)
تضمين معلومات التغييرات التفصيلية في التنبيهات (لتنبيهات التحديث):
{changesAsHtmlAr} {comment}Changes in HTML format (Arabic){endcomment}
{changesAsHtmlEn} {comment}Changes in HTML format (English){endcomment}
{changesAsTextAr} {comment}Changes in plain text (Arabic){endcomment}
{changesAsTextEn} {comment}Changes in plain text (English){endcomment}راجع توثيق Tempo للاطلاع على أمثلة تفصيلية وطريقة الاستخدام.
قنوات التنبيه بالتفصيل
التنبيهات داخل التطبيق
- تظهر في لوحة التنبيهات الخاصة بالمستخدم داخل Nama ERP
- تتضمن تتبع حالة المقروء/غير المقروء
- يمكن أن تحتوي على تنسيق غني وروابط
- تدعم أزرار الإجراءات (موافقة، رفض، إلخ)
- تُعلَّم تلقائياً كمقروءة عند الوصول للسجلات المرتبطة
تنبيهات البريد الإلكتروني
- تدعم تنسيق HTML مع صور مضمنة
- يمكن تضمين مرفقات الملفات من السجل
- توقيعات البريد الإلكتروني والعلامة التجارية التلقائية
- عناوين الرد للتواصل ثنائي الاتجاه
- تأكيد التسليم ومعالجة الارتداد
تنبيهات SMS
- رسائل نصية عادية تصل إلى 160 حرفاً
- دعم نص Unicode (العربي)
- تتبع حالة التسليم
- إدارة التكاليف والحصص
- التكامل مع مزودي SMS متعددين
رسائل WhatsApp Business
- دعم الوسائط الغنية (صور، مستندات)
- الرسائل القائمة على القوالب للامتثال
- إيصالات التسليم والقراءة
- التكامل مع WhatsApp Business API
- دعم الأزرار التفاعلية والردود السريعة
الميزات المتقدمة
سجل التغييرات في التنبيهات
من أقوى ميزات نظام التنبيهات هي القدرة على تضمين سجل التغييرات التفصيلي تلقائياً في التنبيهات. وهذا مفيد بشكل خاص لـ:
- تنبيهات التحديث: إظهار ما تغيّر عند تعديل سجل
- سير عمل الاعتماد: عرض التغييرات التي تحتاج اعتماداً
- مسارات المراجعة: تتبع التعديلات للامتثال
- وعي المستخدم: إبقاء الفرق على اطلاع بالتغييرات
استخدام حقول سجل التغييرات
يوفر كل كيان في Nama ERP أربعة حقول مدمجة لعرض سجل التغييرات:
| الحقل | التنسيق | اللغة | حالة الاستخدام |
|---|---|---|---|
{$changesAsHtmlAr} | HTML | العربية | تنبيهات بريد إلكتروني غنية بالعربية |
{$changesAsHtmlEn} | HTML | الإنجليزية | تنبيهات بريد إلكتروني غنية بالإنجليزية |
{$changesAsTextAr} | نص عادي | العربية | رسائل SMS وتنبيهات بسيطة بالعربية |
{$changesAsTextEn} | نص عادي | الإنجليزية | رسائل SMS وتنبيهات بسيطة بالإنجليزية |
مثال: تنبيه التحديث مع التغييرات
قالب التنبيه لتحديثات المستندات:
{subject}تحديث: {entityType.$arabic} رقم {code}{endsubject}
<div style="font-family: Arial, sans-serif;">
<h2>تم تعديل {entityType.$arabic} رقم {code}</h2>
<div style="background-color: #f5f5f5; padding: 15px; border-radius: 5px;">
<h3>التغييرات التي تم إجراؤها:</h3>
{$changesAsHtmlAr}
</div>
<p><strong>تم التعديل بواسطة:</strong> {$user.name1}</p>
<p><strong>تاريخ ووقت التعديل:</strong> {$now}</p>
<a href="{link($this)}" style="background-color: #4CAF50; color: white; padding: 10px 20px; text-decoration: none; border-radius: 5px;">
عرض المستند
</a>
</div>مثال: طلب الاعتماد مع ملخص التغييرات
قالب لتنبيهات الاعتماد:
{subject}طلب اعتماد {entityType.$arabic}: {code}{endsubject}
<h2>السيد المحترم {currentApprovalCase.lastStep.actualResponsible.name1}</h2>
<p>يرجى مراجعة واعتماد {entityType.$arabic} التالي:</p>
<div style="border: 1px solid #ddd; padding: 10px; margin: 10px 0;">
<strong>رقم المستند:</strong> {code}<br/>
<strong>التاريخ:</strong> {valueDate}<br/>
<strong>القيمة:</strong> {money.total}
</div>
<div style="background-color: #fff3cd; padding: 15px; border-left: 4px solid #ffc107;">
<h3>التغييرات المطلوب اعتمادها:</h3>
{$changesAsHtmlAr}
</div>
<div style="margin-top: 20px;">
{approvelink} | {rejectlink} | {returnlink}
</div>مثال: تنبيه التغييرات متعدد اللغات
قالب يدعم العربية والإنجليزية:
{subject}Document Update / تحديث المستند: {code}{endsubject}
<div style="direction: rtl; text-align: right; margin-bottom: 30px;">
<h2>تحديث المستند رقم {code}</h2>
<h3>التغييرات:</h3>
{$changesAsHtmlAr}
</div>
<hr style="margin: 30px 0;"/>
<div style="direction: ltr; text-align: left;">
<h2>Document {code} Updated</h2>
<h3>Changes:</h3>
{$changesAsHtmlEn}
</div>
<p style="text-align: center; margin-top: 30px;">
<a href="{link($this)}">View Document / عرض المستند</a>
</p>مثال: تنبيه SMS مع تغييرات نصية
قالب لتنبيهات SMS:
تحديث: {code}
{$changesAsTextAr}
للعرض: {link($this, plainLink=true)}ما هي المعلومات التي يتم عرضها
يتضمن سجل التغييرات تلقائياً:
تغييرات الحقول الرئيسية
- اسم الحقل (مترجم إلى اللغة المختارة)
- القيمة السابقة
- القيمة الجديدة
تغييرات سطور التفاصيل
- السطور المضافة مع جميع قيم الحقول
- السطور المحذوفة مع جميع قيم الحقول
- السطور المعدَّلة مع إظهار الحقول المتغيرة فقط
بيانات التغيير
- المستخدم الذي أجرى التغيير
- تاريخ ووقت التعديل
أفضل الممارسات
اختيار التنسيق المناسب
- استخدم تنسيق HTML لتنبيهات البريد الإلكتروني التي تريد فيها جداول وأنماط منسقة
- استخدم تنسيق النص لرسائل SMS والبريد الإلكتروني النصي أو عند الحاجة لمخرجات بسيطة
- اختر اللغة بناءً على اللغة المفضلة للمستلم
- فكر في تقديم اللغتين للفرق الدولية
اعتبارات الأداء
يُحسب سجل التغييرات ديناميكياً عند إرسال التنبيه. بالنسبة للتنبيهات ذات المستلمين الكثيرين، يُحسَّن ذلك بحساب النتيجة مرة واحدة وإعادة استخدامها.
العرض الشرطي
يمكنك التحقق من وجود تغييرات قبل عرضها:
{if($changesAsTextAr)}
<div class="changes-section">
<h3>التغييرات</h3>
{$changesAsHtmlAr}
</div>
{else}
<p>لا توجد تغييرات مسجلة</p>
{endif}دعم الرسائل المتعددة
يمكن لقالب تنبيه واحد توليد رسائل متعددة:
{openmsg}
{sendto}{customer.email}{endsendto}
{subject}Invoice {code} - Customer Copy{endsubject}
Dear Customer, your invoice is ready...
{closemsg}
{openmsg}
{sendto}{salesperson.email}{endsendto}
{subject}Invoice {code} - Sales Copy{endsubject}
Dear Sales Team, invoice {code} was sent to customer...
{closemsg}أمثلة على استعلامات المستلمين
تتيح ميزة استعلام المستلمين تحديد مستلمي التنبيهات ديناميكياً باستخدام استعلامات قاعدة البيانات. وهذا مفيد للسيناريوهات التي لا يُشار فيها مباشرةً للمستلمين في السجل المُشغِّل.
متطلبات تنسيق الاستعلام
يجب أن يُرجع الاستعلام عمودَي entityType وid بهذا الترتيب تحديداً. ستُتجاهل أي أعمدة إضافية.
مثال: إشعار الشركات الفرعية عند قيام الشركة الأم بالدفع
عندما تقوم شركة أم (عميل) بسداد دفعة، قد ترغب في إشعار جميع شركاتها الفرعية. استخدم هذا الاستعلام:
select entityType, id from Customer where parent_id = {relatedSubsidiary.id}هذا الاستعلام:
- يجد جميع سجلات Customer حيث
parent_idيطابق الشركة الفرعية للسجل الحالي - يُرجع نوع الكيان والمعرف لكل عميل مطابق
- يُرسل نظام التنبيهات بعد ذلك تنبيهات لجهات الاتصال المرتبطة بكل عميل تم إيجاده
الإرسال الشرطي
التحكم في وقت إرسال التنبيهات بناءً على:
- قيم الحقول والمعايير
- أدوار المستخدمين وصلاحياتهم
- قواعد زمنية
- معايير منطق الأعمال
الأولوية والتصعيد
- تنبيهات عالية الأولوية للأمور العاجلة
- تصعيد تلقائي في حال عدم الرد خلال الإطار الزمني
- مستلمون بديلون عند عدم توفر المستلمين الأساسيين
- طرق تنبيه مختلفة بناءً على مستوى الإلحاح
تكامل الاعتماد
دعم خاص لسير عمل الاعتماد:
- تنبيهات طلب الاعتماد مع أزرار الإجراءات
- التوجيه التلقائي للمعتمد التالي
- التصعيد للمشرفين عند تأخر الاعتمادات
- إشعار قرارات الاعتماد لأصحاب المصلحة
الإعداد والإدارة
تعريفات التنبيهات
يستطيع المديرون إنشاء وإدارة قواعد التنبيه عبر واجهة ERP:
- تحديد شروط التشغيل
- تحديد المستلمين المستهدفين
- إنشاء قوالب الرسائل
- تكوين قنوات التسليم
- ضبط قواعد الأولوية والتوقيت
إدارة القوالب
- محرر قوالب مرئي مع تمييز صيغ البرمجة
- قدرات اختبار القوالب ومعاينتها
- التحكم في الإصدارات وتتبع التغييرات
- مكتبات القوالب للأنماط الشائعة
- التحقق من الصحة والتحقق من الأخطاء
إعدادات التسليم
- تكوين خوادم البريد الإلكتروني والمصادقة
- إعداد اتصالات مزود SMS
- تكامل WhatsApp Business API
- سياسات إعادة محاولة التسليم ومعالجة الإخفاق
- مراقبة الأداء والتسجيل
تفضيلات المستخدم
يستطيع المستخدمون الأفراد التحكم في تفضيلات التنبيه الخاصة بهم:
- اختيار قنوات التسليم المفضلة
- ضبط ساعات الصمت وأوضاع الإجازة
- تصفية أنواع التنبيهات
- تجميع التنبيهات المتشابهة
- إعدادات الإشعارات Push للتطبيق المحمول
أفضل الممارسات
تصميم القوالب
- اجعل الرسائل موجزة وقابلة للتنفيذ
- استخدم لغة واضحة ومهنية
- أدرج سياقاً وروابط ذات صلة
- اختبر القوالب ببيانات نموذجية
- راعِ تنسيق الأجهزة المحمولة
تحسين الأداء
- استخدم استعلامات قاعدة بيانات فعّالة للاستهداف
- تجنب إرسال تنبيهات مكررة
- نفّذ آليات إعادة المحاولة المناسبة
- راقب معدلات نجاح التسليم
- أرشف التنبيهات القديمة بانتظام
اعتبارات الأمان
- تحقق من جميع مدخلات القوالب
- نظّف المحتوى الديناميكي
- احمِ المعلومات الحساسة
- استخدم قنوات تسليم آمنة
- راجع الوصول للتنبيهات
تجربة المستخدم
- قدّم ملخصات تنبيهات واضحة
- جمّع التنبيهات المتعلقة ببعضها
- وفّر خيارات إلغاء اشتراك سهلة
- أدرج معلومات المساعدة والتواصل
- حافظ على علامة تجارية متسقة
نظام التنبيهات في Nama ERP هو أداة قوية تعزز التواصل التجاري وتحسّن كفاءة العمليات وتضمن وصول المعلومات المهمة إلى الأشخاص المناسبين في الوقت المناسب. من خلال الاستفادة من القوالب الديناميكية وقنوات التسليم المتعددة والاستهداف الذكي، يمكن للمؤسسات بناء بنية تحتية للتواصل متجاوبة وفعّالة تدعم عملياتها التجارية.