زاجلي
زاجلي

التواصل متعدد القنوات

Zagaly logo
زاجلي
زاجلي
Toggle sidebar

التوثيقات

مرحباً بك في توثيق زاجلي

كل ما تحتاجه لربط موقعك أو تطبيقك بقنوات الإشعارات القوية من زاجلي. اختر قناة من الشريط الجانبي للانتقال إليها مباشرة.

ابدأ العمل في 5 خطوات

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

1

اختر خطة

اختر اشتراكاً يناسب حجم فريقك وحجم الرسائل. يمكنك ترقية أو تغيير الخطط في أي وقت.

عرض الخطط →
2

اربط قناة

اضغط على أي قناة في الشريط الجانبي (واتساب، تيليجرام، البريد الإلكتروني، Web Push…). تفتح كل قناة مركزاً مخصصاً بستة تبويبات: الربط، جهات الاتصال، الحملات، القوالب، الأتمتة، والتقارير. ابدأ من تبويب الربط لتوصيل حسابك.

دليل واتساب →
3

استورد جهات اتصالك

داخل مركز القناة، اضغط على تبويب جهات الاتصال. استورد جهات الاتصال عبر CSV أو أضفها يدوياً. صنّفها وقسّمها لحملات مستهدفة.

دليل جهات الاتصال →
4

أنشئ قالب رسالة

Open the Templates tab inside any channel. Build reusable messages with dynamic variables like <?php echo e(name); ?> or <?php echo e(phone); ?> to personalize bulk sends. Templates can be cloned to other channels with one click.

دليل القوالب →
5

أرسل حملتك الأولى

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

دليل الحملات →

تنقل يبدأ بالقناة

كل قناة في الشريط الجانبي هي مركز مستقل بذاته. داخل كل مركز ستجد ستة تبويبات — الربط، جهات الاتصال، الحملات، القوالب، الأتمتة، والتقارير — جميعها خاصة بتلك القناة. تظل العروض العامة (كل القنوات مجتمعة) متاحة من عناصر الشريط الجانبي الرئيسية.

القنوات المدعومة

اضغط على أي قناة للانتقال إلى دليل إعدادها التفصيلي.

واتساب

Channel

اربط حساب واتساب الخاص بك لإرسال واستقبال الرسائل مباشرة من لوحة التحكم.

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

المتطلبات المسبقة

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

نصيحة احترافية

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

هل أنت جاهز لربط واتساب؟

افتح قناة واتساب لإدارة الرسائل والمحادثات من لوحة التحكم.

افتح قناة واتساب

واتساب (الرسمي)

Channel
Meta Cloud API

اربط رقم هاتف واتساب بزنس حقيقي عبر Cloud API الرسمي من Meta — مصمم للنمو، ورسائل القوالب، وصناديق الوارد متعددة الموظفين.

واتساب (الرسمي) يختلف عن واتساب القناة أعلاه. تلك تربط الهاتف عبر جلسة برمز QR (رائعة للبدء بسرعة). أما هذه فتربط رقمك مباشرة بمنصة WhatsApp Business من Meta — نفس البنية التحتية التي تستخدمها الشركات الكبرى — لتحصل على توثيق رسمي، وحدود إرسال أعلى، ورقم لا يمكن حظره بسبب الأتمتة كما قد يحدث مع جلسة التطبيق الشخصي.

أي قناة واتساب يجب أن أستخدم؟

استخدم قناة واتساب (البوابة) للاختبار السريع برقم تستخدمه بالفعل على هاتفك. استخدم واتساب (الرسمي) عندما تكون جاهزاً للإنتاج — فهو يتطلب رقم هاتف مخصص لـ Cloud API (لا يمكن أن يكون مسجلاً دخوله في تطبيق واتساب أو واتساب بزنس العادي في نفس الوقت).

المتطلبات المسبقة

  • محفظة أعمال Meta (Business Manager) تديرها أنت
  • رقم هاتف يمكنه استقبال رسالة SMS/مكالمة للتحقق وغير نشط حالياً في تطبيق واتساب أو واتساب بزنس العادي
  • حساب واتساب بزنس (WABA) — تنشئه Meta تلقائياً لك إذا لم يكن لديك واحد بعد
  • باقة تتضمن الوصول إلى قناة واتساب (الرسمي)

3 طرق للاتصال

اختر الطريقة الأنسب لكيفية إعداد حساب Meta الخاص بك حالياً. يمكنك دائماً إضافة رقم آخر لاحقاً باستخدام طريقة مختلفة.

موصى به

الاتصال عبر فيسبوك

نافذة منبثقة واحدة. لا حاجة لنسخ أي معرّفات أو توكنات — تقوم Meta بإنشاء وتسجيل كل شيء نيابة عنك، بما في ذلك WABA ورقم جديدين إذا لم يكن لديك أي منهما.

  1. 1. افتح قناة واتساب (الرسمي) واضغط على الاتصال عبر فيسبوك.
  2. 2. سجّل الدخول واختر (أو أنشئ) محفظة أعمالك، وWABA، ورقم الهاتف في النافذة المنبثقة.
  3. 3. تحقق من الرقم برمز SMS/مكالمة عند الطلب.
  4. 4. تم — الرقم والويب هوك والقوالب جاهزة للمزامنة.

ربط حساب Meta

الأفضل إذا كنت تدير بالفعل صفحات، إنستجرام، أو واتساب عبر محفظة أعمال وتريد فقط ربط WABA موجود.

  1. 1. اضغط على ربط حساب Meta وفوّض محفظة أعمالك.
  2. 2. اختر حساب (حسابات) واتساب بزنس المراد ربطها، ثم اضغط على ربط الأصول المختارة.
  3. 3. اضغط على مزامنة أرقام الهواتف على WABA المرتبط لسحب أرقامه.

الاتصال يدوياً

متقدم / أحضر التوكن الخاص بك. مفيد لرقم الاختبار المجاني من API Setup، أو الأرقام التي توفرها وكالة نيابة عنك.

  1. 1. في Meta، افتح واتساب ← API Setup وانسخ معرّف WABA، ومعرّف رقم الهاتف، وتوكن الوصول.
  2. 2. اضغط على ربط رقم ← الاتصال يدوياً والصق القيم الثلاث.
  3. 3. اضغط على اتصال. يتم التحقق من الرقم مقابل Meta قبل الحفظ.

دورة مراسلة واتساب

بمجرد اتصال الرقم، هذه هي دورة الحياة التي تتبعها كل محادثة.

1

Connect & Sync

Connect the number using any method above, then use Sync Templates so your approved Message Templates appear in the dashboard.

2

Submit Templates for Approval

Any message you want to send to a customer who hasn't messaged you in the last 24 hours must use a pre-approved Template (e.g. order updates, appointment reminders). Meta reviews new templates, usually within minutes to a few hours.

3

Start the Conversation

Send an approved Template to open a conversation, or wait for the customer to message you first — either way starts a fresh 24-hour window.

4

24-Hour Free-Form Window

While the window is open you can send any free-form text, media, or interactive message — no template required, just like a normal chat.

5

Window Closes

If 24 hours pass with no reply from the customer, the window closes. To message them again you must send another approved Template to reopen it.

6

Quality Monitoring

Meta tracks a Quality Rating (green/yellow/red) per number based on blocks and reports. Keep an eye on it from the WhatsApp (Official) page — a red rating can pause sending or lower your daily messaging limit.

نافذة خدمة العملاء لمدة 24 ساعة

هذه قاعدة من Meta وليست من زاجلي — وتنطبق بغض النظر عن التطبيق الذي ترسل منه. صمّم أتمتتك وحملاتك حولها: يجب أن يستخدم الإرسال الجماعي/التسويقي للعملاء خارج النافذة قالب Marketing أو Utility معتمداً.

