التواصل متعدد القنوات
English
العربية
English
العربية
كل ما تحتاجه لربط موقعك أو تطبيقك بقنوات الإشعارات القوية من زاجلي. اختر قناة من الشريط الجانبي للانتقال إليها مباشرة.
اتبع هذا الدليل للانتقال من التسجيل إلى إرسال حملتك الأولى.
اختر خطة
اختر اشتراكاً يناسب حجم فريقك وحجم الرسائل. يمكنك ترقية أو تغيير الخطط في أي وقت.
اربط قناة
Click any channel in the sidebar (WhatsApp, Telegram, Email, Web Push…). Each channel opens a dedicated hub with six tabs: Integration, Contacts, Campaigns, Templates, Automations, and Reports. Start on the Integration tab to connect your account.
Import Your Contacts
Inside the channel hub, click the Contacts tab. Import contacts via CSV or add them manually. Tag and segment them for targeted campaigns.
أنشئ قالب رسالة
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.
أرسل حملتك الأولى
Go to the Campaigns tab in any channel hub and click New Campaign. Select your audience, pick a template, and send immediately or schedule for later. Track delivery and read rates in the Reports tab.
Channel-First Navigation
Every channel in the sidebar is a self-contained hub. Inside each hub you find six tabs — Integration, Contacts, Campaigns, Templates, Automations, and Reports — all scoped to that channel. Global views (all channels combined) are still available from the top-level sidebar items.
اضغط على أي قناة للانتقال إلى دليل إعدادها التفصيلي.
واتساب
QR-code session, inbox & broadcasts.
تيليجرام
Bot token, auto-reply & campaigns.
ماسنجر
Facebook Page DM automation.
فايبر
Viber bot broadcasts & replies.
إشعارات الويب
Browser push to any platform.
البريد الإلكتروني
SMTP/API personalised campaigns.
ديسكورد
Bot posts to server channels.
إنستغرام
DM automation via Facebook Graph API.
اربط حساب واتساب الخاص بك لإرسال واستقبال الرسائل مباشرة من لوحة التحكم.
تتيح لك قناة واتساب ربط رقم واتساب شخصي أو للأعمال بحسابك. وبعد الاتصال، يمكنك إرسال الرسائل إلى قائمة المشتركين لديك، وأتمتة الردود، وإدارة المحادثات من صندوق وارد موحد.
المتطلبات المسبقة
قريبًا
نحن نقوم بترقية واتساب إلى التجربة الرسمية. الاتصالات الجديدة بواتساب غير متاحة مؤقتًا أثناء الإطلاق — أما الأرقام المتصلة حاليًا فتستمر بالعمل كالمعتاد.
نصيحة احترافية
استخدم رقم هاتف مخصصاً لواتساب الأعمال. إن مزج المحادثات الشخصية والتجارية على الرقم نفسه قد يسبب ارتباكاً وقد يعرّض حسابك الشخصي للخطر.
تكامل واتساب قادم قريبًا
افتح قناة واتساب لإدارة الرسائل والمحادثات من لوحة التحكم.
اربط بوت تيليجرام لإرسال رسائل مؤتمتة ومعالجة الردود عبر Telegram API.
يتم إنشاء وإدارة بوتات تيليجرام عبر البوت الرسمي BotFather. يستغرق إنشاء البوت أقل من دقيقتين ويمنحك رمزاً تقوم بلصقه في لوحة التحكم لتفعيل القناة.
المتطلبات المسبقة
أنشئ بوتاً عبر BotFather
افتح تيليجرام وابحث عن @BotFather. Start a conversation and send the command:
/newbot
سيطلب BotFather اسماً ظاهراً ثم اسم مستخدم يجب أن ينتهي بـ bot, e.g. MyCompanyBot).
انسخ رمز البوت الخاص بك
سيرد BotFather بالرمز الخاص بك. سيكون شكله مثل:
123456789:ABCdefGHIjklMNOpqrsTUVwxyz
Keep this token safe — anyone with it can control your bot.
Connect in Dashboard
انقر على تيليجرام in the sidebar, open the Integration tab, click Connect New Bot, paste the token, and click اتصال. يتم تسجيل Webhook تلقائياً.
ادعُ جهات الاتصال لبدء البوت
Telegram bots cannot send messages first — contacts must initiate a conversation by clicking your bot link and sending /start. After connecting, your bot card shows the link and a downloadable QR code you can share with contacts:
https://t.me/YourBotUsername
Contact is Linked Automatically
عندما يضغط أحد جهات الاتصال على الرابط ويرسل /start, يلتقط النظام معرّف تيليجرام الخاص به ويربطه بسجل جهة الاتصال. وبعدها يصبح قابلاً للوصول عبر تيليجرام.
لا يمكن لبوتات تيليجرام بدء المحادثات
على عكس الرسائل النصية أو واتساب، لا يمكن لبوتات تيليجرام الرد إلا على المستخدمين الذين بدؤوا البوت بالفعل. تأكد من مشاركة رابط البوت مع جهات الاتصال قبل إرسال أي رسائل تيليجرام إليهم.
هل أنت جاهز لربط تيليجرام؟
ألصق رمز BotFather في قناة تيليجرام لتفعيلها.
اربط صفحة فيسبوك لإرسال واستقبال الرسائل عبر Facebook Messenger.
يربط تكامل ماسنجر صفحة فيسبوك الخاصة بك حتى يتمكن العملاء من مراسلتك على فيسبوك وترد عليهم من لوحة التحكم. يتم الاتصال عبر OAuth ولا يتطلب App Review للمراسلة الأساسية باستخدام Page Access Token.
نافذة المراسلة لمدة 24 ساعة
يسمح فيسبوك بمراسلة المستخدم فقط خلال 24 ساعة من آخر رسالة منه. وبعد انتهاء هذه النافذة، ستحتاج إلى Message Tag مثل تحديثات ما بعد الشراء أو تذكيرات الفعاليات المؤكدة لإرسال رسائل المتابعة.
المتطلبات المسبقة
Open the Messenger Channel
Click Messenger in the sidebar and open the Integration tab.
Connect Your Facebook Page
Click Connect Facebook Page. You'll be redirected to Facebook to authorize access.
Authorize and Select Page
Log in with your Facebook account, grant the required permissions, and select the Page you want to connect.
تم تسجيل الـ Webhook
After authorization the platform automatically registers a webhook with Facebook. Your Messenger channel is now live and ready to receive messages.
هل أنت جاهز لربط ماسنجر؟
فوّض صفحة فيسبوك الخاصة بك وابدأ التحدث مع المشتركين.
اربط خدمة Viber أو البوت لإرسال الرسائل والصور إلى مشتركي فايبر.
يتم إنشاء بوتات فايبر عبر بوابة Viber for Business. واعتباراً من عام 2024، يتطلب فايبر عملية تحقق وموافقة تجارية قبل إصدار Auth Token، ولم تعد خدمة إنشاء البوتات الفورية الذاتية متاحة.
الموافقة التجارية مطلوبة
Viber no longer offers free self-service bot creation. You must apply for a Viber Business account and go through their approval process before receiving an Auth Token. This channel is best suited for businesses already operating in Viber-heavy markets (Eastern Europe, Middle East, Southeast Asia).
المتطلبات المسبقة
قدّم على حساب Viber Business
Visit viber.com/en/business وقدّم طلباً للحصول على حساب Viber for Business. سيقوم فايبر بمراجعة طلبك والتواصل معك. وقد تستغرق هذه العملية عدة أيام إلى أسابيع.
أنشئ حساب خدمة واحصل على Auth Token
بعد الموافقة، سجّل الدخول إلى بوابة شركاء فايبر وأنشئ حساب خدمة وانسخ Auth Token الخاص بك. سيكون شكله مثل:
4bxxxxxxxxx8a8d-xxxxxxxx-xxxxxxxxxxxx
Connect in Dashboard
انقر على فايبر in the sidebar, open the Integration tab, click ربط البوت, paste your Auth Token, and click اتصال. يتم إعداد Webhook تلقائياً.
هل أنت جاهز لربط فايبر؟
ألصق Viber Auth Token لبدء مراسلة المشتركين.
أرسل إشعارات فورية عبر المتصفح إلى مشتركيك على أي موقع أو تطبيق.
تتيح لك إشعارات الويب إرسال تنبيهات فورية مباشرة إلى متصفح المشترك، حتى عندما لا يكون على موقعك. يوافق المستخدم مرة واحدة ويمكنك الوصول إليه كلما كان لديك شيء مهم لمشاركته.
|
المتصفح
|
الحاسوب المكتبي
|
أندرويد
|
iOS / Safari
|
|---|---|---|---|
| Chrome | |||
| Firefox | |||
| Edge | |||
| Safari | |||
| Opera |
iOS / iPadOS note:
Safari 16.4+ supports Web Push only when the visitor adds your site to the Home Screen first (PWA install). In a normal Safari tab the permission prompt is silently denied. Our popup script detects this and emits a
zagely:ios-install-required
event so you can show your own “Add to Home Screen” banner.
اختر سكربتاً واحداً فقط. كل واحد يُسجّل نفس Service Worker ويُوفّر نفس
zagelPush
الواجهة البرمجية API، ولا يمكنك تضمين الاثنين في الوقت نفسه.
|
الخيار
|
السكربت
|
هل يعرض نافذة منبثقة؟
|
زر مخصص؟
|
هل JavaScript مطلوب؟
|
|---|---|---|---|---|
| prompt.js | ||||
| موصى به: نافذة منبثقة مدمجة دون أي JavaScript من جهتك. ويمكنك أيضاً إضافة زر خاص بك عبر استدعاء zagelPush.subscribe(). | ||||
| loader.js | ||||
| لا نافذة منبثقة إطلاقاً — أنت تكتب الزر وتصمّمه بـ JavaScript عادي. | ||||
| button.js | ||||
| لا نافذة منبثقة ولا JavaScript. فقط أضف data attribute إلى أي عنصر وسيتم عرض الزر تلقائياً. | ||||
الإعداد الأسهل. أضف سكربت واحداً إلى موقعك وستظهر نافذة اشتراك جميلة تلقائياً بعد ثوانٍ قليلة. لا يتطلب أي JavaScript من جهتك.
ابقَ على اطلاع 🔔
فعّل الإشعارات حتى لا يفوتك آخر تحديثاتنا.
انسخ مفتاح Push Site Key الخاص بك
اذهب إلى Web Push ← Push Site Key في لوحة التحكم. هذا المفتاح آمن لتضمينه علناً.
أضف وسم السكربت
ألصقه قبل وسم الإغلاق </body>
الوسم في كل صفحة:
<!-- 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 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>
استخدم هذا الخيار عندما لا تريد أي نافذة منبثقة إطلاقاً. زرّك وتنسيقك وأسلوبك أنت. قم بتحميل
loader.js
واستدع
zagelPush.subscribe()
عند النقر على الزر الخاص بك.
<!-- 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>
الطريقة الأسرع لإضافة زر اشتراك دون كتابة أي JavaScript. قم بتضمين
button.js
مرة واحدة وأضف
data-zagely-push-button
على أي عنصر. سيعرض السكربت تلقائياً زر تبديل مُصمّماً ينتقل بين "اشترك" و"إلغاء الاشتراك" — لا نافذة منبثقة ولا JS مخصص.
يتبدّل الزر تلقائياً حسب حالة اشتراك الزائر الحالية.
قم بتضمين button.js مع Push Site Key الخاص بك
أضف وسم السكربت وضع العنصر الدلالي أينما يجب أن يظهر الزر:
<!-- 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>
خصّص باستخدام سمات البيانات (data attributes) (اختياري)
<!-- 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
وسم السكربت:
<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>
عيّن
window.ZagelyPushConfig
في
<script>
كتلة قبل وسم prompt.js:
<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 | "Stay in the loop 🔔" | Popup headline text | |
| message | "Turn on notifications…" | Body text below the title | |
| icon | null | URL to custom icon image (null = built-in bell) | |
| allowText | "Allow Notifications" | Primary CTA button label | |
| denyText | "Maybe later" | Dismiss button label | |
| position | "bottom-right" | Popup position on screen | |
| delay | 3000 | Milliseconds before the popup is shown | |
| theme | "auto" | Color scheme: light | dark | auto | |
| primaryColor | "#6366f1" | Accent hex color for button & icon | |
| remindAfterDays | 7 | Days before re-prompting after a dismiss | |
| onSubscribe | null | Callback when user successfully subscribes | |
| onDeny | null | Callback when user dismisses | |
| onError | null | Callback on error |
كلاهما
prompt.js
(موصى به) و
loader.js
(بلا واجهة، لواجهة مخصصة) يوفّران
zagelPush
عاماً بعد التهيئة.
zagelPush.init()
Manually initialize (fetches VAPID key + registers SW). Called automatically on DOM ready.
zagelPush.init().then(function(ok) {
console.log('Push ready:', ok);
});
zagelPush.subscribe()
Shows the browser permission prompt then subscribes. Resolves with subscription data.
document.getElementById('my-btn').addEventListener('click', function() {
zagelPush.subscribe()
.then(function() { alert('Subscribed!'); })
.catch(function(err) { console.error(err); });
});
zagelPush.unsubscribe()
Unsubscribes the current browser from push notifications.
zagelPush.unsubscribe().then(function() {
console.log('Unsubscribed.');
});
zagelPush.isSubscribed()
Check whether the current browser is already subscribed.
zagelPush.isSubscribed().then(function(subscribed) {
document.getElementById('btn').textContent =
subscribed ? 'Unsubscribe' : 'Subscribe';
});
zagelPush.siteKey
The Push Site Key extracted from the script src attribute.
console.log('Site key:', zagelPush.siteKey);
ارفع ملف ترحيل بسطر واحد:
https://myblog.com/sw.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');
|
الرأس (Header)
|
القيمة
|
لماذا زاجلي
|
|---|---|---|
Content-Type
|
application/javascript
|
بعض شبكات CDN تقدّمه كـ text/plain وترفضه المتصفحات. |
Cache-Control
|
no-cache, no-store, must-revalidate
|
يضمن التقاط تحديثات SW المستقبلية فوراً. |
Service-Worker-Allowed
|
/
|
مطلوب فقط إذا لم يكن الترحيل في جذر النطاق (مثلاً /assets/sw.js). |
<!-- 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 أيضاً.
{{-- 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
الملفات الداعمة:
// .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');
أضف إلى functions.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>';
});
أنشئ مكوّناً للعميل في Next.js App Router:
'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 />
أنشئ إضافة عميل في Nuxt 3: plugins/zagely-push.client.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 على موقعك وشغّل المقطع البرمجي أدناه. سيطبع جدولاً من الفحوصات حتى تتمكن بسرعة من اكتشاف ترحيل مفقود، أو مفتاح موقع خاطئ، أو إذن محظور.
// 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); }
})();
إذا نقر المستخدم "حظر"، لن يعرض المتصفح نافذة الإذن مرة أخرى. وجّهه لإعادة ضبط الإشعارات في إعدادات الموقع في متصفحه.
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) للوصول إلى جميع المشتركين النشطين دفعة واحدة.
عرض الأجهزة النشطة، المنتهية، والملغى اشتراكها.
إرسال إشعار دفع إلى جميع المشتركين النشطين دفعة واحدة.
تتبع معدلات التسليم وتوزيع المتصفحات.
هل أنت جاهز لبدء الإرسال؟
انتقل إلى قناة Web Push للحصول على Push Site Key الخاص بك.
أرسل حملات البريد الإلكتروني والرسائل transactional عبر خادم SMTP الخاص بك أو مزود مستضاف.
تتصل قناة البريد الإلكتروني بأي مزود متوافق مع SMTP. وهذا يمنحك تحكماً كاملاً في قابلية التسليم، سواء باستخدام Gmail أو Outlook أو خدمة إرسال متخصصة مثل SendGrid أو Mailgun أو Amazon SES.
مزودو SMTP الشائعون
| المزوّد | المضيف | المنفذ (TLS) | ملاحظات |
|---|---|---|---|
| Gmail | smtp.gmail.com | Requires App Password if 2FA is on | |
| Outlook | smtp-mail.outlook.com | Use your Microsoft account credentials | |
| SendGrid | smtp.sendgrid.net | Use "apikey" as username, API key as password | |
| Mailgun | smtp.mailgun.org | Use Mailgun SMTP credentials from dashboard | |
| AWS SES | email-smtp.us-east-1.amazonaws.com | Region-specific host; generate SMTP credentials in IAM |
افتح قناة البريد الإلكتروني
Click Email in the sidebar and open the Integration tab.
Enter SMTP Details
Fill in: SMTP Host, Port, Encryption (TLS recommended), Username, and Password.
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.
Test the Connection
Click Send Test Email to verify the settings. A test email will be sent to your account's email address.
حفظ الإعدادات
Once the test passes, click Save. The Email channel is now active.
هل أنت جاهز لإعداد البريد الإلكتروني؟
أدخل بيانات SMTP الخاصة بك وابدأ إرسال الحملات.
انشر الرسائل والبطاقات الغنية والتنبيهات مباشرة في قناة ديسكورد عبر بوت.
تستخدم قناة ديسكورد Discord Bot API v10. تقوم بإنشاء بوت في Discord Developer Portal، ثم تدعوه إلى خادمك، وتلصق رمز البوت مع معرّف الخادم ومعرّف القناة في لوحة التحكم.
المتطلبات المسبقة
أنشئ تطبيق ديسكورد
اذهب إلى discord.com/developers/applications → click تطبيق جديد → give it a name → click إنشاء.
Create a Bot & Copy Token
Click the Bot tab in the left sidebar → click أضف بوت → confirm. Then click Reset Token to reveal and copy your bot token:
MTE5NTUzNDU0NzM1NzA4Nzg3.GxxxxX.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Make sure Message Content Intent is enabled under Privileged Gateway Intents.
احصل على معرّف الخادم ومعرّف القناة
في ديسكورد، فعّل وضع المطوّر ضمن User Settings ← Advanced. ثم انقر بزر الفأرة الأيمن على أيقونة الخادم واختر Copy Server ID، ثم انقر بزر الفأرة الأيمن على القناة المستهدفة واختر Copy Channel ID.
ادعُ البوت إلى خادمك
اذهب إلى OAuth2 ← مولّد الروابط tab in the Developer Portal. Select bot امنحه النطاق والصلاحيات إرسال الرسائل و تضمين الروابط ثم انسخ الرابط الناتج وافتحه لدعوة البوت:
https://discord.com/oauth2/authorize?client_id=YOUR_APP_ID&permissions=2048&scope=bot
Connect in Dashboard
انقر على ديسكورد in the sidebar, open the Integration tab, click ربط البوت, fill in the Bot Token, Server ID, and Channel ID, then click اتصال.
هل أنت جاهز لربط ديسكورد؟
ألصق Bot Token ومعرّف الخادم ومعرّف القناة لبدء النشر إلى ديسكورد.
اربط حساب إنستغرام للأعمال أو حساب منشئ محتوى لإرسال واستقبال الرسائل المباشرة.
تتيح لك مراسلة إنستغرام أن يستفسر منك عملاؤك عبر الرسائل المباشرة على إنستغرام بينما ترد عليهم من لوحة التحكم الموحدة. يستخدم الربط OAuth الخاص بفيسبوك لأن حسابات إنستغرام للأعمال تُدار من خلال صفحات فيسبوك.
نافذة المراسلة لمدة 7 أيام
يسمح إنستغرام بمراسلة المستخدم خلال 7 أيام من آخر رسالة أرسلها. بعد انتهاء هذه المدة، لا يمكن إرسال رسائل جديدة حتى يراسلك العميل مرة أخرى.
المتطلبات المسبقة
افتح قناة إنستغرام
Click Instagram in the sidebar and open the Integration tab.
اتصل عبر فيسبوك
انقر على ربط حساب إنستغرام. سيتم تحويلك إلى فيسبوك لتفويض الوصول إلى حساب إنستغرام المرتبط بك.
فوّض واختر الحساب
سجّل الدخول بحسابك على فيسبوك، وامنح الصلاحيات المطلوبة، ثم اختر حساب إنستغرام للأعمال الذي تريد ربطه.
تم تسجيل الـ 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. |
| 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 |
Manually
اضغط على New Contact في صفحة جهات الاتصال، ثم املأ التفاصيل واحفظ.
استيراد CSV
نزّل قالب CSV التجريبي، واملأه، ثم ارفعه. وسيتم دمج أرقام الهواتف المكررة تلقائياً.
Via API
استخدم نقطة النهاية POST /api/v1/contacts لإنشاء جهات اتصال برمجياً من تطبيقك.
المجموعات والتقسيم
أنشئ مجموعات جهات اتصال ضمن Contacts → Groups لتقسيم جمهورك. وعند إنشاء حملة، يمكنك استهداف مجموعة كاملة أو التصفية حسب العلامات أو حسب قيم الحقول المخصصة دون اختيار جهات الاتصال يدوياً واحدة واحدة.
Per-Channel Contact Lists
Each channel hub has its own Contacts tab — click a channel in the sidebar then open the Contacts tab to see only the subscribers for that channel. The global Contacts page shows your full audience across all channels.
أدر جمهورك
Head to Contacts to add, import, and segment your subscribers.
ادعُ الزملاء إلى مساحة العمل وعيّن لهم الأدوار للتحكم فيما يمكن لكل شخص الوصول إليه وما يمكنه فعله.
المالك
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.
كل المحادثات من جميع القنوات في مكان واحد، اقرأ وردّ وعيّن من عرض واحد.
يجمع صندوق الوارد الموحد المحادثات الواردة والصادرة عبر واتساب وتيليجرام وماسنجر وفايبر والبريد الإلكتروني وإشعارات الويب وديسكورد. ويتم حفظ كل سلسلة رسائل كمحادثة حتى لا تفقد السياق أبداً، حتى لو انتقل المشترك بين القنوات.
التصفية حسب القناة
استخدم التصفية حسب القناة لعرض محادثات واتساب أو تيليجرام أو البريد الإلكتروني أو أي قناة أخرى فقط.
تعيين المحادثات
يمكن تعيين أعضاء الفريق الذين لديهم صلاحية Send Message إلى محادثة ليتولوا المتابعة.
تحديد كمقروء أو غير مقروء
تتبّع المحادثات التي تحتاج إلى اهتمام. وتعرض شارة الشريط الجانبي عدد الرسائل غير المقروءة في الوقت الفعلي.
أرشفة
انقل المحادثات المنتهية إلى الأرشيف للحفاظ على نظافة صندوق الوارد دون حذف السجل.
العلامات
Label conversations with tags (e.g. billing, support, vip) to categorize and filter them later.
الوسائط والمرفقات
تظهر الصور والمستندات والملاحظات الصوتية والملفات المرسلة عبر واتساب أو البريد الإلكتروني مباشرة داخل سلسلة المحادثة.
افتح صندوق الوارد الخاص بك
View all incoming conversations from every channel in a single thread.
Save and reuse message content across campaigns, automations, and manual replies.
Templates are reusable message bodies you create once and use anywhere — in campaigns, automation actions, or when replying in the inbox. Each template is assigned to a specific channel so the format (text, rich text, HTML) matches what that channel supports.
Template Format by Channel
| القناة | Supported Format | ملاحظات |
|---|---|---|
| Plain text + media URL | Supports bold (*text*) and line breaks | |
| Telegram | Plain text / HTML | Supports HTML tags like <b>, <i>, <a> |
| 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 |
| Plain text | Within 24-hour messaging window only |
Open Templates
Navigate to the global Templates page, or click a channel in the sidebar and open its Templates tab to work channel-scoped.
Click New Template
Give the template a descriptive name (e.g. "Order Confirmation") and select the target channel.
Write the Message Body
Use the editor to compose your message. You can insert dynamic variables like that are replaced with real values at send time.
احفظ
Click Save. The template is now available when building campaigns, automations, or replying from the inbox.
Clone to Another Channel
A template written for WhatsApp can be cloned to Telegram or Email with one click. Open the template's action menu and choose <strong>Clone to Channel</strong>, then select the target channel. The cloned copy is independent so you can adapt the format without affecting the original.
Build your template library
Create reusable messages once and use them across every campaign and automation.
أرسل رسائل جماعية إلى مئات أو آلاف جهات الاتصال عبر قناة واحدة أو عدة قنوات.
تسمح لك الحملات بإرسال رسالة واحدة أو رسالة غنية بالصور والأزرار إلى جمهور مستهدف بضغطة واحدة. ويمكن إرسال الحملات فوراً أو جدولتها لتاريخ ووقت لاحقين.
يمكن إيقاف الحملة الجارية مؤقتاً ثم استئنافها. وبمجرد معالجة جميع المستلمين تنتقل الحملة تلقائياً إلى Completed.
الاسم والقناة
أعطِ الحملة اسماً واختر قناة الإرسال مثل واتساب أو تيليجرام أو البريد الإلكتروني، أو فعّل وضع Multi-Channel لمحاولة الإرسال عبر عدة قنوات حسب ترتيب الأولوية.
إنشاء الرسالة
اكتب نص الرسالة. ويمكنك تضمين صور أو ملفات عبر media URL وإضافة أزرار تفاعلية حتى 3 أزرار لردود واتساب السريعة.
اختر الجمهور
استهدف مجموعة جهات اتصال كاملة، أو قم بالتصفية حسب العلامات أو الحقول المخصصة، أو اختر جميع جهات الاتصال. وسيظهر العدد التقديري للمستلمين قبل التأكيد.
جدولة أو إرسال
اختر Send Now للبدء فوراً، أو حدد تاريخاً ووقتاً لجدولة الحملة. ولا يزال بإمكانك تعديل الحملة المجدولة قبل تشغيلها.
راقب التقدم
راقب الإحصاءات المباشرة مثل Sent وDelivered وRead وFailed وهي تتحدث في الوقت الفعلي على صفحة تفاصيل الحملة. ويمكنك الإيقاف المؤقت أو الإلغاء في أي وقت.
Delivery Stats Explained
| المقياس | المعنى |
|---|---|
| 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. |
Channel-Scoped Campaigns
You can also access campaigns directly from a channel hub — click a channel in the sidebar and open the Campaigns tab to see and create campaigns pre-filtered to that channel. The global Campaigns page shows campaigns across all channels.
Launch your first campaign
أنشئ حملة ووصل إلى جمهورك بالكامل في دقائق.
رد تلقائياً على الرسائل الواردة استناداً إلى الكلمات المفتاحية والتوقيت وقواعد العمل.
الأتمتة هي ردود قائمة على القواعد تعمل عند تحقق شرط تفعيل معيّن في رسالة واردة. وهي توفر الوقت من خلال التعامل مع الطلبات الشائعة مثل الأسئلة المتكررة والتحيات ورسائل خارج الدوام دون أي تدخل بشري.
كلمة مفتاحية
يعمل عندما تحتوي الرسالة الواردة على كلمة أو عبارة محددة. مثال: الرد على "MENU" بقائمة مطعمك.
ترحيب
يعمل عند أول رسالة يتم استلامها من جهة اتصال. وهو مثالي لرسالة ترحيب ودليل البدء.
بعيد
يعمل خارج ساعات العمل المحددة لديك. ويُعلم جهة الاتصال بموعد توقع الرد.
احتياطي
يعمل عندما لا تطابق الرسالة الواردة أي أتمتة أخرى. ويعمل كرد افتراضي شامل.
ترتيب الأولوية
عندما يمكن لعدة أتمتات بالكلمات المفتاحية أن تطابق الرسالة نفسها، تفوز الأتمتة ذات رقم الأولوية الأقل. استخدم مقبض السحب لإعادة الترتيب في صفحة Automations لتحديد الترتيب. أما قواعد Welcome وAway وFallback فتعمل دائماً بشكل مستقل عن أولوية الكلمات المفتاحية.
اذهب إلى الأتمتة
انتقل إلى Automations في الشريط الجانبي واضغط New Automation.
اختر نوع التفعيل
اختر Keyword أو Welcome أو Away أو Fallback. وبالنسبة إلى Keyword، أدخل كلمة التفعيل أو الكلمات مفصولة بفواصل عند وجود بدائل متعددة.
أنشئ الرد
اكتب نص الرد. ويمكنك اختيارياً إرفاق media URL لصورة أو مستند وإضافة ما يصل إلى 3 أزرار للرد السريع.
اختر الجلسة
اختر جلسة واتساب أو أي قناة أخرى التي تنطبق عليها هذه الأتمتة، أو اتركها على All لتطبيقها على مستوى المنصة كلها.
تفعيل
حوّل الأتمتة إلى Active واحفظ. وستبدأ بالرد على الرسائل المطابقة فوراً.
Automate your replies
قم بإعداد رسالة ترحيب أو رد بالكلمات المفتاحية ولا تفوّت أي رسالة واردة.
Human Takeover pauses automations too
When an agent replies manually, all automation messages (keyword, welcome, away, and fallback) are suppressed for that conversation — just like AI replies. This ensures customers receive a seamless, human experience without automated interruptions. Learn more →
تتبّع تسليم الرسائل وأداء الحملات ونمو الجمهور بمرور الوقت.
تمنحك صفحة التقارير نظرة شاملة على نشاط المراسلة لديك. ويتم تحديث جميع الرسوم البيانية تلقائياً ويمكن تصفيتها حسب النطاق الزمني والقناة.
لوحة النظرة العامة
إجمالي الرسائل المرسلة يومياً ومعدل التسليم ومعدل القراءة عبر جميع القنوات.
تحليلات الحملات
تفصيل التسليم والقراءة والإخفاق لكل حملة مع إمكانية التعمق حتى مستوى المستلم.
تحليلات الجلسات
الرسائل المرسلة اليوم والإجمالي لكل جلسة واتساب. وتعرّف على الجلسات التي تقترب من الحدود اليومية.
تحليلات جهات الاتصال
عدد جهات الاتصال الجديدة بمرور الوقت وتوزيع القنوات لمعرفة المنصات التي يستخدمها جمهورك أكثر.
نشاط الرسائل
رسوم بيانية لنشاط الرسائل بالساعة واليوم لتحديد فترات التفاعل القصوى.
Export Data
All analytics are also available via the API (/api/analytics/*) so you can pull them into your own BI tools.
اعرض تقاريرك
اعرف كيف تؤدي حملاتك وقنواتك الآن.
Intelligent auto-replies powered by your own knowledge base, with smart human-handoff controls.
The AI Assistant automatically answers incoming messages on any connected channel using knowledge you provide — FAQs, product docs, policy files, and more. Combine it with Human Takeover to seamlessly hand conversations to a live agent and have the AI resume when it's safe to do so.
Open Channel Settings
Click any channel in the sidebar, open the Integration tab and click the AI Settings button.
Enable the AI toggle
Switch on Enable AI Auto-Reply. The AI will now automatically respond to inbound messages using your knowledge base.
Choose a Model
Select the AI model that best suits your needs. More capable models give richer answers; lighter models respond faster.
Train Your Knowledge Base
Upload documents or paste text in Account Settings → AI Training. The AI learns only from the content you provide.
Restrict AI replies to specific days and hours. Outside those hours the AI stays silent so customers know when to expect a human reply. Enable the schedule toggle inside AI Settings, choose your timezone, and check the days you want AI to be active.
When a team member manually replies to a customer, Human Takeover automatically pauses both AI replies and automation messages on that conversation, so the agent handles it without any automated interruptions. Everything resumes automatically once the pause expires or the customer writes back after a period of agent silence.
Pause on Human Reply
AI replies and automation messages pause the moment an agent sends a message in the conversation.
Hard-Timer Resume
AI and automations resume automatically after the configured pause duration (default 3 hours).
Idle Reactivation
AI and automations resume early if the customer writes back and the agent has been silent past the idle threshold.
Enable Human Takeover under <strong>AI Settings → Human Takeover</strong> on any channel session. See the full configuration guide on the AI Assistant documentation page.
You can stop the AI from replying to specific contacts or groups in two ways:
Channel Exclusion List
Open AI Settings on a channel and add contacts or groups to the Exclusions pickers. Only affects that channel.
AI Reply Toggle
Flip the AI Reply switch on the Contacts page or Contact Groups page to disable AI replies globally for that contact or group.
See the full explanation of how both exclusion gates stack on the AI Assistant documentation page.