
Webhook في Whats360: كيف تربط WhatsApp بالمتاجر وCRM وتحوّل الأحداث إلى أتمتة؟
إذا كنت تريد أن تجعل WhatsApp جزءًا فعليًا من النظام الذي تديره، وليس مجرد تطبيق منفصل لإرسال واستقبال الرسائل، فإن Webhook هو أحد أهم مكونات الربط التي تحتاج إلى فهمها.
الفكرة الأساسية بسيطة: بدل أن يظل النظام الخارجي يسأل باستمرار عن وجود بيانات جديدة، يستطيع Webhook إرسال الحدث فور وقوعه. وبذلك يمكن أن تنتقل البيانات بين WhatsApp والمتجر الإلكتروني أو CRM أو أي نظام برمجي آخر في اللحظة المناسبة، ثم يبدأ الإجراء المطلوب تلقائيًا.
في Whats360 يمكن استخدام Webhook في اتجاهين مختلفين: إرسال أحداث WhatsApp إلى نظام خارجي، أو استقبال بيانات من نظام خارجي وتحويلها إلى رسالة WhatsApp. وهذا يجعل Webhook طبقة ربط عملية بين المحادثات والأنظمة والعمليات التجارية.
يمكن أن يكون الحدث رسالة واردة من عميل، أو رسالة صادرة، أو فشلًا في الإرسال، أو حدثًا قادمًا من متجر إلكتروني مثل إنشاء طلب أو تحديث حالته. والنتيجة هي Workflow يبدأ من حدث حقيقي بدل الاعتماد على التدخل اليدوي.
ما هو Webhook في Whats360؟
Webhook هو آلية تعتمد على إرسال إشعار عبر HTTP بمجرد وقوع حدث محدد. في حالة Whats360، تسمح هذه الآلية بتبادل الأحداث والبيانات بين WhatsApp والأنظمة الخارجية دون الحاجة إلى الاستعلام الدوري المستمر عن وجود بيانات جديدة.
وهنا تظهر الفكرة الأساسية التي تميز Webhook عن الأساليب التقليدية في التكامل:
المنطق الأساسي للـ Webhook
حدث يحدث → Webhook يلتقط الحدث → البيانات تنتقل → النظام الآخر ينفذ الإجراء المطلوب
وعند استخدام Incoming Webhook يمكن أن يسير المسار في الاتجاه العكسي:
حدث في النظام الخارجي → Webhook يستقبل البيانات → Whats360 يقرأ البيانات → رسالة WhatsApp تُرسل للعميل
هذه الطريقة مناسبة جدًا للأنظمة التي تحتاج إلى رد فعل سريع على الأحداث، مثل إشعارات الطلبات والدفع وتحديثات الشحن ورسائل العملاء وتسجيل المحادثات داخل CRM وغيرها من سيناريوهات الأتمتة.
لماذا Webhook مهم عند ربط WhatsApp بالأنظمة؟
المشكلة ليست في إرسال رسالة WhatsApp بحد ذاتها، وإنما في معرفة متى يجب إرسال الرسالة ولماذا ولمن وما البيانات التي يجب أن تحتوي عليها.
إذا كان لديك متجر إلكتروني، فإن إنشاء طلب جديد هو حدث. نجاح الدفع حدث آخر. تحديث حالة الطلب حدث مختلف. وإذا كان لديك CRM، فإن وصول رسالة جديدة من العميل أو إرسال رسالة من فريق المبيعات يمثل حدثًا يمكن الاستفادة منه.
Webhook يحول هذه الأحداث إلى إشارات يمكن للأنظمة البرمجية التعامل معها.
وبذلك يصبح WhatsApp جزءًا من Workflow أكبر بدل أن يكون قناة منفصلة عن باقي المنظومة.
الفكرة التي يجب الاحتفاظ بها
Webhook ليس مجرد رابط يتم وضعه في إعدادات النظام. قيمته الحقيقية تظهر عندما تربط حدثًا بإجراء واضح، مثل تحويل إنشاء طلب إلى إشعار WhatsApp أو تحويل رسالة واردة إلى سجل داخل CRM.
Incoming وOutgoing Webhook: ما الفرق؟
يعمل Webhook في Whats360 عبر مسارين رئيسيين: Incoming Webhook وOutgoing Webhook.
الفرق بينهما يعتمد على اتجاه البيانات: هل البيانات تأتي إلى Whats360 من نظام خارجي، أم تخرج من Whats360 إلى نظام خارجي؟
Outgoing Webhook
في حالة Outgoing Webhook، يكون Whats360 هو مصدر الحدث. عندما يقع حدث محدد داخل WhatsApp أو المنصة، يتم إرسال البيانات إلى Endpoint خارجي يحدده المستخدم.
يمكن أن يكون هذا الـ Endpoint موجودًا على خادم خاص، أو داخل نظام CRM، أو ضمن منصة أتمتة مثل n8n أو Make أو Zapier، بحسب السيناريو المطلوب.
ومن أمثلة الأحداث التي يمكن التعامل معها:
- وصول رسالة جديدة من عميل.
- إرسال رسالة صادرة.
- فشل إرسال رسالة.
- اقتراب أو حلول موعد انتهاء الاشتراك.
وهنا يمكن تخيل التدفق بهذه الصورة:
Outgoing Workflow
WhatsApp Event → Whats360 → Webhook → External Endpoint → معالجة البيانات
يمكن بعد ذلك حفظ البيانات أو تحليلها أو تمريرها إلى CRM أو تشغيل Workflow آخر.
Incoming Webhook
في الاتجاه الآخر، يكون النظام الخارجي هو مصدر البيانات.
يمكن لمتجر إلكتروني أو نموذج تسجيل أو نظام دفع أو تطبيق برمجي إرسال طلب POST إلى رابط استقبال مخصص، ثم يقوم Whats360 بقراءة البيانات واستخدامها لإرسال رسالة WhatsApp إلى الرقم المطلوب.
هذا السيناريو مهم جدًا في التجارة الإلكترونية، لأن الحدث يبدأ عادة من المتجر وليس من WhatsApp.
مثلًا:
طلب جديد في المتجر → Incoming Webhook → Whats360 → رسالة تأكيد عبر WhatsApp
أو:
نجاح الدفع → Incoming Webhook → Whats360 → إشعار للعميل
أو:
تحديث حالة الشحن → Incoming Webhook → Whats360 → رسالة للعميل
متى تستخدم كل اتجاه؟
- Outgoing: عندما تريد إخراج أحداث WhatsApp إلى نظام آخر.
- Incoming: عندما تريد استقبال أحداث من نظام آخر وتحويلها إلى إجراءات داخل WhatsApp.
كيف تنتقل البيانات داخل Webhook؟
البيانات التي تنتقل عبر Webhook تكون في صورة Payload، وغالبًا يتم التعامل معها بصيغة JSON. وتحتوي الحمولة على المعلومات التي يحتاج إليها النظام الآخر لتنفيذ الإجراء المطلوب.
من المتغيرات المستخدمة في سياق Webhook داخل Whats360:
| المتغير | الاستخدام |
|---|---|
{{phone}} |
رقم هاتف المرسل أو المستلم. |
{{message}} |
نص الرسالة. |
{{media_url}} |
رابط الوسائط أو الملفات عند وجودها. |
{{sender_name}} |
اسم جهة الاتصال أو المرسل. |
{{message_id}} |
المعرف الفريد للرسالة. |
{{chat_jid}} |
معرف جلسة المحادثة. |
{{timestamp}} |
الختم الزمني للحدث. |
{{instance_id}} |
معرف نسخة أو جهاز WhatsApp المتصل. |
وجود هذه البيانات يجعل Webhook أكثر من مجرد إشعار بحدوث شيء؛ فالبيانات نفسها يمكن أن تكون مدخلًا للـ Workflow التالي.
مثال على Incoming Webhook بصيغة JSON
عند استقبال بيانات من نظام خارجي، يمكن أن تحتوي الحمولة على رقم العميل والرسالة والاسم، مثل المثال التالي:
{
"phone": "+201234567890",
"message": "Your order #1234 is confirmed!",
"name": "Ahmed"
}
وفي هذا السيناريو يمكن أن يستخدم النظام رقم الهاتف لتحديد المستلم، ثم يستخدم الرسالة لإرسال محتوى WhatsApp المناسب.
وتظهر قيمة هذا الأسلوب عندما تكون البيانات ناتجة عن حدث تجاري، مثل إنشاء طلب أو نجاح عملية دفع.
نقطة النهاية الخاصة بالاستقبال
ضمن تفاصيل الربط الواردة في المحتوى، يظهر Endpoint بصيغة:
POST /api/instances/{id}/webhooks/{webhook_id}/incoming
مع استخدام:
Content-Type: application/json
وعند نجاح استقبال الطلب يظهر رد معياري بصيغة JSON:
{
"status": "success",
"message": "Webhook received successfully"
}
إدارة Webhooks من داخل Whats360
يمكن إدارة نقاط الربط من صفحة Webhooks في واجهة Webhooks في Whats360.
الفكرة من واجهة الإدارة ليست فقط إنشاء رابط، وإنما تنظيم نقاط التكامل التي يعتمد عليها النظام، مع إمكانية التعامل مع أنواع مختلفة من Webhooks والقوالب الجاهزة.
وتتضمن الواجهة التشغيلية، بحسب المحتوى، قائمة بالـ Webhooks النشطة وقوالب التكامل وحالة نقاط الربط، مع إمكانية التعديل والحذف والتعطيل المؤقت.
كما يوجد قسم مخصص لروابط الاستقبال HookURL، بحيث يمكن توليد رابط استقبال مخصص لكل Instance، وربط الأحداث القادمة من منصات التجارة الإلكترونية أو التطبيقات الخارجية بجهاز WhatsApp محدد داخل المنصة.
لماذا فصل HookURL مهم؟
لأن النظام الخارجي يحتاج إلى نقطة واضحة يرسل إليها بيانات الحدث. وعندما يكون لكل سيناريو رابط استقبال مناسب، يصبح من الأسهل تحديد مصدر البيانات وربطها بالـ Instance الذي سيقوم بالإجراء المطلوب.
قوالب Webhook الجاهزة للتكامل
بدل أن يبدأ المستخدم كل عملية تكامل من الصفر، توفر Whats360 مكتبة من قوالب Webhook موجهة إلى سيناريوهات مختلفة.
القوالب المذكورة تشمل متاجر إلكترونية ومنصات أتمتة وأنظمة CRM وERP وغيرها من الاستخدامات.
Shopify وWooCommerce
يمكن استخدام قوالب مخصصة لاستقبال بيانات الطلبات وإرسال إشعارات WhatsApp المتعلقة بالطلبات والدفع وتحديثات الحالة.
Odoo
يتضمن المحتوى قوالب لإرسال بيانات الرسائل والميديا الواردة إلى Odoo، وكذلك استقبال بيانات مثل تأكيد الطلبات وإصدار الفواتير وتحويلها إلى رسائل WhatsApp.
Salla وZid
توجد قوالب موجهة إلى المتاجر العربية لمزامنة إشعارات الطلبات والتأكيدات وتحديثات التتبع.
EasyOrders وYouCan
توجد قوالب مخصصة لتأكيد الطلبات، وخصوصًا سيناريوهات الدفع عند الاستلام التي تحتاج إلى التواصل السريع مع العميل لتأكيد بيانات الطلب.
Meta Lead Ads
يمكن استخدام Webhook لاستقبال بيانات العملاء المحتملين من نماذج Lead ثم بدء تواصل عبر WhatsApp.
Google Sheets وForms
يمكن أن يؤدي إضافة صف جديد في جدول بيانات إلى تشغيل رسالة WhatsApp آلية وفق السيناريو المعد.
بوابات الدفع
يمكن استخدام Incoming Webhook لاستقبال إشعار نجاح الدفع ثم إرسال إيصال أو إشعار للعميل عبر WhatsApp.
Make وZapier
يمكن توجيه أحداث WhatsApp إلى منصات الأتمتة السحابية، ثم استخدام البيانات في سيناريوهات أكثر تعقيدًا.
Zoho CRM وHubSpot
يمكن استخدام Webhook لمزامنة المحادثات والمرفقات مع سجلات العملاء داخل أنظمة CRM.
Media & Files Forwarder
يمكن استخدام Webhook لإعادة توجيه روابط الملفات والوسائط الواردة مع بيانات المرسل إلى خادم خارجي.
إذا كان التكامل جزءًا من نظام أكبر
عندما تحتاج إلى ربط WhatsApp بالمتجر أو CRM أو نظام داخلي، تصبح قيمة Webhook في تنظيم تدفق البيانات بين الأنظمة، وليس في إرسال الرسالة فقط.
- استقبال أحداث من الأنظمة الخارجية.
- إرسال أحداث WhatsApp إلى الأنظمة الأخرى.
- تمرير البيانات إلى أدوات الأتمتة.
ربط Webhook مع n8n
يصبح Webhook أكثر مرونة عندما يتم وضعه داخل Workflow لأتمتة مجموعة من الإجراءات بدل تنفيذ إجراء واحد فقط.
ومن الأمثلة الواردة في المحتوى استخدام n8n كطبقة لمعالجة الأحداث القادمة من WhatsApp.
تدفق العمل
يبدأ السيناريو بإنشاء Webhook داخل Whats360 ونسخ رابط الإشعار.
بعد ذلك يتم إنشاء مسار عمل داخل n8n وإضافة Webhook Trigger ثم إدخال الرابط المطلوب في إعدادات العقدة.
بعد استقبال الحدث يمكن بناء الإجراءات التالية، مثل حفظ البيانات في Google Sheets أو إرسال بريد إلكتروني أو تمرير البيانات إلى نظام آخر.
ثم يتم تفعيل الـ Workflow واختباره بإرسال رسالة تجريبية.
مثال على Workflow قابل للتوسع
رسالة WhatsApp → Whats360 → n8n → تحليل البيانات → حفظ أو إرسال أو تمرير إلى نظام آخر
القيمة هنا أن Webhook يوفر الحدث، بينما تتولى منصة الأتمتة تنظيم ما يجب أن يحدث بعد ذلك.
ربط Shopify مع Whats360 عبر Webhook
يعد إنشاء الطلب من أشهر السيناريوهات التي يمكن فيها استخدام Incoming Webhook.
الفكرة هي أن Shopify يرسل الحدث إلى رابط الاستقبال في Whats360، ثم تستخدم المنصة البيانات لإرسال إشعار WhatsApp إلى العميل.
إعداد Webhook للاستقبال
يبدأ السيناريو بإنشاء Webhook من نوع استقبال بيانات واختيار قالب Shopify، ثم نسخ رابط الاستقبال الناتج.
بعد ذلك يتم التوجه إلى إعدادات Shopify الخاصة بالـ Webhooks وإنشاء Webhook جديد، ثم اختيار الحدث والتنسيق JSON ووضع رابط الاستقبال.
ومن الأحداث المذكورة في المحتوى:
orders/createعند إنشاء طلب جديد.orders/updatedعند تحديث الطلب.orders/paidعند نجاح الدفع.customers/createعند تسجيل عميل جديد.
وقد تحتوي بيانات الطلب على معلومات مثل رقم الطلب والقيمة ورقم هاتف العميل.
{
"id": 820982911946154508,
"order_number": 1234,
"total_price": "199.00",
"customer": {
"first_name": "Ahmed",
"phone": "+201234567890"
}
}
تأكيد الطلب
New Order → Webhook → Whats360 → WhatsApp
عند إنشاء الطلب، تصل البيانات إلى Whats360 ويتم استخدام رقم العميل لإرسال رسالة مناسبة.
إشعار الدفع
Payment Success → Webhook → Whats360 → WhatsApp
عند نجاح عملية الدفع، يمكن أن يبدأ Workflow لإرسال إشعار للعميل وفق إعدادات النظام.
تحديث حالة الشحن
Order Updated → Webhook → Whats360 → WhatsApp
عند تحديث حالة الطلب، يمكن استخدام الحدث لتشغيل رسالة WhatsApp تخبر العميل بالتحديث المناسب.
وبذلك لا يحتاج فريق المتجر إلى كتابة كل رسالة يدويًا في كل مرة يتغير فيها وضع الطلب.
قيمة Webhook للمتجر الإلكتروني
الهدف ليس إرسال رسائل أكثر، بل ربط الرسالة بالحدث الصحيح. عندما يكون إنشاء الطلب أو الدفع أو تحديث الحالة هو Trigger، تصبح الرسالة جزءًا من دورة الطلب نفسها.
الأمان في Shopify والتحقق من Webhook
يتضمن المحتوى استخدام ترويسة X-Shopify-Hmac-SHA256 للتحقق من هوية الطلب عبر المفتاح السري.
وهذا يوضح أهمية التعامل مع Webhook باعتباره نقطة اتصال بين أنظمة مختلفة، وليس مجرد رابط مكشوف يتم الاعتماد عليه دون ضوابط.
كما يرد في المحتوى شرط الاستجابة برمز 200 OK خلال خمس ثوانٍ لتجنب إعادة المحاولة أو تعليق الإرسال في سيناريو Shopify المذكور.
وبالتالي، عند بناء تكامل يعتمد على Webhook، يجب التفكير في مسارين معًا: وصول البيانات والتحقق من مصدرها.
ربط WooCommerce مع Whats360
يمكن كذلك استخدام Incoming Webhook لربط WooCommerce مع Whats360.
يبدأ الإعداد بإنشاء Webhook جديد واختيار قالب WooCommerce ثم نسخ رابط الاستقبال.
بعد ذلك يتم الدخول إلى:
WooCommerce → Settings → Advanced → Webhooks
ثم إنشاء Webhook جديد وإدخال الاسم وتحديد الحالة Active واختيار الحدث ووضع رابط الاستقبال في Delivery URL وإدخال Secret.
الأحداث الشائعة
- إنشاء طلب جديد.
- تحديث الطلب.
- إنشاء عميل جديد.
- تحديث منتج.
ومن أمثلة بيانات الطلب:
{
"id": 727,
"status": "processing",
"total": "150.00",
"billing": {
"first_name": "Sara",
"phone": "+966501234567"
}
}
مراقبة سجلات WooCommerce
عند حدوث مشكلة في التسليم، يمكن تتبع السجلات من قسم WooCommerce → Status → Logs وفق مسار التشغيل الوارد في المحتوى.
ويشير المحتوى كذلك إلى أن WooCommerce قد يعطل Webhook تلقائيًا في حال فشل التسليم بصورة متكررة وعدم استلام رمز النجاح المتوقع.
لا تكتفِ بإنشاء Webhook
التكامل الجيد يحتاج إلى اختبار الإرسال والاستقبال، ومراقبة الأخطاء، وفهم الاستجابة التي ينتظرها النظام الخارجي. إنشاء الرابط هو بداية التكامل وليس نهايته.
إعدادات Secret وإعادة المحاولة
تحتوي نافذة إنشاء Webhook في المحتوى على مجموعة من الإعدادات التي تتحكم في طريقة عمل نقطة الربط.
اسم Webhook
يستخدم الاسم لتحديد وظيفة نقطة الربط داخل النظام. وكلما كان الاسم واضحًا، أصبح من الأسهل معرفة الغرض من Webhook عند وجود عدة تكاملات.
نوع Webhook
يمكن تحديد ما إذا كان Webhook مخصصًا لاستقبال البيانات أو إرسالها.
- Incoming Webhook لاستقبال البيانات.
- Outgoing Webhook لإرسال البيانات.
الرابط URL
في حالة Outgoing Webhook، يتم إدخال رابط الوجهة الخارجية التي ستستقبل البيانات.
Secret
يمكن إضافة Secret كطبقة للتحقق من مصدر الطلبات وحماية نقطة الاتصال.
Event Triggers
يمكن اختيار الأحداث التي تؤدي إلى تشغيل Webhook، مثل الرسائل الواردة والرسائل المرسلة وفشل الإرسال وانتهاء الاشتراك.
Retry Settings
يتضمن المحتوى إمكانية تحديد عدد المحاولات بين محاولة واحدة وخمس محاولات، مع قيمة افتراضية قدرها ثلاث محاولات، إضافة إلى تحديد التأخير بين المحاولات، والقيمة الافتراضية المذكورة هي 30 ثانية.
لماذا Retry مهم؟
لأن فشل نقطة الاتصال لا يعني بالضرورة أن التكامل نفسه خاطئ. قد يكون الخادم الخارجي غير متاح مؤقتًا. وجود آلية لإعادة المحاولة يساعد على التعامل مع حالات الفشل المؤقتة بدل اعتبار الحدث ضائعًا من المحاولة الأولى.
كيف تتعامل مع أخطاء Webhook؟
أخطاء Webhook قد تحدث في أكثر من طبقة. فقد تكون المشكلة في الرابط، أو في البيانات، أو في الخادم المستقبل، أو في الاستجابة، أو في طريقة معالجة الحدث.
لذلك من الأفضل النظر إلى رحلة الطلب كاملة:
Source → HTTP Request → Endpoint → Payload → Validation → Processing → Response
إذا توقف أي جزء من هذه السلسلة، فقد لا تصل العملية إلى نهايتها.
فشل الاتصال
إذا كان الخادم المستهدف غير متاح، يمكن أن تدخل العملية في سيناريو إعادة المحاولة وفق إعدادات Webhook.
Payload غير مناسب
إذا كانت البيانات لا تحتوي على الحقول المطلوبة، فقد لا يستطيع النظام تنفيذ الإجراء المطلوب.
رقم العميل غير صحيح
في سيناريوهات إرسال WhatsApp، يحتاج النظام إلى رقم صالح حتى يمكن استخدامه كوجهة للرسالة.
عدم معالجة الاستجابة
الأنظمة الخارجية قد تعتمد على استجابة HTTP لتحديد ما إذا كان الطلب قد وصل بنجاح، ولذلك يجب أن تكون الاستجابة جزءًا من تصميم التكامل وليس تفصيلًا ثانويًا.
كيف تمنع تكرار معالجة الأحداث؟
عند تصميم Webhook Workflow، لا يكفي أن تسأل: هل وصلت البيانات؟ بل يجب أيضًا التفكير في كيفية التعامل معها إذا تكرر الحدث.
وجود message_id وبيانات الحدث الأخرى يمكن أن يساعد النظام في التمييز بين الأحداث، بحسب طريقة بناء التطبيق الذي يستقبل البيانات.
الفكرة العملية هي أن يكون لكل حدث تعريف واضح داخل النظام، بحيث لا يؤدي تكرار نفس البيانات إلى تنفيذ نفس العملية بصورة غير مقصودة.
وهذه نقطة مهمة خصوصًا في سيناريوهات الطلبات والإشعارات، لأن إرسال رسالة تأكيد مكررة للعميل قد يسبب تجربة سيئة حتى لو كان Webhook نفسه يعمل تقنيًا.
Webhook أم API؟
Webhook وAPI ليسا بديلين متطابقين بالضرورة. الفرق الأساسي في طريقة بدء الاتصال.
| العنصر | Webhook | API |
|---|---|---|
| بداية العملية | حدث يؤدي إلى إرسال البيانات. | طلب من النظام المستهلك للبيانات. |
| الاستخدام | الإشعارات والأحداث اللحظية. | تنفيذ عمليات واسترجاع أو إرسال بيانات وفق الواجهة المتاحة. |
| النموذج | Event-driven. | Request-driven. |
لذلك قد يكون أفضل تصميم هو استخدام الاثنين معًا: API لتنفيذ العمليات المطلوبة، وWebhook لإبلاغ الأنظمة بالأحداث التي وقعت.
تحويل حدث المتجر إلى رسالة WhatsApp
أهم قيمة عملية في هذا النوع من التكامل هي القدرة على بناء سلسلة واضحة من الحدث إلى النتيجة.
يمكن تمثيلها بهذه الصورة:
Event → Webhook → Whats360 → WhatsApp
إنشاء الطلب هو الحدث، وWebhook هو طبقة نقل البيانات، وWhats360 هو طبقة تنفيذ الرسالة، وWhatsApp هو قناة التواصل مع العميل.
وبنفس المنطق يمكن بناء سيناريوهات أخرى:
- رسالة واردة → Outgoing Webhook → CRM.
- طلب جديد → Incoming Webhook → رسالة تأكيد.
- نجاح الدفع → Incoming Webhook → إشعار للعميل.
- تحديث الطلب → Incoming Webhook → تحديث عبر WhatsApp.
- رسالة واردة → Outgoing Webhook → منصة أتمتة.
- فشل إرسال → Outgoing Webhook → نظام معالجة أو متابعة.
متى يكون Webhook هو الحل المناسب؟
يكون Webhook مناسبًا عندما يكون لديك حدث واضح يحتاج إلى إجراء تلقائي.
إذا كنت تريد أن تعرف فور وصول رسالة جديدة، أو تريد تشغيل إجراء عند إنشاء طلب، أو إرسال إشعار بعد نجاح الدفع، أو تمرير المحادثة إلى CRM، فإن نموذج Event-driven يصبح منطقيًا.
أما إذا كان المطلوب مجرد تنفيذ عملية محددة عند طلبها من النظام، فقد تكون API هي الجزء الأهم في التصميم.
ولهذا لا ينبغي اختيار Webhook باعتباره تقنية مستقلة عن المشكلة. القرار الصحيح يبدأ من السؤال: ما الحدث الذي أريد التقاطه؟ وماذا يجب أن يحدث بعده؟
للمطورين ومتكاملي الأنظمة
إذا كان هدفك بناء Integration بين WhatsApp ونظام موجود بالفعل، فابدأ بتحديد الأحداث والـ Payload والـ Endpoint وطريقة التحقق وإعادة المحاولة قبل كتابة Workflow كامل.
- حدد مصدر الحدث.
- حدد النظام الذي سيستقبل البيانات.
- حدد الحقول المطلوبة.
- حدد الإجراء الذي سيحدث بعد الاستقبال.
بناء Webhook Architecture قابلة للتوسع
عندما يبدأ المشروع بعدد قليل من الأحداث، قد يبدو التكامل بسيطًا. لكن مع زيادة عدد الأنظمة والأحداث، يصبح تنظيم البنية أكثر أهمية.
يمكن التفكير في Webhook كطبقة بين مصدر الحدث وطبقة تنفيذ الإجراءات.
في جانب المصدر قد يكون لديك WhatsApp أو متجر إلكتروني أو CRM أو نظام دفع أو تطبيق برمجي. وفي المنتصف توجد نقطة Webhook التي تنقل الحدث. ثم تأتي طبقة المعالجة التي تحدد ماذا يجب أن يحدث بعد ذلك.
طبقات التكامل
مصدر الحدث
متجر، WhatsApp، CRM أو نظام خارجي.
طبقة Webhook
استقبال أو إرسال الحدث والبيانات المرتبطة به.
طبقة المعالجة
تحليل البيانات وتحديد الإجراء.
طبقة التنفيذ
إرسال WhatsApp أو حفظ البيانات أو تمريرها إلى نظام آخر.
هذا التفكير يجعل من السهل إضافة Workflow جديد دون إعادة بناء المنظومة كلها من البداية.
Webhook والـ CRM
عندما يكون الهدف هو ربط WhatsApp مع CRM، يصبح Outgoing Webhook مهمًا لأن الرسائل والأحداث يمكن أن تنتقل إلى النظام الذي يدير بيانات العملاء.
مثلًا، يمكن أن تصل رسالة جديدة من عميل إلى Whats360، ثم يتم إرسال بياناتها إلى Endpoint مرتبط بالـ CRM.
البيانات يمكن أن تتضمن رقم العميل ونص الرسالة واسم جهة الاتصال ومعرف الرسالة ومعرف المحادثة والوقت، إضافة إلى بيانات أخرى مرتبطة بالحدث.
بعد ذلك يستطيع النظام الخارجي استخدام هذه البيانات ضمن آلية المعالجة التي تم إعدادها.
الفكرة هنا ليست استبدال CRM، وإنما جعل WhatsApp جزءًا من دورة البيانات التي يعتمد عليها فريق المبيعات أو خدمة العملاء.
Webhook والأتمتة متعددة الأنظمة
تزداد أهمية Webhook عندما لا يكون لديك نظام واحد فقط.
قد يكون لديك متجر إلكتروني، وCRM، وأداة أتمتة، ونظام WhatsApp، ونظام آخر لحفظ البيانات. وفي هذه الحالة يصبح نقل الأحداث بين الأنظمة جزءًا أساسيًا من البنية.
يمكن أن يبدأ الحدث من المتجر، ثم يصل إلى Webhook، ثم ينتقل إلى طبقة أتمتة، وبعدها يتم إرسال رسالة عبر WhatsApp وتسجيل الحدث في CRM.
وبهذا يتحول الحدث الواحد إلى سلسلة من الإجراءات المرتبطة ببعضها.
السيناريو متعدد الأنظمة
متجر → Webhook → Automation → Whats360 → WhatsApp + CRM
كل طبقة لها وظيفة محددة، بينما يظل الحدث التجاري هو نقطة البداية.
أهم الأخطاء عند بناء Webhook
هناك مجموعة من الأخطاء العملية التي يجب الانتباه إليها عند بناء التكامل.
اختيار اتجاه Webhook بشكل خاطئ
إذا كنت تريد استقبال بيانات الطلب من المتجر، فأنت تحتاج إلى مسار Incoming. أما إذا كنت تريد إرسال رسالة واردة من WhatsApp إلى نظام خارجي، فأنت تحتاج إلى Outgoing.
عدم تحديد الحدث بوضوح
كل Workflow يحتاج إلى Trigger واضح. يجب معرفة هل الحدث هو إنشاء الطلب، أم الدفع، أم تحديث الحالة، أم رسالة واردة، أم فشل إرسال.
إهمال Payload
قد يصل الطلب إلى Endpoint بنجاح، لكن البيانات المطلوبة لتنفيذ الإجراء غير موجودة أو غير معالجة بالطريقة الصحيحة.
إهمال الأمان
عندما توجد إمكانية استخدام Secret أو آلية تحقق، يجب إدخالها ضمن تصميم التكامل بدل اعتبارها خطوة ثانوية.
عدم اختبار الفشل
لا يكفي اختبار الحالة التي يعمل فيها الخادم. يجب أيضًا التفكير فيما يحدث عندما يتوقف Endpoint أو يتأخر أو يعيد استجابة غير متوقعة.
عدم التفكير في التكرار
عند وجود إعادة محاولة، يجب أن يكون النظام قادرًا على التعامل مع احتمال وصول نفس الحدث أكثر من مرة دون تنفيذ آثار غير مقصودة.
دليل عملي لتجهيز Webhook قبل التشغيل
قائمة مراجعة التكامل
- حدد مصدر الحدث.
- حدد هل Webhook Incoming أم Outgoing.
- حدد Endpoint بوضوح.
- حدد الحقول المطلوبة داخل Payload.
- حدد رقم العميل أو وجهة البيانات.
- حدد Event Trigger المناسب.
- أضف Secret عند الحاجة.
- حدد إعدادات Retry.
- اختبر البيانات الفعلية.
- اختبر حالة الفشل.
- راقب الاستجابة.
- تحقق من عدم تكرار تنفيذ الحدث.
هذه القائمة لا تستبدل اختبار النظام الفعلي، لكنها تساعد على تحويل فكرة التكامل إلى Workflow واضح قبل البدء في التشغيل.
كيف تختار بين التكامل الجاهز وWebhook المخصص؟
إذا كان السيناريو الذي تحتاج إليه موجودًا بالفعل ضمن القوالب الجاهزة، فإن استخدام القالب يمكن أن يكون نقطة بداية عملية بدل بناء التكامل من الصفر.
أما إذا كان النظام الذي تريد ربطه غير موجود ضمن القوالب، فيمكن التفكير في Custom Webhook، خصوصًا عندما يكون لديك Endpoint خاص أو تطبيق داخلي أو Workflow يحتاج إلى شكل بيانات مخصص.
القرار هنا يعتمد على طبيعة النظام والبيانات والهدف النهائي من التكامل.
اختيار سريع
تكامل معروف وسيناريو شائع؟ ابدأ بالقالب الجاهز المناسب.
نظام مخصص أو Workflow خاص؟ استخدم Custom Webhook وفق بنية النظام.
أتمتة متعددة الإجراءات؟ يمكن تمرير الأحداث إلى منصة أتمتة مثل n8n أو Make أو Zapier.
دور Webhook في أتمتة التجارة الإلكترونية
في التجارة الإلكترونية، لا تأتي قيمة WhatsApp من الرسالة وحدها، بل من توقيت الرسالة وارتباطها بمرحلة العميل داخل دورة الطلب.
الطلب الجديد له رسالة مختلفة عن إشعار الدفع، وإشعار الدفع مختلف عن تحديث الشحن. Webhook يسمح بربط كل حدث بالرسالة أو الإجراء المناسب.
وهذا يقلل الاعتماد على قيام الموظف بمراقبة لوحة المتجر ثم نسخ البيانات يدويًا وإرسال رسالة إلى العميل.
المنطق يصبح:
الحدث التجاري يحدث → النظام يرسل البيانات → Whats360 يستقبلها → WhatsApp يتواصل مع العميل.
وهذه هي النقطة التي تجعل Webhook طبقة أتمتة وليست مجرد تقنية ربط.
حوّل أحداث المتجر إلى Workflow واضح
إذا كان لديك متجر وتريد أن ترتبط إشعارات الطلبات أو الدفع أو تحديث الحالة بتواصل WhatsApp، فابدأ بتحديد الأحداث التي تريد أتمتتها ثم حدد اتجاه البيانات والحقول المطلوبة.
- طلب جديد.
- دفع ناجح.
- تحديث حالة الطلب.
Webhook كحلقة وصل بين WhatsApp والأنظمة البرمجية
يمكن النظر إلى Webhook باعتباره طبقة اتصال تجعل WhatsApp قادرًا على المشاركة في منظومة برمجية أكبر.
بدل أن يكون WhatsApp مكانًا تصل إليه الرسائل فقط، يصبح مصدرًا للأحداث أو وجهة لإجراءات تبدأ في نظام آخر.
وهذا يفتح المجال أمام مجموعة من السيناريوهات التي تعتمد على Event-driven Workflow:
- رسالة العميل تبدأ عملية داخل CRM.
- إنشاء الطلب يبدأ رسالة تأكيد.
- الدفع الناجح يبدأ إشعارًا.
- تحديث الطلب يبدأ رسالة متابعة.
- فشل إرسال رسالة يرسل حدثًا إلى النظام الخارجي.
- بيانات Lead تبدأ تواصلًا عبر WhatsApp.
كل هذه السيناريوهات تشترك في فكرة واحدة: لا تنتظر النظام أن يسأل عن الحدث؛ دع الحدث يطلق العملية.
ما الذي يحتاجه المطور قبل تنفيذ التكامل؟
المطور أو System Integrator الذي سيبني التكامل يحتاج إلى فهم واضح لثلاثة عناصر على الأقل: المصدر، والبيانات، والنتيجة.
المصدر هو النظام الذي يبدأ الحدث.
البيانات هي Payload التي سيتم نقلها.
والنتيجة هي الإجراء الذي يجب أن يحدث بعد وصول البيانات.
بعد ذلك تأتي التفاصيل التقنية مثل Endpoint وHTTP Method وJSON وSecret وRetry وطريقة معالجة الأخطاء.
ومن المفيد كذلك الرجوع إلى بوابة المطورين داخل الحساب عند الحاجة إلى أكواد الربط وأمثلة cURL وEndpoints الخاصة بالتنفيذ.
ما الذي يحتاجه صاحب المتجر؟
صاحب المتجر لا يحتاج بالضرورة إلى الدخول في تفاصيل كل حقل داخل JSON، لكنه يحتاج إلى معرفة السيناريو الذي يريد تحقيقه.
مثلًا:
هل تريد إرسال رسالة عند إنشاء الطلب؟
هل تريد إشعارًا عند الدفع؟
هل تريد تحديث العميل عند تغير حالة الطلب؟
بعد تحديد الهدف، يمكن ترجمة السيناريو إلى Webhook Workflow مناسب.
وهنا يصبح دور التقنية هو تنفيذ النتيجة المطلوبة بدل أن تصبح التقنية نفسها هي محور المشروع.
أسئلة شائعة حول Webhook في Whats360
ما هو Webhook في Whats360؟
هو آلية لتبادل الأحداث والبيانات عبر HTTP بين Whats360 والأنظمة الخارجية، بحيث يمكن إرسال البيانات عند وقوع أحداث محددة أو استقبال بيانات من نظام خارجي لبدء إجراء داخل WhatsApp.
ما الفرق بين Incoming وOutgoing Webhook؟
Incoming يستقبل البيانات من نظام خارجي إلى Whats360، بينما Outgoing يرسل أحداث وبيانات من Whats360 إلى Endpoint خارجي.
هل يمكن ربط WhatsApp بمتجر إلكتروني باستخدام Webhook؟
نعم، يمكن استخدام Incoming Webhook لاستقبال أحداث مثل إنشاء الطلب أو الدفع أو تحديث الحالة، ثم استخدام البيانات لإرسال رسائل WhatsApp وفق السيناريو المعد.
كيف أربط Shopify مع Whats360؟
وفق مسار التكامل الوارد، يتم إنشاء Webhook استقبال في Whats360 واستخدام رابط الاستقبال داخل إعدادات Webhooks في Shopify مع تحديد الحدث والتنسيق JSON.
كيف أربط WooCommerce مع Whats360؟
يتم إنشاء Webhook استقبال في Whats360، ثم إضافة Webhook داخل WooCommerce من إعدادات Webhooks ووضع رابط الاستقبال في Delivery URL مع ضبط الحدث وSecret.
هل يمكن استخدام Webhook مع n8n؟
نعم، يمكن استخدام Webhook داخل n8n كـ Trigger لاستقبال الأحداث ثم تنفيذ إجراءات أخرى مثل حفظ البيانات أو إرسالها إلى نظام مختلف.
هل يمكن استخدام Webhook مع Make وZapier؟
يمكن توجيه أحداث WhatsApp إلى منصات الأتمتة مثل Make وZapier ثم استخدام البيانات داخل Workflows أخرى وفق السيناريو المطلوب.
ما نوع البيانات التي تنتقل عبر Webhook؟
يمكن أن تتضمن البيانات رقم الهاتف والرسالة واسم المرسل ومعرف الرسالة ومعرف المحادثة والختم الزمني ورابط الوسائط ومعرف الـ Instance، بحسب الحدث والسيناريو.
هل Webhook هو نفسه API؟
لا. Webhook يعتمد على إرسال البيانات عند وقوع حدث، بينما API تعتمد على طلبات تنفذها الأنظمة للحصول على البيانات أو تنفيذ عمليات عبر الواجهة البرمجية.
كيف يمكن تأمين Webhook؟
يمكن استخدام Secret أو آلية تحقق مناسبة للتأكد من مصدر الطلبات وحماية نقطة الاتصال، كما يظهر في إعدادات Webhook ومسارات التكامل المذكورة.
ماذا يحدث إذا فشل Webhook؟
تتضمن إعدادات Webhook إمكانية إعادة المحاولة عند الفشل، مع تحديد عدد المحاولات والتأخير بينها وفق الإعدادات المتاحة.
كيف أتعامل مع تكرار Webhook؟
يجب أن يصمم النظام المستقبل لمعالجة الأحداث بصورة تمنع تنفيذ نفس العملية أكثر من مرة عند إعادة إرسال الحدث، مع الاستفادة من معرفات الأحداث مثل message_id عندما يكون ذلك مناسبًا.
متى يكون Webhook مناسبًا للأتمتة؟
يكون مناسبًا عندما يكون لديك حدث واضح تريد أن يبدأ بعده إجراء تلقائي، مثل إنشاء طلب أو وصول رسالة أو نجاح الدفع أو تحديث حالة الطلب.
هل يمكن ربط WhatsApp مع CRM باستخدام Webhook؟
نعم، يمكن استخدام Outgoing Webhook لإرسال أحداث وبيانات المحادثات إلى نظام CRM أو طبقة أتمتة، وفق طريقة التكامل التي يدعمها النظام الخارجي.
الخلاصة: Webhook يحوّل WhatsApp من قناة منفصلة إلى جزء من النظام
القيمة الأساسية لـ Webhook في Whats360 هي أنه يسمح ببناء اتصال قائم على الأحداث بين WhatsApp والأنظمة الخارجية.
يمكن أن يأتي الحدث من WhatsApp ويتم إرساله إلى CRM أو منصة أتمتة، أو يبدأ من متجر إلكتروني ثم يصل إلى Whats360 ليؤدي إلى إرسال رسالة للعميل.
وعند الجمع بين Incoming وOutgoing Webhooks وبيانات JSON وSecrets وإعدادات Retry وقوالب التكامل، يصبح من الممكن بناء Workflows تتجاوز فكرة إرسال رسالة منفردة إلى منظومة متكاملة تربط المتجر وCRM وWhatsApp والأدوات البرمجية.
النقطة الأهم عند تصميم أي تكامل هي البدء من الحدث والنتيجة: ما الذي يحدث؟ وما الإجراء الذي يجب أن يبدأ بعده؟ ثم تأتي Webhook كطبقة تنقل الحدث والبيانات بين الأنظمة.
هل لديك نظام تريد ربطه بواتساب؟
إذا كان لديك متجر أو CRM أو نظام برمجي وتريد معرفة أفضل طريقة لربطه بـ WhatsApp عبر Webhook، يمكنك مناقشة سيناريو التكامل والـ Workflow المطلوب قبل التنفيذ.
مقالات ذات صلة
الكلمات المفتاحية
Webhook, Whats360, WhatsApp Webhook, WhatsApp API, Webhook API, Incoming Webhook, Outgoing Webhook, Webhook Automation, WhatsApp Automation, WhatsApp CRM, WhatsApp Integration, Shopify Webhook, WooCommerce Webhook, n8n Webhook, Make, Zapier, CRM Integration, E-commerce Automation, API Integration, JSON Payload, Webhook Security, Webhook Retry, Webhook Errors, Automation Workflow, WhatsApp Integration, CRM Automation, Event-Driven Workflow
الأسئلة الشائعة التي يجيب عنها المقال
- ما هو Webhook وكيف يعمل مع WhatsApp؟
- ما الفرق بين Incoming وOutgoing Webhook؟
- كيف تربط WhatsApp بالمتجر باستخدام Webhook؟
- كيف تربط Shopify مع Whats360 عبر Webhook؟
- كيف تربط WooCommerce مع Whats360 عبر Webhook؟
- كيف تستخدم Webhook مع n8n؟
- كيف تستخدم Webhook مع Make وZapier؟
- ما البيانات التي تنتقل داخل Webhook Payload؟
- ما الفرق بين Webhook وAPI؟
- كيف تؤمّن Webhook باستخدام Secret؟
- ماذا يحدث إذا فشل Webhook؟
- كيف تتعامل مع Retry في Webhook؟
- كيف تمنع تكرار معالجة Webhook؟
- كيف تربط WhatsApp مع CRM باستخدام Webhook؟
- متى يكون Webhook هو الحل المناسب للأتمتة؟
- كيف تصمم Webhook Architecture قابلة للتوسع؟
- كيف تحول حدثًا من المتجر إلى رسالة WhatsApp تلقائيًا؟
- ما أهم الأخطاء التي تحدث عند تكامل Webhook؟