احتياطات وتحذيرات

  • لا تشارك توكن الوصول الخاص بك أبداً. أي شخص يحصل عليه يمكنه إرسال رسائل وقراءة بيانات حسابك — تعامل معه كأنه كلمة مرور.
  • لا تلصق Verify Token الخاص بالويب هوك في حقل توكن الوصول. يبدوان متشابهين لكنهما يقومان بأشياء مختلفة؛ سيرفضه نموذج الاتصال ويخبرك بالسبب.
  • تنتهي صلاحية التوكنات المؤقتة من API Setup (الاتصال يدوياً) خلال حوالي 24 ساعة. أعد الاتصال بتوكن جديد قبل انتهاء صلاحيته، أو انتقل إلى الاتصال عبر فيسبوك / ربط حساب Meta للحصول على توكن لا تنتهي صلاحيته بنفس الطريقة.
  • يمكن لتطبيق واحد فقط استقبال الويب هوك لحساب WABA معين في وقت واحد. ربط نفس WABA في أداة أخرى لاحقاً سيوجه رسائله الواردة إلى هناك بدلاً من هنا.
  • لا يمكن لرقم الهاتف تشغيل Cloud API وتطبيق واتساب / واتساب بزنس العادي في نفس الوقت. ترحيل رقم موجود ينقله بشكل دائم خارج تطبيق المستهلك.
  • راسل فقط جهات الاتصال التي وافقت على تلقي رسائل واتساب منك. الرسائل غير المرغوبة ترفع معدل الحظر لديك، مما يضر بتقييم الجودة الخاص بك ويمكن أن يؤدي إلى تقييد الرقم أو حظره من قبل Meta.
  • فصل أو حذف رقم في زاجلي لا يزيله من Meta. لإلغاء تسجيل رقم بالكامل، قم بذلك من Meta Business Manager / WhatsApp Manager.

هل أنت مستعد لربط واتساب (الرسمي)؟

اختر الطريقة المناسبة لإعدادك وابدأ العمل خلال دقائق.

افتح قناة واتساب (الرسمي)

تيليجرام

Channel

اربط بوت تيليجرام لإرسال رسائل مؤتمتة ومعالجة الردود عبر Telegram API.

يتم إنشاء وإدارة بوتات تيليجرام عبر البوت الرسمي BotFather. يستغرق إنشاء البوت أقل من دقيقتين ويمنحك رمزاً تقوم بلصقه في لوحة التحكم لتفعيل القناة.

المتطلبات المسبقة

  • حساب تيليجرام
  • خطة تتضمن الوصول إلى قناة تيليجرام
1

أنشئ بوتاً عبر BotFather

افتح تيليجرام وابحث عن @BotFather. ابدأ محادثة وأرسل الأمر:

bash
/newbot

سيطلب BotFather اسماً ظاهراً ثم اسم مستخدم يجب أن ينتهي بـ bot, مثال: MyCompanyBot).

2

انسخ رمز البوت الخاص بك

سيرد BotFather بالرمز الخاص بك. سيكون شكله مثل:

text
123456789:ABCdefGHIjklMNOpqrsTUVwxyz

احتفظ بهذا التوكن بأمان — أي شخص يحصل عليه يمكنه التحكم في بوتك.

3

الاتصال من لوحة التحكم

انقر على تيليجرام في الشريط الجانبي، افتح تبويب الربط، اضغط توصيل بوت جديد, الصق التوكن، واضغط اتصال. يتم تسجيل Webhook تلقائياً.

4

ادعُ جهات الاتصال لبدء البوت

لا يمكن لبوتات تيليجرام إرسال الرسائل أولاً — يجب أن تبدأ جهات الاتصال المحادثة بالضغط على رابط بوتك وإرسال /start. بعد الاتصال، تعرض بطاقة البوت الرابط ورمز QR قابل للتحميل يمكنك مشاركته مع جهات الاتصال:

text
https://t.me/YourBotUsername
5

يتم ربط جهة الاتصال تلقائياً

عندما يضغط أحد جهات الاتصال على الرابط ويرسل /start, يلتقط النظام معرّف تيليجرام الخاص به ويربطه بسجل جهة الاتصال. وبعدها يصبح قابلاً للوصول عبر تيليجرام.

لا يمكن لبوتات تيليجرام بدء المحادثات

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

هل أنت جاهز لربط تيليجرام؟

ألصق رمز BotFather في قناة تيليجرام لتفعيلها.

افتح قناة تيليجرام

فيسبوك ماسنجر

Channel

اربط صفحة فيسبوك لإرسال واستقبال الرسائل عبر Facebook Messenger.

يربط تكامل ماسنجر صفحة فيسبوك الخاصة بك حتى يتمكن العملاء من مراسلتك على فيسبوك وترد عليهم من لوحة التحكم. يتم الاتصال عبر OAuth ولا يتطلب App Review للمراسلة الأساسية باستخدام Page Access Token.

نافذة المراسلة لمدة 24 ساعة

يسمح فيسبوك بمراسلة المستخدم فقط خلال 24 ساعة من آخر رسالة منه. وبعد انتهاء هذه النافذة، ستحتاج إلى Message Tag مثل تحديثات ما بعد الشراء أو تذكيرات الفعاليات المؤكدة لإرسال رسائل المتابعة.

المتطلبات المسبقة

  • حساب فيسبوك
  • صلاحية مدير على صفحة فيسبوك
  • خطة تتضمن الوصول إلى قناة ماسنجر
1

Open the Messenger Channel

Click Messenger in the sidebar and open the Integration tab.

2

Connect Your Facebook Page

Click Connect Facebook Page. You'll be redirected to Facebook to authorize access.

3

Authorize and Select Page

Log in with your Facebook account, grant the required permissions, and select the Page you want to connect.

4

تم تسجيل الـ Webhook

After authorization the platform automatically registers a webhook with Facebook. Your Messenger channel is now live and ready to receive messages.

هل أنت جاهز لربط ماسنجر؟

فوّض صفحة فيسبوك الخاصة بك وابدأ التحدث مع المشتركين.

افتح قناة ماسنجر

فايبر

Channel

اربط خدمة Viber أو البوت لإرسال الرسائل والصور إلى مشتركي فايبر.

يتم إنشاء بوتات فايبر عبر بوابة Viber for Business. واعتباراً من عام 2024، يتطلب فايبر عملية تحقق وموافقة تجارية قبل إصدار Auth Token، ولم تعد خدمة إنشاء البوتات الفورية الذاتية متاحة.

الموافقة التجارية مطلوبة

لم يعد فايبر يقدم إنشاء بوتات ذاتية الخدمة مجاناً. يجب عليك التقدم بطلب لحساب Viber Business والمرور بعملية الموافقة الخاصة بهم قبل الحصول على Auth Token. هذه القناة الأنسب للشركات العاملة بالفعل في الأسواق التي ينتشر فيها فايبر بكثافة (أوروبا الشرقية، الشرق الأوسط، جنوب شرق آسيا).

المتطلبات المسبقة

  • نشاط تجاري مسجل مع حساب Viber for Business
  • حساب خدمة Viber معتمد ويتطلب التحقق التجاري من فايبر
  • خطة تتضمن الوصول إلى قناة فايبر
1

قدّم على حساب Viber Business

قم بزيارة viber.com/en/business وقدّم طلباً للحصول على حساب Viber for Business. سيقوم فايبر بمراجعة طلبك والتواصل معك. وقد تستغرق هذه العملية عدة أيام إلى أسابيع.

2

أنشئ حساب خدمة واحصل على Auth Token

بعد الموافقة، سجّل الدخول إلى بوابة شركاء فايبر وأنشئ حساب خدمة وانسخ Auth Token الخاص بك. سيكون شكله مثل:

text
4bxxxxxxxxx8a8d-xxxxxxxx-xxxxxxxxxxxx
3

الاتصال من لوحة التحكم

انقر على فايبر في الشريط الجانبي، افتح تبويب الربط، اضغط ربط البوت, الصق Auth Token الخاص بك، واضغط اتصال. يتم إعداد Webhook تلقائياً.

هل أنت جاهز لربط فايبر؟

ألصق Viber Auth Token لبدء مراسلة المشتركين.

افتح قناة فايبر
إشعارات الويب
Channel

أرسل إشعارات فورية عبر المتصفح إلى مشتركيك على أي موقع أو تطبيق.

الخطوة 1 — مطلوب: تحميل /sw.js إلى نطاقك
مطلوب
المتصفحات لا تسمح بتحميل Service Workers من نطاق مختلف. قبل أي شيء آخر، أنشئ ملفاً بسطر واحد في https://YOUR-DOMAIN/sw.js بهذا السطر الواحد: importScripts('https://zagely.com/push/sw.js'); بدون هذا الملف، سيظهر أن النافذة المنبثقة يتم تحميلها ولكنها ستفشل بصمت على متصفحات زوارك. راجع قسم "عامل الخدمة" أدناه للرؤوس والنطاق.
ما هي إشعارات الويب؟

تتيح لك إشعارات الويب إرسال تنبيهات فورية مباشرة إلى متصفح المشترك، حتى عندما لا يكون على موقعك. يوافق المستخدم مرة واحدة ويمكنك الوصول إليه كلما كان لديك شيء مهم لمشاركته.

توافق المتصفحات
المتصفح
الحاسوب المكتبي
أندرويد
iOS / Safari
Chrome
N/A
Firefox
N/A
Edge
N/A
Safari
v16.4+
Opera
N/A

ملاحظة لـ iOS / iPadOS: يدعم Safari 16.4+‏ Web Push فقط عندما يضيف الزائر موقعك إلى الشاشة الرئيسية أولاً (تثبيت PWA). في تبويب Safari عادي، يُرفض طلب الإذن بصمت. تكتشف نافذتنا المنبثقة ذلك وتصدر zagely:ios-install-required حدث حتى تتمكن من عرض شريط "إضافة إلى الشاشة الرئيسية" الخاص بك.

أي خيار ينبغي أن أختار؟

اختر سكربتاً واحداً فقط. كل واحد يُسجّل نفس Service Worker ويُوفّر نفس zagelPush الواجهة البرمجية API، ولا يمكنك تضمين الاثنين في الوقت نفسه.

الخيارات
الخيار
السكربت
هل يعرض نافذة منبثقة؟
زر مخصص؟
هل JavaScript مطلوب؟
A
prompt.js
لا
موصى به: نافذة منبثقة مدمجة دون أي JavaScript من جهتك. ويمكنك أيضاً إضافة زر خاص بك عبر استدعاء zagelPush.subscribe().
B
loader.js
نعم
لا نافذة منبثقة إطلاقاً — أنت تكتب الزر وتصمّمه بـ JavaScript عادي.
C
button.js
لا
لا نافذة منبثقة ولا JavaScript. فقط أضف data attribute إلى أي عنصر وسيتم عرض الزر تلقائياً.
الخيار A — نافذة منبثقة مدمجة
موصى به

الإعداد الأسهل. أضف سكربت واحداً إلى موقعك وستظهر نافذة اشتراك جميلة تلقائياً بعد ثوانٍ قليلة. لا يتطلب أي JavaScript من جهتك.

ابقَ على اطلاع 🔔

فعّل الإشعارات حتى لا يفوتك آخر تحديثاتنا.

اسمح بالإشعارات
ربما لاحقاً
1

انسخ مفتاح Push Site Key الخاص بك

اذهب إلى Web Push ← Push Site Key في لوحة التحكم. هذا المفتاح آمن لتضمينه علناً.

2

أضف وسم السكربت

ألصقه قبل وسم الإغلاق </body> الوسم في كل صفحة:

html
<!-- English (default) -->
<script src="https://zagely.com/push/prompt.js?site=YOUR_PUSH_SITE_KEY" async></script>

<!-- Arabic (adds RTL layout automatically) -->
<script src="https://zagely.com/push/prompt.js?site=YOUR_PUSH_SITE_KEY&lang=ar" async></script>
تريد زراً مخصصاً بجانب النافذة المنبثقة؟ لا حاجة إلى سكربت إضافي. بما أن prompt.js يوفر بالفعل window.zagelPush, يمكنك استدعاء zagelPush.subscribe() من أي عنصر دون تحميل loader.js.
html
<!-- prompt.js already exposes window.zagelPush — no loader.js needed -->
<script src="https://zagely.com/push/prompt.js?site=YOUR_PUSH_SITE_KEY" async></script>

<!-- Your own button can sit anywhere alongside the popup -->
<button onclick="zagelPush.subscribe()">🔔 Subscribe</button>
الخيار B — تشغيل يدوي عبر زر مخصص

استخدم هذا الخيار عندما لا تريد أي نافذة منبثقة إطلاقاً. زرّك وتنسيقك وأسلوبك أنت. قم بتحميل loader.js واستدع zagelPush.subscribe() عند النقر على الزر الخاص بك.

تستخدم بالفعل الخيار A (prompt.js)؟ تجاوز loader.js تماماً — prompt.js يوفر بالفعل نفس zagelPush API. تضمين السكربتين معاً في نفس الصفحة سيسبب تعارضات.
html
<!-- 1. Include loader.js (headless API only — no popup, for custom UI) -->
<script src="https://zagely.com/push/loader.js?site=YOUR_PUSH_SITE_KEY" async></script>

<!-- 2. Your own subscribe button -->
<button id="sub-btn">🔔 Subscribe for updates</button>

<script>
  document.getElementById('sub-btn').addEventListener('click', function () {
    zagelPush.subscribe()
      .then(function () { alert('Subscribed!'); })
      .catch(function (err) { console.error(err); });
  });
</script>
الخيار C — زر عبر shortcode
لا حاجة إلى JavaScript

الطريقة الأسرع لإضافة زر اشتراك دون كتابة أي JavaScript. قم بتضمين button.js مرة واحدة وأضف data-zagely-push-button على أي عنصر. سيعرض السكربت تلقائياً زر تبديل مُصمّماً ينتقل بين "اشترك" و"إلغاء الاشتراك" — لا نافذة منبثقة ولا JS مخصص.

اشترك في التحديثات إلغاء الاشتراك

يتبدّل الزر تلقائياً حسب حالة اشتراك الزائر الحالية.

1

قم بتضمين button.js مع Push Site Key الخاص بك

أضف وسم السكربت وضع العنصر الدلالي أينما يجب أن يظهر الزر:

html
<!-- 1. Include button.js once with your Push Site Key -->
<script src="https://zagely.com/push/button.js?site=YOUR_PUSH_SITE_KEY" async></script>

<!-- 2. Place this element wherever you want the button rendered -->
<div data-zagely-push-button></div>
2

خصّص باستخدام سمات البيانات (data attributes) (اختياري)

html
<!-- All data attributes are optional -->
<div data-zagely-push-button
     data-subscribe-text="Get notified"
     data-unsubscribe-text="Turn off alerts"
     data-color="#16a34a"
     data-size="lg"
     data-lang="en"
     data-icon="1"></div>
مرجع سمات البيانات
السمة
الافتراضي
الوصف
data-subscribe-text "Subscribe for updates" النص المعروض عندما لا يكون الزائر مشتركاً بعد
data-unsubscribe-text "Unsubscribe" النص المعروض عندما يكون الزائر مشتركاً بالفعل
data-loading-text "Loading…" النص المعروض أثناء التحقق من حالة الاشتراك
data-color "#6366f1" لون الخلفية بصيغة hex لحالة الاشتراك (غير مشترك)
data-size "md" "sm" | "md" | "lg" — يتحكم في الحشو وحجم الخط والأيقونة
data-lang "en" "en" | "ar" — يُكتشف تلقائياً من html[lang]؛ يلغي النصوص الافتراضية واتجاه النص
data-icon "1" اضبطه على "0" لإخفاء أيقونة الجرس

دوال استدعاء دورة الحياة (Lifecycle Callbacks) (اختياري)

عيّن window.ZagelyPushButtonConfig قبل button.js وسم السكربت:

html
<script>
  window.ZagelyPushButtonConfig = {
    onSubscribe:   function (data) { console.log('Subscribed!', data); },
    onUnsubscribe: function ()     { console.log('Unsubscribed.'); },
    onError:       function (err)  { console.error('Error:', err); },
  };
</script>
<script src="https://zagely.com/push/button.js?site=YOUR_PUSH_SITE_KEY" async></script>
يمكنك وضع عدة data-zagely-push-button عناصر في نفس الصفحة — الرأس، التذييل، الشريط الجانبي — كلها تبقى متزامنة مع حالة اشتراك الزائر.
تخصيص النافذة المنبثقة

عيّن window.ZagelyPushConfig في <script> كتلة قبل وسم prompt.js:

html
<script>
  window.ZagelyPushConfig = {
    // ── Content ────────────────────────────────────────────
    title:           'Never miss an update! 🔔',
    message:         'Subscribe for instant alerts.',
    icon:            '/images/my-logo.png',   // null = built-in bell SVG
    allowText:       'Yes, notify me',
    denyText:        'No thanks',

    // ── Layout ─────────────────────────────────────────────
    position:        'bottom-right',
    // bottom-right | bottom-left | bottom-center | center | top-center

    // ── Timing ─────────────────────────────────────────────
    delay:           5000,           // ms before popup appears (default: 3000)
    remindAfterDays: 14,             // re-show X days after a dismiss (default: 7)

    // ── Appearance ─────────────────────────────────────────
    theme:           'auto',         // 'light' | 'dark' | 'auto'
    primaryColor:    '#f97316',      // any hex color for buttons & icon accent

    // ── Callbacks ──────────────────────────────────────────
    onSubscribe: function(data) { console.log('Subscribed!', data); },
    onDeny:      function()     { console.log('Dismissed.'); },
    onError:     function(err)  { console.error('Error:', err); },

    // ── Language ───────────────────────────────────────────
    // Overrides the ?lang= URL param and html[lang] auto-detection.
    // lang: 'ar',                // 'en' (default) | 'ar'
  };
</script>
<script src="https://zagely.com/push/prompt.js?site=YOUR_PUSH_SITE_KEY" async></script>
جميع خيارات الإعداد
الخيار
النوع
الافتراضي
الوصف
title
string
"Stay in the loop 🔔" Popup headline text
message
string
"Turn on notifications…" Body text below the title
icon
string
null URL to custom icon image (null = built-in bell)
allowText
string
"Allow Notifications" Primary CTA button label
denyText
string
"Maybe later" Dismiss button label
position
string
"bottom-right" Popup position on screen
delay
number
3000 Milliseconds before the popup is shown
theme
string
"auto" Color scheme: light | dark | auto
primaryColor
string
"#6366f1" Accent hex color for button & icon
remindAfterDays
number
7 Days before re-prompting after a dismiss
onSubscribe
function
null Callback when user successfully subscribes
onDeny
function
null Callback when user dismisses
onError
function
null Callback on error
مرجع واجهة JavaScript البرمجية

كلاهما prompt.js (موصى به) و loader.js (بلا واجهة، لواجهة مخصصة) يوفّران zagelPush عاماً بعد التهيئة.

zagelPush.init()
→ Promise<boolean>

Manually initialize (fetches VAPID key + registers SW). Called automatically on DOM ready.

js
zagelPush.init().then(function(ok) {
  console.log('Push ready:', ok);
});
zagelPush.subscribe()
→ Promise<object>

Shows the browser permission prompt then subscribes. Resolves with subscription data.

js
document.getElementById('my-btn').addEventListener('click', function() {
  zagelPush.subscribe()
    .then(function()    { alert('Subscribed!'); })
    .catch(function(err) { console.error(err); });
});
zagelPush.unsubscribe()
→ Promise<object>

Unsubscribes the current browser from push notifications.

js
zagelPush.unsubscribe().then(function() {
  console.log('Unsubscribed.');
});
zagelPush.isSubscribed()
→ Promise<boolean>

Check whether the current browser is already subscribed.

js
zagelPush.isSubscribed().then(function(subscribed) {
  document.getElementById('btn').textContent =
    subscribed ? 'Unsubscribe' : 'Subscribe';
});
zagelPush.siteKey
→ string

The Push Site Key extracted from the script src attribute.

js
console.log('Site key:', zagelPush.siteKey);
Service Worker Relay
مطلوب
يجب أن يُقدَّم Service Workers من نفس أصل (origin) موقعك. إذا كان موقعك هو https://myblog.com, أنشئ ملف الترحيل أدناه في جذر نطاقك الخاص.

ارفع ملف ترحيل بسطر واحد: https://myblog.com/sw.js

js
// sw.js — save this at the ROOT of YOUR domain (e.g. https://myblog.com/sw.js)
importScripts('https://zagely.com/push/sw.js');
رؤوس استجابة مطلوبة لـ /sw.js
الرأس (Header)
القيمة
لماذا زاجلي
Content-Type application/javascript بعض شبكات CDN تقدّمه كـ text/plain وترفضه المتصفحات.
Cache-Control no-cache, no-store, must-revalidate يضمن التقاط تحديثات SW المستقبلية فوراً.
Service-Worker-Allowed / مطلوب فقط إذا لم يكن الترحيل في جذر النطاق (مثلاً /assets/sw.js).
مستخدمو Cloudflare / CDN: أضف قاعدة تخزين مؤقت (Cache Rule) لتجاوز التخزين المؤقت لـ /sw.js حتى تصل إصدارات Service Worker الجديدة إلى زوارك.
مسار ترحيل غير جذري (مثلاً /assets/sw.js)؟

بشكل افتراضي، تقيد المتصفحات نطاق (scope) Service Worker على دليله الخاص. ملف ترحيل في /push/sw.js يمكنه التحكم فقط في الصفحات تحت /push/* — أي أن الصفحات في /, /about, لن تتلقى إشعارات الدفع.

الحل: اضبط رأس Service-Worker-Allowed: / عند تقديم ملف الترحيل. هذا يسمح للـ worker بالتحكم في جميع الصفحات من الجذر.

عرض أمثلة إعداد الخادم

Nginx:

nginx
location = /push/sw.js {
    add_header Service-Worker-Allowed /;
    add_header Content-Type application/javascript;
    add_header Cache-Control "no-cache, no-store";
    # your proxy or static file serving here
}

Apache (.htaccess):

apache
<Files "sw.js">
    Header set Service-Worker-Allowed "/"
    Header set Content-Type "application/javascript"
    Header set Cache-Control "no-cache, no-store"
</Files>
أمثلة المنصات
html
<!-- Optional: customize before loading -->
<script>
  window.ZagelyPushConfig = {
    title:        'Stay Updated!',
    primaryColor: '#16a34a',
    position:     'bottom-right',
  };
</script>

<!-- Drop-in popup prompt -->
<script src="https://zagely.com/push/prompt.js?site=YOUR_PUSH_SITE_KEY" async></script>

احفظ مفتاح الموقع في config/services.php وقم بتضمين Blade partial في التخطيط الخاص بك. لا تنسَ رفع /public/sw.js أيضاً.

blade
{{-- resources/views/layouts/partials/zagely-push.blade.php --}}
@if (config('services.zagely.push_key'))
    <script>
      window.ZagelyPushConfig = {
        title:        '{{ __('Stay in the loop') }} 🔔',
        theme:        'auto',
        primaryColor: '#6366f1',
        delay:        4000,
      };
    </script>
    <script
        src="https://zagely.com/push/prompt.js?site={{ config('services.zagely.push_key') }}&lang={{ app()->getLocale() }}"
        async></script>
@endif

الملفات الداعمة:

php
// .env
ZAGELY_PUSH_KEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

// config/services.php
'zagely' => [
    'push_key' => env('ZAGELY_PUSH_KEY'),
],

// Include the partial in your main layout:
// @include('layouts.partials.zagely-push')

// public/sw.js  — REQUIRED one-line relay:
importScripts('https://zagely.com/push/sw.js');
تستخدم spatie/laravel-csp؟ اسمح بـ script-src https://zagely.com, connect-src https://zagely.com, و worker-src 'self'.

أضف إلى functions.php:

php
<?php
add_action('wp_footer', function () {
    echo '<script>
      window.ZagelyPushConfig = {
        title:           \'Stay in the loop!\',
        message:         \'Subscribe for the latest posts.\',
        primaryColor:    \'#2563eb\',
        remindAfterDays: 14,
      };
    </script>';
    echo '<script src="https://zagely.com/push/prompt.js?site=YOUR_PUSH_SITE_KEY" async></script>';
});
ارفع أيضاً sw.js إلى جذر WordPress — راجع قسم Service Worker أعلاه.

أنشئ مكوّناً للعميل في Next.js App Router:

jsx
'use client';
import { useEffect } from 'react';

export default function ZagelyPushInit() {
  useEffect(() => {
    window.ZagelyPushConfig = {
      title:        "Don't miss a thing!",
      primaryColor: '#7c3aed',
      delay:        4000,
    };
    const s = document.createElement('script');
    s.src   = 'https://zagely.com/push/prompt.js?site=YOUR_PUSH_SITE_KEY';
    s.async = true;
    document.body.appendChild(s);
    return () => document.body.removeChild(s);
  }, []);
  return null;
}
// In your root layout.tsx: <ZagelyPushInit />
ضع ملف Service Worker relay في public/sw.js حتى يقدّمه Next.js في /sw.js على نطاقك. تغييرات المسارات في SPA لن تعيد تشغيل النافذة — قم بتثبيت المكون مرة واحدة في app/layout.tsx.

أنشئ إضافة عميل في Nuxt 3: plugins/zagely-push.client.js

js
// plugins/zagely-push.client.js  (Nuxt 3)
export default defineNuxtPlugin(() => {
  window.ZagelyPushConfig = {
    title:        'Subscribe for updates',
    primaryColor: '#059669',
    position:     'bottom-right',
  };
  const s    = document.createElement('script');
  s.src      = 'https://zagely.com/push/prompt.js?site=YOUR_PUSH_SITE_KEY';
  s.async    = true;
  document.body.appendChild(s);
});
تحقّق من التثبيت

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

js
// Paste in DevTools → Console on your page. Shows a table of health checks.
(async () => {
  if (!window.zagelPush) { console.warn('zagelPush not loaded'); return; }
  const report = await window.zagelPush.diagnose();
  console.table(report);

  // Optional: confirm the server sees your subscribers
  try {
    const r = await fetch('https://zagely.com/api/push/health/YOUR_PUSH_SITE_KEY');
    const data = await r.json();
    console.log('Server health:', data);
  } catch (e) { console.warn('Health probe failed:', e); }
})();
قائمة فحص يدوية سريعة:
  1. DevTools ← Application ← Service Workers يعرض worker على نطاقك أنت بنطاق (scope) /.
  2. Notification.permission في وحدة التحكم (console) يُرجع "granted" بعد قبول النافذة المنبثقة.
  3. تعرض Web Push في الشريط الجانبي مشتركك الجديد خلال ثوانٍ قليلة.
  4. أرسل إشعار تجريبي من لوحة التحكم وتأكد من وصوله إلى الجهاز.
استكشاف الأخطاء

إذا نقر المستخدم "حظر"، لن يعرض المتصفح نافذة الإذن مرة أخرى. وجّهه لإعادة ضبط الإشعارات في إعدادات الموقع في متصفحه.

iOS and iPadOS support Web Push only from Safari 16.4+, AND only after the visitor adds your site to the Home Screen (PWA install). In a normal Safari tab the browser silently denies the permission — this is an Apple restriction, not a bug. The popup script detects this and emits a zagely:ios-install-required window event so you can show your own “Add to Home Screen” banner for iOS visitors. Once the site is launched from the Home Screen icon, push notifications work exactly like on desktop.

أعد تحميل الصفحة إجبارياً، أو افتح DevTools ← Application ← Service Workers وانقر Update. مسح ذاكرة التخزين المؤقت للموقع يساعد أيضاً.

إشعارات الويب تعمل فقط على المواقع المُقدَّمة عبر HTTPS. Localhost مستثنى للتطوير والاختبار المحلي.

تحقق من إعدادات الإشعارات في نظام التشغيل — تأكد من أن المتصفح لديه إذن لعرض الإشعارات وأن وضع "عدم الإزعاج" (Focus mode على macOS) مُغلق.

رموز الدفع (push tokens) في المتصفحات تتجدّد تلقائياً (مثلاً بعد تحديثات المتصفح). Service Worker لدينا يكتشف ذلك ويُعيد اشتراك الجهاز بصمت — لا حاجة لإجراء من جانبك.

Append ?zp_reset=1 to the page URL to clear the local “already prompted” flag AND unsubscribe the current browser subscription, so the popup appears again on the next reload.

أضف ?zp_debug=1 إلى رابط الصفحة (أو عيّن window.ZagelyPushConfig.debug = true قبل وسم السكربت) لتسجيل كل خطوة في وحدة التحكم DevTools. يمكنك أيضاً تشغيل zagelPush.diagnose().then(console.table) لرؤية تقرير صحة كامل.

If you use a strict CSP, allow: script-src https://zagely.com; connect-src https://zagely.com; worker-src 'self'. The Service Worker itself runs from your own origin (worker-src 'self'), only the prompt script is loaded from Zagely.

Windows يمرّر إشعارات المتصفح عبر نظام التشغيل. إذا كانت تعمل على Android ولا تعمل على Windows: (1) افتح الإعدادات ← النظام ← الإشعارات وتأكد من أن "الإشعارات" مُفعّلة وأن متصفحك (Chrome/Edge/Firefox) موجود ومُفعّل في القائمة. (2) أوقف وضع التركيز / عدم الإزعاج (Action Center ← Focus). (3) تحقق من Action Center — ربما وصل الإشعار لكنه اختفى تلقائياً؛ بدءاً من الإصدار 1.2.1 تستخدم الإشعارات التجريبية requireInteraction لتبقى ظاهرة. (4) في DevTools ← Application ← Service Workers، انقر على رابط SW لفتح وحدة التحكم الخاصة به؛ يجب أن ترى "[ZagelyPush SW] push received" عند تسليم الإشعار. إذا ظهر هذا السجل ولم يظهر أي إشعار، فالمشكلة 100%% في إعدادات إشعارات Windows وليست في Zagely.

إرسال الإشعارات من لوحة التحكم

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

البث يُضاف إلى قائمة الانتظار — تعود صفحتك فوراً بينما يتم التسليم في الخلفية. تجديد الاشتراك التلقائي يتم أيضاً بشكل تلقائي: عندما يُجدّد المتصفح رمز الدفع الخاص به، Service Worker لدينا يُعيد تسجيل الجهاز حتى لا تفقد مشتركاً بصمت أبداً.
قائمة المشتركين

عرض الأجهزة النشطة، المنتهية، والملغى اشتراكها.

البث

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

التحليلات

تتبع معدلات التسليم وتوزيع المتصفحات.

هل أنت جاهز لبدء الإرسال؟

انتقل إلى قناة Web Push للحصول على Push Site Key الخاص بك.

افتح لوحة Web Push

البريد الإلكتروني

Channel

أرسل حملات البريد الإلكتروني والرسائل transactional عبر خادم SMTP الخاص بك أو مزود مستضاف.

تتصل قناة البريد الإلكتروني بأي مزود متوافق مع SMTP. وهذا يمنحك تحكماً كاملاً في قابلية التسليم، سواء باستخدام Gmail أو Outlook أو خدمة إرسال متخصصة مثل SendGrid أو Mailgun أو Amazon SES.

مزودو SMTP الشائعون

المزوّد المضيف المنفذ (TLS) ملاحظات
Gmail smtp.gmail.com
587
Requires App Password if 2FA is on
Outlook smtp-mail.outlook.com
587
Use your Microsoft account credentials
SendGrid smtp.sendgrid.net
587
Use "apikey" as username, API key as password
Mailgun smtp.mailgun.org
587
Use Mailgun SMTP credentials from dashboard
AWS SES email-smtp.us-east-1.amazonaws.com
587
Region-specific host; generate SMTP credentials in IAM
1

افتح قناة البريد الإلكتروني

Click Email in the sidebar and open the Integration tab.

2

Enter SMTP Details

Fill in: SMTP Host, Port, Encryption (TLS recommended), Username, and Password.

3

Set From Address

Enter your From Name (e.g., "Acme Support") and From Address (e.g., hello@acme.com). Make sure this address is authorized in your email provider.

4

Test the Connection

Click Send Test Email to verify the settings. A test email will be sent to your account's email address.

5

حفظ الإعدادات

Once the test passes, click Save. The Email channel is now active.

هل أنت جاهز لإعداد البريد الإلكتروني؟

أدخل بيانات SMTP الخاصة بك وابدأ إرسال الحملات.

افتح قناة البريد الإلكتروني

ديسكورد

Channel

انشر الرسائل والبطاقات الغنية والتنبيهات مباشرة في قناة ديسكورد عبر بوت.

تستخدم قناة ديسكورد Discord Bot API v10. تقوم بإنشاء بوت في Discord Developer Portal، ثم تدعوه إلى خادمك، وتلصق رمز البوت مع معرّف الخادم ومعرّف القناة في لوحة التحكم.

المتطلبات المسبقة

  • حساب ديسكورد
  • صلاحية مدير على خادم ديسكورد
  • خطة تتضمن الوصول إلى قناة ديسكورد
1

أنشئ تطبيق ديسكورد

اذهب إلى discord.com/developers/applications ← اضغط تطبيق جديد ← أعطها اسماً ← اضغط إنشاء.

2

أنشئ بوتاً وانسخ التوكن

اضغط على بوت تبويب في الشريط الجانبي الأيسر ← اضغط أضف بوت → أكّد. ثم اضغط إعادة تعيين التوكن لإظهار ونسخ توكن البوت الخاص بك:

text
MTE5NTUzNDU0NzM1NzA4Nzg3.GxxxxX.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

تأكد من أن Message Content Intent مفعّلة ضمن Privileged Gateway Intents.

3

احصل على معرّف الخادم ومعرّف القناة

في ديسكورد، فعّل وضع المطوّر ضمن User Settings ← Advanced. ثم انقر بزر الفأرة الأيمن على أيقونة الخادم واختر Copy Server ID، ثم انقر بزر الفأرة الأيمن على القناة المستهدفة واختر Copy Channel ID.

4

ادعُ البوت إلى خادمك

اذهب إلى OAuth2 ← مولّد الروابط تبويب في Developer Portal. اختر bot امنحه النطاق والصلاحيات إرسال الرسائل و تضمين الروابط ثم انسخ الرابط الناتج وافتحه لدعوة البوت:

text
https://discord.com/oauth2/authorize?client_id=YOUR_APP_ID&permissions=2048&scope=bot
5

الاتصال من لوحة التحكم

انقر على ديسكورد في الشريط الجانبي، افتح تبويب الربط، اضغط ربط البوت, املأ توكن البوت، ومعرّف السيرفر، ومعرّف القناة، ثم اضغط اتصال.

هل أنت جاهز لربط ديسكورد؟

ألصق Bot Token ومعرّف الخادم ومعرّف القناة لبدء النشر إلى ديسكورد.

افتح قناة ديسكورد

إنستغرام

Channel

اربط حساب إنستغرام للأعمال أو حساب منشئ محتوى لإرسال واستقبال الرسائل المباشرة.

تتيح لك مراسلة إنستغرام أن يستفسر منك عملاؤك عبر الرسائل المباشرة على إنستغرام بينما ترد عليهم من لوحة التحكم الموحدة. يستخدم الربط OAuth الخاص بفيسبوك لأن حسابات إنستغرام للأعمال تُدار من خلال صفحات فيسبوك.

نافذة المراسلة لمدة 7 أيام

يسمح إنستغرام بمراسلة المستخدم خلال 7 أيام من آخر رسالة أرسلها. بعد انتهاء هذه المدة، لا يمكن إرسال رسائل جديدة حتى يراسلك العميل مرة أخرى.

المتطلبات المسبقة

  • حساب إنستغرام للأعمال أو حساب منشئ محتوى
  • صفحة فيسبوك مرتبطة بحساب إنستغرام الخاص بك
  • صلاحية مدير على صفحة فيسبوك المرتبطة
  • خطة تتضمن الوصول إلى قناة إنستغرام
1

افتح قناة إنستغرام

Click Instagram in the sidebar and open the Integration tab.

2

اتصل عبر فيسبوك

انقر على ربط حساب إنستغرام. سيتم تحويلك إلى فيسبوك لتفويض الوصول إلى حساب إنستغرام المرتبط بك.

3

فوّض واختر الحساب

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

4

تم تسجيل الـ Webhook

بعد التفويض، تقوم المنصة تلقائياً بتسجيل Webhook مع إنستغرام. أصبحت قناة إنستغرام الآن مفعّلة وجاهزة لاستقبال الرسائل المباشرة.

هل أنت جاهز لربط إنستغرام؟

فوّض حساب إنستغرام الخاص بك وابدأ التحدث مع المتابعين.

افتح قناة إنستغرام

جهات الاتصال

الميزة

أدر جمهورك عبر جميع القنوات من قائمة موحدة واحدة لجهات الاتصال.

جهة الاتصال عبارة عن سجل واحد يمكنه الاحتفاظ بمعرّفات كل قناة، مثل رقم واتساب ومعرّف دردشة تيليجرام وMessenger PSID ومعرّف مستخدم فايبر ومعرّف مستخدم ديسكورد والبريد الإلكتروني. وهذا يعني أنك تحتاج إلى جهة اتصال واحدة فقط للوصول إلى الشخص نفسه عبر منصات متعددة.

الحقول الأساسية لجهة الاتصال

الحقل الوصف
Name Display name shown across the inbox and reports
Phone Number International format (e.g. +1 555 123 4567). Required for WhatsApp.
Email Used for Email channel campaigns and opt-out management
Tags Comma-separated labels for segmentation (e.g. vip, lead, customer)
Custom Fields Unlimited key-value pairs for your own data (e.g. order_id, city, plan)
Notes Free-text internal notes visible only to your team
Groups Contact can belong to multiple groups for targeted campaigns
Preferred Channel Default channel used when a campaign targets multi-channel priority

إضافة جهات الاتصال

يدوياً

اضغط على New Contact في صفحة جهات الاتصال، ثم املأ التفاصيل واحفظ.

استيراد CSV

نزّل قالب CSV التجريبي، واملأه، ثم ارفعه. وسيتم دمج أرقام الهواتف المكررة تلقائياً.

عبر API

استخدم نقطة النهاية POST /api/v1/contacts لإنشاء جهات اتصال برمجياً من تطبيقك.

المجموعات والتقسيم

أنشئ مجموعات جهات اتصال ضمن Contacts → Groups لتقسيم جمهورك. وعند إنشاء حملة، يمكنك استهداف مجموعة كاملة أو التصفية حسب العلامات أو حسب قيم الحقول المخصصة دون اختيار جهات الاتصال يدوياً واحدة واحدة.

قوائم جهات اتصال خاصة بكل قناة

لكل مركز قناة تبويب جهات اتصال خاص به — اضغط على قناة في الشريط الجانبي ثم افتح تبويب جهات الاتصال لعرض مشتركي تلك القناة فقط. تعرض صفحة جهات الاتصال العامة جمهورك الكامل عبر جميع القنوات.

أدر جمهورك

توجه إلى جهات الاتصال لإضافة واستيراد وتقسيم مشتركيك.

افتح جهات الاتصال
الفريق والتعاون

ادعُ الزملاء إلى مساحة العمل وعيّن لهم الأدوار للتحكم فيما يمكن لكل شخص الوصول إليه وما يمكنه فعله.

أدوار الفريق

المالك

Full control including billing, plan changes, and workspace deletion. Only one owner per workspace.

مدير

وصول كامل إلى جميع الميزات باستثناء الفوترة وإعدادات مساحة العمل.

وكيل

Can manage contacts, send campaigns, use the unified inbox, and configure automations.

مشاهد

Read-only access to reports, campaigns, and contacts. Cannot create or modify anything.

كيفية دعوة عضو في الفريق
إرسال دعوة
1
في الشريط الجانبي، اذهب إلى إعدادات الحسابالفريق.
2
اضغط على دعوة عضو الزر في الزاوية العلوية اليمنى من الصفحة.
3
أدخل عنوان البريد الإلكتروني واختر الدورثم اضغط Send Invitation.
4
سيتلقى المدعو بريداً إلكترونياً يحتوي على رابط آمن. وتنتهي صلاحية الدعوة بعد 7 أيام.
5
بمجرد القبول، سيظهرون في قائمة الفريق ويمكنهم تسجيل الدخول فوراً.
تحدد خطة الاشتراك الحد الأقصى لعدد أعضاء الفريق. قم بترقية خطتك لإضافة مقاعد أكثر.
إدارة الأعضاء
تغيير الأدوار وإزالة الأعضاء
1
تغيير دور — اضغط على أيقونة التعديل بجانب أي عضو واختر دوراً جديداً. تسري التغييرات فوراً.
2
إزالة عضو — اضغط على أيقونة الإزالة لإلغاء وصوله. وستبقى بياناته مثل الحملات وجهات الاتصال محفوظة.
3
إلغاء دعوة معلّقة — افتح تبويب Pending Invitations واضغط Cancel بجانب أي دعوة لم يتم قبولها بعد.
يمكن فقط للمالكين والمسؤولين دعوة أعضاء الفريق أو تعديلهم أو إزالتهم.

صندوق الرسائل الموحد

الميزة

كل المحادثات من جميع القنوات في مكان واحد، اقرأ وردّ وعيّن من عرض واحد.

يجمع صندوق الوارد الموحد المحادثات الواردة والصادرة عبر واتساب وتيليجرام وماسنجر وفايبر والبريد الإلكتروني وإشعارات الويب وديسكورد. ويتم حفظ كل سلسلة رسائل كمحادثة حتى لا تفقد السياق أبداً، حتى لو انتقل المشترك بين القنوات.

ما الذي يمكنك فعله

التصفية حسب القناة

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

تعيين المحادثات

يمكن تعيين أعضاء الفريق الذين لديهم صلاحية Send Message إلى محادثة ليتولوا المتابعة.

تحديد كمقروء أو غير مقروء

تتبّع المحادثات التي تحتاج إلى اهتمام. وتعرض شارة الشريط الجانبي عدد الرسائل غير المقروءة في الوقت الفعلي.

أرشفة

انقل المحادثات المنتهية إلى الأرشيف للحفاظ على نظافة صندوق الوارد دون حذف السجل.

العلامات

صنّف المحادثات بوسوم (مثل: فوترة، دعم، مميز) لتصنيفها وفلترتها لاحقاً.

الوسائط والمرفقات

تظهر الصور والمستندات والملاحظات الصوتية والملفات المرسلة عبر واتساب أو البريد الإلكتروني مباشرة داخل سلسلة المحادثة.

افتح صندوق الوارد الخاص بك

اعرض جميع المحادثات الواردة من كل القنوات في محادثة واحدة.

افتح صندوق الوارد

قوالب الرسائل

الميزة

احفظ محتوى الرسائل وأعد استخدامه عبر الحملات والأتمتة والردود اليدوية.

القوالب هي نصوص رسائل قابلة لإعادة الاستخدام تنشئها مرة واحدة وتستخدمها في أي مكان — في الحملات، إجراءات الأتمتة، أو عند الرد في صندوق الوارد. يُخصص كل قالب لقناة معينة بحيث يتطابق التنسيق (نص، نص منسق، HTML) مع ما تدعمه تلك القناة.

تنسيق القالب حسب القناة

القناة التنسيق المدعوم ملاحظات
WhatsApp Plain text + media URL Supports bold (*text*) and line breaks
Telegram Plain text / HTML Supports HTML tags like <b>, <i>, <a>
Email HTML Full HTML editor with subject line
Viber Plain text + media URL Character limit applies
Messenger Plain text Keep messages concise for best engagement
Discord Plain text / Markdown Supports Discord markdown formatting
Web Push Plain text Short title + body, optional icon URL
Instagram Plain text Within 24-hour messaging window only

إنشاء قالب

1

افتح القوالب

انتقل إلى صفحة القوالب العامة، أو اضغط على قناة في الشريط الجانبي وافتح تبويب القوالب الخاص بها للعمل ضمن نطاق تلك القناة.

2

اضغط على قالب جديد

أعط القالب اسماً وصفياً (مثال: "تأكيد الطلب") واختر القناة المستهدفة.

3

اكتب نص الرسالة

Use the editor to compose your message. You can insert dynamic variables like that are replaced with real values at send time.

4

احفظ

اضغط على حفظ. أصبح القالب الآن متاحاً عند إنشاء الحملات، أو الأتمتة، أو الرد من صندوق الوارد.

استنساخ إلى قناة أخرى

يمكن استنساخ قالب مكتوب لواتساب إلى تيليجرام أو البريد الإلكتروني بضغطة واحدة. افتح قائمة إجراءات القالب واختر <strong>استنساخ إلى قناة</strong>، ثم اختر القناة المستهدفة. النسخة المستنسخة مستقلة بحيث يمكنك تعديل التنسيق دون التأثير على الأصل.

ابنِ مكتبة قوالبك

أنشئ رسائل قابلة لإعادة الاستخدام مرة واحدة واستخدمها في كل حملة وأتمتة.

افتح القوالب

الحملات الإعلانية

الميزة

أرسل رسائل جماعية إلى مئات أو آلاف جهات الاتصال عبر قناة واحدة أو عدة قنوات.

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

دورة حياة الحملة

مسودة
مجدول
قيد التشغيل
متوقفة مؤقتاً
مكتملة
ملغى

يمكن إيقاف الحملة الجارية مؤقتاً ثم استئنافها. وبمجرد معالجة جميع المستلمين تنتقل الحملة تلقائياً إلى Completed.

إنشاء حملة

1

الاسم والقناة

أعطِ الحملة اسماً واختر قناة الإرسال مثل واتساب أو تيليجرام أو البريد الإلكتروني، أو فعّل وضع Multi-Channel لمحاولة الإرسال عبر عدة قنوات حسب ترتيب الأولوية.

2

إنشاء الرسالة

اكتب نص الرسالة. ويمكنك تضمين صور أو ملفات عبر media URL وإضافة أزرار تفاعلية حتى 3 أزرار لردود واتساب السريعة.

3

اختر الجمهور

استهدف مجموعة جهات اتصال كاملة، أو قم بالتصفية حسب العلامات أو الحقول المخصصة، أو اختر جميع جهات الاتصال. وسيظهر العدد التقديري للمستلمين قبل التأكيد.

4

جدولة أو إرسال

اختر Send Now للبدء فوراً، أو حدد تاريخاً ووقتاً لجدولة الحملة. ولا يزال بإمكانك تعديل الحملة المجدولة قبل تشغيلها.

5

راقب التقدم

راقب الإحصاءات المباشرة مثل Sent وDelivered وRead وFailed وهي تتحدث في الوقت الفعلي على صفحة تفاصيل الحملة. ويمكنك الإيقاف المؤقت أو الإلغاء في أي وقت.

شرح إحصائيات التسليم

المقياس المعنى
Sent Message was dispatched to the channel. Confirmed by the channel API.
Delivered Channel confirmed the message reached the recipient's device.
Read Recipient opened / read the message (supported on WhatsApp and Email).
Failed Delivery failed. Check the recipient's error message for details.

حملات خاصة بالقناة

يمكنك أيضاً الوصول إلى الحملات مباشرة من مركز القناة — اضغط على قناة في الشريط الجانبي وافتح تبويب الحملات لعرض وإنشاء حملات مُصفّاة مسبقاً لتلك القناة. تعرض صفحة الحملات العامة الحملات عبر جميع القنوات.

أطلق حملتك الأولى

أنشئ حملة ووصل إلى جمهورك بالكامل في دقائق.

افتح الحملات

الأتمتة

الميزة

رد تلقائياً على الرسائل الواردة استناداً إلى الكلمات المفتاحية والتوقيت وقواعد العمل.

الأتمتة هي ردود قائمة على القواعد تعمل عند تحقق شرط تفعيل معيّن في رسالة واردة. وهي توفر الوقت من خلال التعامل مع الطلبات الشائعة مثل الأسئلة المتكررة والتحيات ورسائل خارج الدوام دون أي تدخل بشري.

أنواع التفعيل

كلمة مفتاحية

يعمل عندما تحتوي الرسالة الواردة على كلمة أو عبارة محددة. مثال: الرد على "MENU" بقائمة مطعمك.

ترحيب

يعمل عند أول رسالة يتم استلامها من جهة اتصال. وهو مثالي لرسالة ترحيب ودليل البدء.

بعيد

يعمل خارج ساعات العمل المحددة لديك. ويُعلم جهة الاتصال بموعد توقع الرد.

احتياطي

يعمل عندما لا تطابق الرسالة الواردة أي أتمتة أخرى. ويعمل كرد افتراضي شامل.

ترتيب الأولوية

عندما يمكن لعدة أتمتات بالكلمات المفتاحية أن تطابق الرسالة نفسها، تفوز الأتمتة ذات رقم الأولوية الأقل. استخدم مقبض السحب لإعادة الترتيب في صفحة Automations لتحديد الترتيب. أما قواعد Welcome وAway وFallback فتعمل دائماً بشكل مستقل عن أولوية الكلمات المفتاحية.

إعداد أتمتة

1

اذهب إلى الأتمتة

انتقل إلى Automations في الشريط الجانبي واضغط New Automation.

2

اختر نوع التفعيل

اختر Keyword أو Welcome أو Away أو Fallback. وبالنسبة إلى Keyword، أدخل كلمة التفعيل أو الكلمات مفصولة بفواصل عند وجود بدائل متعددة.

3

أنشئ الرد

اكتب نص الرد. ويمكنك اختيارياً إرفاق media URL لصورة أو مستند وإضافة ما يصل إلى 3 أزرار للرد السريع.

4

اختر الجلسة

اختر جلسة واتساب أو أي قناة أخرى التي تنطبق عليها هذه الأتمتة، أو اتركها على All لتطبيقها على مستوى المنصة كلها.

5

تفعيل

حوّل الأتمتة إلى Active واحفظ. وستبدأ بالرد على الرسائل المطابقة فوراً.

أتمتة ردودك

قم بإعداد رسالة ترحيب أو رد بالكلمات المفتاحية ولا تفوّت أي رسالة واردة.

افتح الأتمتة

السيطرة البشرية توقف الأتمتة أيضاً

عندما يرد الموظف يدوياً، يتم إيقاف جميع رسائل الأتمتة (الكلمات المفتاحية، الترحيب، الغياب، والاحتياطية) لتلك المحادثة — تماماً مثل ردود الذكاء الاصطناعي. هذا يضمن حصول العملاء على تجربة إنسانية سلسة دون مقاطعات آلية. اعرف المزيد ←

التقارير والتحليلات

الميزة

تتبّع تسليم الرسائل وأداء الحملات ونمو الجمهور بمرور الوقت.

تمنحك صفحة التقارير نظرة شاملة على نشاط المراسلة لديك. ويتم تحديث جميع الرسوم البيانية تلقائياً ويمكن تصفيتها حسب النطاق الزمني والقناة.

لوحة النظرة العامة

إجمالي الرسائل المرسلة يومياً ومعدل التسليم ومعدل القراءة عبر جميع القنوات.

تحليلات الحملات

تفصيل التسليم والقراءة والإخفاق لكل حملة مع إمكانية التعمق حتى مستوى المستلم.

تحليلات الجلسات

الرسائل المرسلة اليوم والإجمالي لكل جلسة واتساب. وتعرّف على الجلسات التي تقترب من الحدود اليومية.

تحليلات جهات الاتصال

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

نشاط الرسائل

رسوم بيانية لنشاط الرسائل بالساعة واليوم لتحديد فترات التفاعل القصوى.

تصدير البيانات

جميع التحليلات متاحة أيضاً عبر API (/api/analytics/*) حتى تتمكن من سحبها إلى أدوات BI الخاصة بك.

اعرض تقاريرك

اعرف كيف تؤدي حملاتك وقنواتك الآن.

افتح التقارير

مساعد الذكاء الاصطناعي

الميزة

ردود آلية ذكية مدعومة بقاعدة معرفتك الخاصة، مع أدوات تحكم ذكية لتسليم المحادثة لموظف بشري.

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

تفعيل الذكاء الاصطناعي على قناة

1

افتح إعدادات القناة

اضغط على أي قناة في الشريط الجانبي، افتح تبويب الربط واضغط على زر إعدادات الذكاء الاصطناعي.

2

فعّل مفتاح الذكاء الاصطناعي

شغّل تفعيل الرد الآلي بالذكاء الاصطناعي. سيقوم الذكاء الاصطناعي الآن بالرد تلقائياً على الرسائل الواردة باستخدام قاعدة معرفتك.

3

اختر نموذجاً

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

4

درّب قاعدة معرفتك

ارفع مستندات أو الصق نصاً في إعدادات الحساب ← تدريب الذكاء الاصطناعي. يتعلم الذكاء الاصطناعي فقط من المحتوى الذي تقدمه.

جدول ساعات العمل

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

السيطرة البشرية

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

إيقاف عند رد الموظف

تتوقف ردود الذكاء الاصطناعي ورسائل الأتمتة فور إرسال الموظف لرسالة في المحادثة.

استئناف بمؤقت ثابت

يستأنف الذكاء الاصطناعي والأتمتة تلقائياً بعد انتهاء مدة الإيقاف المحددة (الافتراضي 3 ساعات).

إعادة التفعيل عند الخمول

يستأنف الذكاء الاصطناعي والأتمتة مبكراً إذا كتب العميل مجدداً وكان الموظف صامتاً لفترة تجاوزت حد الخمول.

فعّل السيطرة البشرية من <strong>إعدادات الذكاء الاصطناعي ← السيطرة البشرية</strong> في أي جلسة قناة. اطّلع على دليل الإعداد الكامل في صفحة توثيق مساعد الذكاء الاصطناعي.

استثناء جهات الاتصال من ردود الذكاء الاصطناعي

يمكنك إيقاف الذكاء الاصطناعي عن الرد على جهات اتصال أو مجموعات معينة بطريقتين:

قائمة استثناءات القناة

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

مفتاح رد الذكاء الاصطناعي

أوقف مفتاح رد الذكاء الاصطناعي في صفحة جهات الاتصال أو صفحة مجموعات جهات الاتصال لتعطيل ردود الذكاء الاصطناعي بشكل عام لتلك الجهة أو المجموعة.

اطّلع على الشرح الكامل لكيفية تراكم بوابتي الاستثناء في صفحة توثيق مساعد الذكاء الاصطناعي.