
Webhook في Whats360: الدليل الكامل لروابط الاستقبال وإرسال البيانات والربط مع المتاجر والأنظمة وواجهات API
تخيل أن متجرًا إلكترونيًا استقبل طلبًا جديدًا. بدلًا من أن يفتح الموظف لوحة التحكم، يراجع بيانات العميل، ينسخ رقم الهاتف ثم يرسل رسالة تأكيد يدويًا، يمكن أن يتحول الحدث بالكامل إلى Workflow آلي:
طلب جديد → Webhook → Whats360 → رسالة WhatsApp تلقائية
والاتجاه يمكن أن يعمل بالعكس أيضًا:
رسالة WhatsApp → Whats360 → Webhook → CRM أو ERP أو قاعدة بيانات
هنا تظهر أهمية Whats360؛ فالويب هوك Webhook ليس مجرد رابط يتم وضعه في خانة داخل لوحة التحكم، وإنما آلية لتمرير الأحداث والبيانات بين Whats360 والأنظمة الخارجية، بحيث يمكن تحويل الأحداث إلى إجراءات تلقائية.
وهذا يجعل Webhook من أهم أدوات التكامل عندما تريد أن تجعل WhatsApp جزءًا من منظومة العمل اليومية بدل أن يظل قناة منفصلة عن المتجر أو نظام إدارة العملاء أو نظام المحاسبة أو أدوات الأتمتة.
ما هو Webhook في Whats360؟
الـWebhook هو نقطة اتصال تعتمد على طلبات HTTP تسمح بتمرير البيانات تلقائيًا عند وقوع حدث معين. بدل أن ينتظر نظام خارجي أن يسأل Whats360 باستمرار عما إذا حدث شيء جديد، أو بدل أن تقوم أنت بنقل البيانات يدويًا، يتم إرسال الحدث إلى الوجهة المحددة بمجرد وقوعه وفق إعداد التكامل.
في Whats360 يمكن أن يعمل التكامل في اتجاهين رئيسيين:
إرسال البيانات من Whats360
يحدث Event داخل Whats360، ثم يتم إرسال بيانات الحدث إلى رابط خارجي تحدده أنت.
WhatsApp Event → Whats360 → Webhook URL → النظام الخارجي
استقبال البيانات في Whats360
يبدأ الحدث من نظام خارجي، ويرسل هذا النظام البيانات إلى رابط الاستقبال المرتبط بـWhats360، ثم تستخدم البيانات لتشغيل إجراء داخل المنصة.
External System → Webhook URL → Whats360 → WhatsApp Action
هذا النموذج يجعل Webhook مناسبًا جدًا للأنظمة التي تعتمد على الأحداث Event-Driven Architecture، مثل المتاجر الإلكترونية وأنظمة CRM وERP ومنصات الأتمتة والأنظمة البرمجية المخصصة.
Incoming Webhook وOutgoing Webhook: ما الفرق؟
أكثر نقطة تسبب التباسًا عند التعامل مع Webhooks هي تحديد الجهة التي تبدأ إرسال البيانات. لذلك من الأفضل أن تنظر إلى العملية باعتبارها اتجاهًا للبيانات وليس مجرد اسم لإعداد داخل لوحة التحكم.
| العنصر | Incoming Webhook | Outgoing Webhook |
|---|---|---|
| مصدر البيانات | نظام خارجي | Whats360 |
| الوجهة | Whats360 | رابط خارجي |
| مثال | Shopify → Whats360 | Whats360 → CRM |
| الاستخدام | تشغيل إجراء داخل Whats360 | تمرير أحداث WhatsApp |
| اتجاه البيانات | إلى Whats360 | من Whats360 |
إذا كان Shopify هو الذي يرسل بيانات الطلب إلى Whats360، فأنت تتعامل مع Incoming Webhook. أما إذا وصلت رسالة جديدة إلى Whats360 وأردت إرسال تفاصيلها إلى CRM، فأنت تتعامل مع Outgoing Webhook.
قاعدة سهلة للتذكر: إذا كان النظام الخارجي هو الذي يرسل الحدث إلى Whats360، فكر في Incoming. وإذا كان Whats360 هو الذي يرسل الحدث إلى نظام خارجي، فكر في Outgoing.
Webhook أم API؟ ومتى تحتاج إلى كل منهما؟
رغم ارتباط Webhook وAPI ببعضهما، فإنهما ليسا الشيء نفسه. الـWebhook مناسب بالأساس للأحداث Event-driven؛ أي عندما تريد أن يعرف نظام آخر أن شيئًا معينًا حدث.
أما API فيستخدم عادة عندما يحتاج النظام إلى استدعاء عملية أو طلب بيانات بشكل مباشر.
| السيناريو | الأداة الأنسب |
|---|---|
| حدث جديد يجب أن يشغل Workflow | Webhook |
| إرسال بيانات عند وقوع Event | Webhook |
| استدعاء عملية برمجية عند الطلب | API |
| جلب بيانات من نظام آخر | API |
| بناء Workflow بين عدة أنظمة | Webhook + API |
| تكامل برمجي متقدم | API + Webhook |
لذلك في المشاريع الكبيرة لا يكون الاختيار بالضرورة بين Webhook أو API. في كثير من السيناريوهات يمكن استخدام Webhook لاكتشاف الحدث، ثم استخدام API لتنفيذ عمليات إضافية مرتبطة بهذا الحدث.
كيف تنشئ Webhook جديدًا في Whats360؟
تبدأ العملية من قسم Webhooks داخل لوحة التحكم، حيث تظهر الروابط التي تم إنشاؤها مسبقًا، مع إمكانية إنشاء Webhook جديد أو استخدام أحد القوالب الجاهزة.
تحتوي نافذة الإنشاء على مجموعة من الإعدادات التي تحدد طريقة عمل التكامل.
اسم Webhook
استخدم اسمًا واضحًا يصف الوظيفة التي يؤديها Webhook.
على سبيل المثال:
- Shopify New Orders
- CRM Incoming Messages
- WooCommerce Order Notifications
- Odoo WhatsApp Notifications
التسمية الواضحة تبدو تفصيلًا بسيطًا، لكنها تصبح مهمة جدًا عندما يزداد عدد التكاملات داخل المشروع.
نوع العملية
حدد ما إذا كان Webhook سيقوم بإرسال البيانات من Whats360 أو استقبال البيانات من نظام خارجي.
رابط Webhook URL
هذا هو عنوان نقطة الاتصال التي ستتعامل مع البيانات.
في حالة Outgoing تضع رابط النظام الخارجي الذي سيستقبل الأحداث. وفي حالة Incoming تستخدم رابط الاستقبال الذي سيتم توصيله بالنظام الخارجي.
Secret Key
يمكن استخدام مفتاح سري كجزء من آلية التحقق من مصدر الطلبات وفق تصميم التكامل. وتزداد أهمية هذا الإعداد عندما يؤدي وصول البيانات إلى تنفيذ عمليات حساسة مثل تحديث CRM أو إنشاء عملية أو إرسال رسالة.
Event Topics
عند إعداد Webhook لإرسال البيانات، يمكنك تحديد الأحداث التي تريد مراقبتها بدل إرسال جميع الأحداث الممكنة إلى النظام الخارجي.
إعدادات إعادة المحاولة
عند فشل إرسال البيانات يمكن للنظام إعادة المحاولة وفق الإعدادات المحددة. ووفق الإعدادات الموضحة للميزة، يمكن تحديد عدد المحاولات من محاولة واحدة إلى خمس محاولات، مع قيمة افتراضية تبلغ ثلاث محاولات، ويمكن تحديد التأخير بين المحاولات مع قيمة افتراضية قدرها 30 ثانية.
لماذا Retry مهم؟
قد يكون السيرفر الخارجي متوقفًا مؤقتًا أو يحدث Timeout أو مشكلة شبكة. إعادة المحاولة تساعد في التعامل مع الأخطاء المؤقتة، لكن يجب أن يكون النظام المستقبل للبيانات مستعدًا لاحتمالية وصول الحدث مرة أخرى.
أحداث Webhook المتاحة في Whats360
Incoming Message
يتم تشغيل الحدث عند وصول رسالة جديدة. ويمكن استخدامه لإرسال بيانات الرسالة إلى CRM أو قاعدة بيانات أو منصة أتمتة أو نظام ذكاء اصطناعي.
مثال عملي:
رسالة عميل → Whats360 → Webhook → CRM → تسجيل المحادثة
Sent Message
يستخدم عندما تريد معرفة الرسائل التي تم إرسالها وتمرير بياناتها إلى نظام خارجي، مثل نظام إدارة المحادثات أو التقارير.
Failed Delivery
يسمح بتوجيه بيانات الرسائل التي فشل إرسالها إلى نظام خارجي بهدف المراقبة أو اتخاذ إجراء إضافي وفق منطق النظام.
Subscription Expired
يرتبط بأحداث الاشتراك ويمكن استخدامه لتشغيل إجراءات مرتبطة بحالة الاشتراك وفق السيناريو المطلوب.
القاعدة المهمة هنا هي أن اختيار Event يجب أن يكون مرتبطًا بالهدف الحقيقي من التكامل. لا توجد فائدة من إرسال أحداث لا يحتاجها النظام المستقبل.
ما البيانات الموجودة داخل JSON Payload؟
البيانات المتبادلة عبر Webhook تعتمد على JSON في السيناريوهات الموصوفة، وهي صيغة شائعة جدًا في تكاملات الويب لأنها سهلة القراءة والمعالجة بواسطة لغات البرمجة ومنصات الأتمتة.
يمكن أن تتضمن بيانات أحداث WhatsApp حقولًا مثل:
{
"phone": "+201234567890",
"message": "أريد معرفة حالة الطلب",
"sender_name": "Ahmed",
"message_id": "abc123",
"chat_jid": "201234567890@s.whatsapp.net",
"timestamp": "2026-08-20T10:00:00Z",
"media_url": null,
"instance_id": "instance_123"
}
phone
رقم الهاتف المرتبط بالحدث، ويمكن استخدامه لتحديد العميل أو الوجهة المطلوبة للرسالة.
message
نص الرسالة التي تم استقبالها أو البيانات النصية المرتبطة بالحدث.
sender_name
اسم المرسل عندما تكون بيانات الاسم متاحة.
message_id
معرف الرسالة، وهو مفيد جدًا عند تتبع الأحداث أو بناء منطق يمنع معالجة نفس الرسالة أكثر من مرة.
chat_jid
معرف المحادثة الذي يساعد النظام الخارجي على ربط الحدث بالمحادثة المناسبة.
timestamp
الوقت المرتبط بالحدث، ويمكن الاستفادة منه في السجلات والتقارير وترتيب الأحداث.
media_url
رابط الوسائط عندما يكون الحدث مرتبطًا بصورة أو ملف أو محتوى وسائط يمكن تمرير رابطه.
instance_id
معرف الجهاز أو النسخة المرتبطة بالحدث عندما تكون هذه المعلومة متاحة ضمن التكامل.
كيف يتحول Payload إلى Workflow؟
وجود JSON وحده لا يحقق الأتمتة. القيمة الحقيقية تبدأ عندما تستخدم الحقول الموجودة داخله لاتخاذ قرار أو تنفيذ إجراء.
لنفرض أن عميلًا أرسل رسالة:
أريد معرفة حالة طلبي
يمكن أن يكون المسار:
Incoming Message
↓
Whats360
↓
Webhook
↓
JSON Payload
↓
CRM
↓
البحث عن العميل والطلب
↓
Automation
↓
إرسال الرد المناسب عبر WhatsApp
وبهذا يصبح Webhook نقطة اتصال بين الحدث وبين بقية البنية البرمجية.
القوالب الجاهزة في Whats360
بدل أن تضطر إلى بناء كل تكامل من الصفر، توفر المنصة مكتبة قوالب جاهزة للسيناريوهات المتكررة. والفكرة من القالب ليست مجرد توفير رابط، بل تقليل خطوات إعداد التكامل وتوجيه المستخدم إلى بنية مناسبة للمنصة التي يريد ربطها.
قوالب التجارة الإلكترونية
- Shopify
- WooCommerce
- Salla
- Zid
- Easy Orders / YouCan
السيناريو المشترك في هذه التكاملات هو:
Order Event → Webhook → Whats360 → WhatsApp Notification
ويمكن أن تكون الرسالة مرتبطة بتأكيد الطلب أو تحديث حالته أو إشعار العميل بإجراء متعلق بالطلب وفق إعداد التكامل.
قوالب ERP وCRM
- Odoo
- Zoho CRM
- HubSpot
في هذه الحالة يمكن أن يعمل التكامل في الاتجاهين، مثل:
WhatsApp Message → Whats360 → Webhook → CRM
أو:
Invoice Created → Webhook → Whats360 → WhatsApp
قوالب الأتمتة
- n8n
- Make
- Zapier
وتسمح هذه الأدوات بتحويل Webhook إلى Trigger داخل Workflow أكبر، ثم تمرير البيانات إلى خدمات أخرى أو تطبيق شروط وعمليات متعددة.
قوالب التسويق
يمكن استخدام سيناريوهات مثل Meta Lead Ads لبدء تواصل سريع مع العميل المحتمل بعد تسجيل بياناته في نموذج الإعلان.
قوالب المدفوعات
يمكن ربط أحداث نجاح الدفع بإرسال إيصال أو رسالة تأكيد عبر WhatsApp، عندما يكون التكامل مصممًا لاستقبال هذه البيانات.
قوالب الوسائط والملفات
يمكن توجيه روابط الوسائط والملفات الواردة من WhatsApp إلى وجهة مخصصة مع بيانات المرسل حسب السيناريو.
حوّل التكامل من فكرة إلى Workflow عملي
إذا كان مشروعك يحتاج إلى ربط WhatsApp بمتجر أو CRM أو نظام داخلي، فإن Whats360 يوفر طبقة عملية لإدارة Webhooks والتكاملات بدل نقل البيانات يدويًا بين الأنظمة.
- ربط الأحداث بالأنظمة الخارجية.
- استقبال بيانات المتاجر والأنظمة.
- إرسال أحداث WhatsApp إلى خدمات أخرى.
ربط Shopify مع Whats360
يعد Shopify من أوضح الأمثلة على قيمة Incoming Webhook، لأن المتجر يعرف متى يحدث حدث معين مثل إنشاء طلب أو دفع طلب، ويمكنه إرسال بيانات الحدث إلى رابط الاستقبال.
المسار الأساسي هو:
Shopify → Webhook → Whats360 → WhatsApp
تبدأ بإنشاء Webhook في Whats360 من نوع استقبال البيانات، ثم استخدام قالب Shopify عندما يكون مناسبًا للسيناريو، وبعد ذلك يتم نسخ رابط الاستقبال ووضعه في إعدادات Webhooks داخل Shopify.
من الأحداث الشائعة:
orders/createorders/updatedorders/paidcustomers/create
مثال على Payload لطلب:
{
"id": 820982911946154508,
"order_number": 1234,
"total_price": "199.00",
"customer": {
"first_name": "Ahmed",
"phone": "+201234567890"
}
}
يمكن استخراج رقم الطلب وقيمة الطلب واسم العميل ورقم الهاتف ثم استخدام هذه البيانات في رسالة WhatsApp.
مثلًا:
أهلًا Ahmed، تم استلام طلبك رقم 1234 بقيمة 199 جنيه.
وهكذا يتحول حدث داخل المتجر إلى رسالة آلية دون تدخل الموظف في كل طلب.
التحقق من مصدر Shopify
يمكن أن تعتمد تكاملات Shopify على آليات للتحقق من مصدر Webhook، ومنها HMAC في السيناريوهات المناسبة. لذلك يجب أن تكون آلية التحقق المستخدمة متوافقة مع طريقة إرسال Shopify للطلب وطريقة استقبال النظام له.
كما يجب الانتباه إلى أن الأنظمة الخارجية قد تفرض مهلة محددة للاستجابة. لذلك لا يكفي أن يصل الطلب إلى السيرفر؛ يجب أن يكون Endpoint مصممًا للتعامل مع الطلب والاستجابة بالطريقة المتوقعة.
ربط WooCommerce مع Whats360
في WooCommerce يكون المسار مشابهًا:
WooCommerce → Delivery URL → Whats360 → WhatsApp
بعد إنشاء Webhook في Whats360، يتم إدخال رابط التسليم داخل إعدادات Webhooks في WooCommerce، ثم تحديد الحدث المطلوب.
من الأحداث المتاحة في السيناريو الموصوف:
- Order created
- Order updated
- Customer created
- Product updated
مثال Payload:
{
"id": 727,
"status": "processing",
"total": "150.00",
"billing": {
"first_name": "Ahmed",
"phone": "+201234567890"
}
}
يمكن استخدام بيانات الطلب لإنشاء رسالة تأكيد أو إشعار للعميل وفق الـWorkflow الذي تم تصميمه.
تشخيص مشاكل WooCommerce
عندما لا تصل البيانات كما هو متوقع، من المفيد مراجعة سجلات التسليم داخل WooCommerce، ثم التأكد من أن رابط التسليم صحيح وأن Endpoint يستقبل الطلبات ويرد بطريقة ناجحة.
كما يجب الانتباه إلى أن WooCommerce قد يتعامل مع حالات الفشل المتكرر بطريقة تؤثر على حالة Webhook، لذلك لا ينبغي تجاهل سجلات التسليم عند تشخيص المشكلة.
ربط Odoo والـCRM مع Whats360
أنظمة ERP وCRM من أكثر البيئات التي تستفيد من Webhooks لأن البيانات فيها لا تتعلق برسالة فقط، بل بدورة تشغيل كاملة.
يمكن مثلًا بناء مسار من WhatsApp إلى Odoo:
Incoming Message → Whats360 → Webhook → Odoo
ثم تسجيل الرسالة ضمن ملف العميل أو تشغيل إجراء داخل النظام.
وفي الاتجاه العكسي يمكن أن يحدث:
Odoo → Event → Webhook → Whats360 → WhatsApp
مثل أحداث تأكيد الطلب أو إصدار فاتورة أو تحديث حالة.
نفس الفكرة يمكن تطبيقها مع CRM، حيث تصبح الرسائل جزءًا من سجل العميل بدل بقائها محصورة داخل تطبيق WhatsApp.
ربط Whats360 مع n8n وMake وZapier
تزداد قوة Webhook عندما يتم استخدامه كبداية Workflow في منصة Automation.
في n8n مثلًا يمكن أن يكون المسار:
Whats360 Webhook
↓
Webhook Trigger
↓
قراءة JSON
↓
Condition / Switch
↓
CRM / Google Sheets / Email / Database
↓
إجراء نهائي
مثلًا، إذا وصلت رسالة من عميل جديد، يمكن أن يقوم Workflow بالبحث عن الرقم في CRM. وإذا لم يكن موجودًا، يتم إنشاء سجل جديد. وإذا كان موجودًا، يتم تحديث آخر نشاط.
يمكن بناء الفكرة نفسها باستخدام Make أو Zapier، مع اختلاف طريقة إعداد الـWorkflow حسب المنصة.
بناء Webhook مخصص
القوالب الجاهزة تختصر الوقت، لكنها ليست مناسبة لكل مشروع. عندما يكون النظام داخليًا أو عندما تحتاج إلى Payload خاص أو منطق عمل مختلف، يصبح Webhook المخصص هو الخيار الطبيعي.
في اتجاه الاستقبال يمكن أن يكون لديك Endpoint يستقبل بيانات مثل:
POST /api/instances/{id}/webhooks/{webhook_id}/incoming
Content-Type: application/json
ثم يتم إرسال JSON مثل:
{
"phone": "+201234567890",
"message": "Your order #1234 is confirmed!",
"name": "Ahmed"
}
وعند نجاح المعالجة يمكن أن تكون الاستجابة وفق البنية المتوقعة في التكامل:
{
"status": "success",
"message": "Webhook received successfully"
}
المطور هنا يحتاج إلى تحديد مجموعة من الأمور قبل كتابة الكود:
- عنوان Endpoint.
- HTTP Method.
- صيغة البيانات.
- الحقول المطلوبة.
- طريقة Authentication.
- طريقة التعامل مع الأخطاء.
- الاستجابة المطلوبة.
- منطق منع التكرار.
ولا ينبغي افتراض أن كل نظام خارجي يستخدم نفس أسماء الحقول أو نفس طريقة التوثيق.
إعدادات الأمان والتحقق من البيانات
كلما كان Webhook قادرًا على تشغيل إجراءات حقيقية، أصبحت حماية نقطة الاتصال أكثر أهمية.
يمكن أن تشمل الحماية، بحسب التكامل، استخدام Secret Key أو آلية تحقق من مصدر الطلبات أو ترويسات مخصصة للتوثيق.
كما يجب أن يتعامل النظام المستقبل مع البيانات باعتبارها مدخل ات تحتاج إلى التحقق، وليس باعتبارها بيانات موثوقة لمجرد وصولها إلى Endpoint.
نقطة مهمة للمطور
وصول الطلب إلى Endpoint لا يعني أن البيانات صحيحة أو أن العملية يجب أن تنفذ مباشرة. يجب أن تتوافق عملية التحقق مع تصميم التكامل وطبيعة البيانات والإجراء الذي سيتم تشغيله.
Retry Logic: ماذا يحدث عند فشل الاتصال؟
لا توجد بنية شبكية تضمن نجاح كل طلب من المحاولة الأولى. قد يتوقف السيرفر الخارجي، أو يحدث Timeout، أو تنقطع الشبكة، أو يكون النظام المستقبل مشغولًا.
لذلك يوفر Webhook إعدادات لإعادة المحاولة عند فشل إرسال البيانات.
وفق الإعدادات الموضحة للميزة، يمكن تحديد عدد المحاولات من 1 إلى 5، والقيمة الافتراضية 3 محاولات، مع تأخير افتراضي يبلغ 30 ثانية بين المحاولات.
يمكن تصور العملية هكذا:
Attempt 1 → فشل → انتظار → Attempt 2 → فشل → انتظار → Attempt 3
لكن Retry يطرح سؤالًا هندسيًا مهمًا: ماذا لو كانت المحاولة الأولى قد وصلت بالفعل إلى النظام الخارجي، لكن الاستجابة لم تصل إلى Whats360؟
هنا يمكن أن تصل المحاولة الثانية إلى النظام نفسه، وبالتالي يجب أن يكون النظام المستقبل مصممًا بحيث لا يؤدي ذلك إلى تنفيذ العملية مرتين.
Idempotency: كيف تمنع تكرار معالجة نفس الحدث؟
Idempotency هو مفهوم مهم في تكاملات Webhook، ويعني أن معالجة نفس الحدث أكثر من مرة لا تؤدي إلى نتائج مكررة غير مرغوبة.
إذا كان لديك طلب رقمه أو معرفه:
820982911546154508
يمكن للنظام المستقبل تسجيل هذا المعرف بعد نجاح المعالجة.
إذا وصل نفس الحدث مرة أخرى، يمكن مقارنة المعرف بالأحداث التي تمت معالجتها:
Event ID: 820982911546154508
Status: Processed
وعند وصوله مرة أخرى:
Event already processed
وبالتالي لا يتم إنشاء طلب جديد أو إرسال نفس الإجراء مرة ثانية.
يمكن استخدام معرف الحدث أو معرف الرسالة أو معرف العملية المناسب لطبيعة التكامل.
رؤية تقنية
أفضل تصميم للـWebhook لا يتعامل مع الإرسال باعتباره عملية مضمونة من مرة واحدة، بل يفترض إمكانية إعادة المحاولة ويصمم من البداية مع Logs وEvent IDs ومنطق يمنع تكرار المعالجة.
كيف تعرف أن Webhook لا يعمل؟
عندما تقول إن Webhook لا يعمل، فهناك نقاط كثيرة يمكن أن تكون سبب المشكلة. لذلك من الأفضل التعامل معها كسلسلة تشخيص.
فحص رابط Webhook
ابدأ بالتأكد من أن الرابط صحيح وأنه يشير إلى Endpoint المطلوب وليس إلى مسار مختلف.
فحص توفر السيرفر
إذا كان السيرفر المستقبل متوقفًا أو غير قابل للوصول من الإنترنت، فلن يستطيع النظام الخارجي تسليم البيانات إليه.
فحص HTTPS
يجب التأكد من أن الاتصال الآمن يعمل بشكل صحيح عندما يكون التكامل يعتمد على HTTPS.
فحص HTTP Method
إذا كان النظام ينتظر POST، فلا يمكن التعامل معه كأنه Endpoint عادي لاستقبال GET.
فحص Content-Type
إذا كان التكامل يعتمد على JSON، يجب أن تكون البيانات المرسلة متوافقة مع صيغة الطلب المتوقعة.
فحص Payload
قد يصل الطلب بنجاح ولكن تفشل المعالجة لأن النظام يبحث عن حقل باسم مختلف أو مسار JSON مختلف.
فحص Secret أو Authentication
إذا كان التكامل يستخدم مفتاحًا سريًا أو ترويسة توثيق، يجب التأكد من تطابق الإعدادات بين الطرفين.
فحص Response
الوصول إلى السيرفر لا يعني أن التكامل يعتبر ناجحًا. يجب أن تكون الاستجابة متوافقة مع ما يتوقعه النظام المرسل.
مراجعة Logs
السجلات تساعدك على معرفة ما إذا كان الطلب وصل أصلًا، وماذا كان Payload، وما هي الاستجابة، وهل حدثت محاولات إعادة إرسال.
مسار تشخيص سريع
URL صحيح؟ → السيرفر متاح؟ → HTTPS يعمل؟ → POST صحيح؟ → JSON صحيح؟ → Authentication صحيح؟ → Response ناجح؟ → Logs وRetry
أمثلة عملية لأتمتة Webhooks
تأكيد طلب متجر إلكتروني
عند إنشاء طلب:
Order Created → Webhook → Whats360 → WhatsApp Confirmation
هذا السيناريو مناسب للمتاجر التي تريد تقليل التدخل اليدوي في تأكيد الطلبات.
إشعار الدفع
عند نجاح عملية الدفع:
Payment Success → Webhook → Whats360 → Payment Confirmation
يمكن استخدام البيانات القادمة من بوابة الدفع لبناء رسالة تأكيد للعميل وفق التكامل.
Meta Lead Ads
عند تسجيل Lead من إعلان:
New Lead → Webhook → Whats360 → WhatsApp Follow-up
الفكرة هنا تقليل الوقت بين تسجيل العميل المحتمل وبدء التواصل معه.
مزامنة CRM
عند وصول رسالة:
Incoming Message → Whats360 → Webhook → CRM
يمكن تسجيل الرسالة وربطها بملف العميل.
Odoo
عند إصدار فاتورة:
Invoice Created → Webhook → Whats360 → WhatsApp
وهكذا يصبح WhatsApp جزءًا من دورة العمل داخل نظام ERP.
توجيه الوسائط
عند وصول ملف أو صورة:
Incoming Media → Webhook → External System
يمكن تمرير رابط الوسائط وبيانات المرسل إلى الوجهة المخصصة حسب تصميم التكامل.
كيف تختار تصميم Webhook المناسب لمشروعك؟
لا يحتاج كل مشروع إلى نفس درجة التعقيد.
متجر صغير
ابدأ بقالب جاهز عندما يكون القالب يغطي السيناريو المطلوب.
Template → WhatsApp
متجر متوسط
يمكن إضافة منصة Automation بين المتجر وWhatsApp.
Template → Automation → WhatsApp
شركة لديها CRM
يصبح التكامل ثنائي الاتجاه أكثر أهمية:
Whats360 ↔ Webhook ↔ CRM
فريق تطوير
يمكن بناء تكامل مخصص باستخدام Webhook وAPI والمنطق البرمجي الخاص بالمشروع.
Webhook + API + Custom Logic
نظام Enterprise
كلما زاد حجم وتعقيد النظام، قد تحتاج البنية إلى طبقات إضافية:
Whats360 → Webhook → Queue → Processing → Database → CRM / ERP
مع إضافة:
- Logs
- Monitoring
- Retry
- Idempotency
- Authentication
متى لا يكون Webhook وحده كافيًا؟
Webhook ممتاز لإخبار نظام آخر بأن حدثًا وقع، لكنه لا يمثل بالضرورة كل طبقات التكامل.
قد تحتاج إلى API عندما تريد تنفيذ عملية إضافية بعد وصول الحدث.
وقد تحتاج إلى Middleware عندما تكون هناك حاجة إلى تحويل البيانات أو تطبيق Business Logic.
وقد تحتاج إلى Database لتخزين الأحداث وسجلات المعالجة.
وقد تحتاج إلى Queue عندما يكون حجم الأحداث كبيرًا وتريد فصل استقبال الطلب عن المعالجة.
وقد تحتاج إلى Monitoring لمراقبة حالة التكامل.
وقد تحتاج إلى Retry وIdempotency لضمان التعامل الصحيح مع الأخطاء وإعادة الإرسال.
لذلك يمكن النظر إلى Webhook باعتباره جزءًا من Architecture أكبر، وليس نظام التكامل بالكامل.
البنية البسيطة مقابل البنية المتقدمة
تكامل بسيط: نظام خارجي → Webhook → Whats360
تكامل متوسط: نظام خارجي → Webhook → Automation → Whats360
تكامل متقدم: Whats360 ↔ Webhook/API ↔ Middleware ↔ Database ↔ CRM/ERP
Webhook كطبقة أتمتة بين WhatsApp وباقي منظومة العمل
عند النظر إلى Webhook من منظور معماري، تظهر الصورة بشكل أوضح.
┌──────────────┐
│ Shopify │
└──────┬───────┘
│
┌──────▼───────┐
│ Webhook │
└──────┬───────┘
│
┌──────────────┐ ┌────▼─────┐ ┌──────────────┐
│ CRM │◄──┤ Whats360 ├──►│ Odoo │
└──────────────┘ └────┬─────┘ └──────────────┘
│
┌──────▼───────┐
│ Automation │
│ n8n / Make │
└──────────────┘
في هذه البنية يصبح Whats360 نقطة اتصال بين قناة WhatsApp وبين بقية الأنظمة.
وهنا تظهر قيمة Webhooks في المشاريع التي تعتمد على الأتمتة: بدل نقل البيانات يدويًا بين الأنظمة، تنتقل الأحداث تلقائيًا وفق قواعد محددة.
كيف تفكر في Webhook بطريقة صحيحة؟
أفضل طريقة لفهم Webhook ليست حفظ أسماء الحقول أو نسخ رابط داخل لوحة التحكم، وإنما النظر إلى التكامل باعتباره سلسلة مترابطة:
Event
حدث شيء داخل Whats360 أو النظام الخارجي.
↓
Webhook
يتم إرسال البيانات إلى الوجهة المحددة.
↓
Payload
تصل البيانات في بنية يمكن للنظام قراءتها.
↓
Processing
يتم التحقق من البيانات وتطبيق منطق العمل.
↓
Action
يتم تنفيذ الإجراء المطلوب.
↓
Response
يعيد النظام المستقبل الاستجابة المتوقعة.
↓
Retry / Monitoring
يتم التعامل مع الأخطاء ومراقبة التكامل.
هذا النموذج يمكن تطبيقه على متجر أو CRM أو ERP أو منصة Automation أو نظام برمجي داخلي.
الأسئلة الشائعة حول Webhook في Whats360
ما هو Webhook في Whats360؟
هو آلية لتمرير البيانات تلقائيًا بين Whats360 ونظام خارجي عند وقوع أحداث محددة، سواء بإرسال أحداث WhatsApp إلى رابط خارجي أو استقبال بيانات من نظام خارجي وتشغيل إجراء داخل Whats360.
ما الفرق بين Incoming وOutgoing Webhook؟
Incoming يعني أن النظام الخارجي يرسل البيانات إلى Whats360، بينما Outgoing يعني أن Whats360 يرسل بيانات الأحداث إلى رابط خارجي.
هل Webhook هو نفسه API؟
لا. Webhook يعتمد على وقوع الأحداث ودفع البيانات إلى وجهة محددة، بينما API يستخدم لاستدعاء عمليات أو الحصول على بيانات عند الطلب. ويمكن استخدام الاثنين معًا في نفس التكامل.
هل يمكن ربط Shopify بـWhats360؟
نعم، يمكن بناء سيناريو يعتمد على Webhook لاستقبال أحداث Shopify مثل إنشاء الطلب أو تحديثه أو تسجيل الدفع ثم تحويل البيانات إلى إجراء داخل Whats360.
هل يمكن ربط WooCommerce بـWhats360؟
نعم، ويمكن استخدام أحداث الطلبات والعملاء والمنتجات حسب السيناريو المطلوب.
هل يمكن استخدام n8n مع Webhook؟
نعم. يمكن استخدام Webhook كـTrigger داخل Workflow في n8n، ثم تمرير البيانات إلى خطوات أخرى مثل CRM أو Google Sheets أو البريد الإلكتروني أو قواعد البيانات.
ما فائدة Secret Key؟
يمكن استخدامه كجزء من آلية التحقق من مصدر الطلبات وفق تصميم التكامل، ويساعد في عدم التعامل مع الطلبات غير الموثوقة.
ماذا يحدث عند فشل Webhook؟
يمكن استخدام إعدادات Retry لإعادة المحاولة وفق العدد والتأخير المحددين. ويجب أن يكون النظام المستقبل للبيانات مصممًا للتعامل مع احتمال إعادة إرسال نفس الحدث.
كيف أمنع معالجة نفس الحدث مرتين؟
يمكن استخدام معرف فريد للحدث مثل id أو message_id وتسجيل الأحداث التي تمت معالجتها، بحيث يتم تجاهل الحدث إذا وصل مرة أخرى بعد نجاح المعالجة.
هل يمكن ربط CRM مع Whats360؟
نعم. يمكن إرسال أحداث WhatsApp من Whats360 إلى CRM لتسجيل الرسائل أو تشغيل إجراءات أخرى، كما يمكن بناء التكامل في الاتجاه العكسي حسب احتياجات النظام.
هل يمكن إرسال الصور والوسائط عبر Webhook؟
يمكن تمرير معلومات الوسائط عندما تكون متاحة ضمن بيانات الحدث، مثل media_url، ثم يقوم النظام المستقبل بمعالجة الرابط وفق السيناريو المطلوب.
متى أحتاج إلى Middleware؟
تحتاج إليه عندما يكون التكامل أكثر تعقيدًا من مجرد تمرير البيانات، مثل الحاجة إلى تحويل Payload أو تطبيق Business Logic أو ربط عدة أنظمة أو إدارة Queue أو تنفيذ عمليات مراقبة ومعالجة متقدمة.
هل تحتاج إلى تنفيذ تكامل WhatsApp مع نظامك؟
إذا كان لديك متجر أو CRM أو ERP أو نظام برمجي وتريد معرفة أفضل طريقة لربطه مع WhatsApp، يمكن البدء بتحديد الحدث ومصدر البيانات والنتيجة المطلوبة، ثم اختيار Webhook أو API أو الجمع بينهما.
- تحديد مصدر الحدث.
- تحديد اتجاه البيانات.
- اختيار طريقة التكامل.
- تحديد البيانات المطلوبة.
مقالات ذات صلة
- دليل Whats360 API وWebhook والتكامل البرمجي
- أتمتة WhatsApp وربطه بأنظمة CRM
- دليل تكامل WhatsApp API مع الأنظمة والمتاجر
- ربط Webhook مع Shopify وWooCommerce
- أتمتة WhatsApp باستخدام n8n
الخلاصة: Webhook هو حلقة الوصل بين WhatsApp وباقي أنظمة مشروعك
قوة Webhook في Whats360 لا تكمن في إنشاء رابط واستقبال JSON فقط، وإنما في تحويل الأحداث إلى Workflows قابلة للأتمتة.
عندما يتم إنشاء طلب في متجر، يمكن أن يتحول الحدث إلى رسالة WhatsApp. وعندما تصل رسالة من عميل، يمكن أن تنتقل إلى CRM. وعندما تصدر فاتورة من نظام ERP، يمكن أن يصل إشعار تلقائي إلى العميل. وعندما يأتي Lead من إعلان، يمكن أن يبدأ Workflow للتواصل والمتابعة.
الصورة الأساسية التي يجب أن يحتفظ بها المطور هي:
Event → Webhook → Payload → Processing → Action → Response → Retry / Monitoring
عندما يكون التكامل بسيطًا، يمكن البدء من القوالب الجاهزة. وعندما تكون الحاجة أكثر تعقيدًا، يمكن الجمع بين Webhooks وAPI وAutomation وMiddleware وDatabase وMonitoring لبناء بنية تكامل قابلة للتوسع.
لذلك فإن السؤال الصحيح ليس فقط: كيف أنشئ Webhook؟
السؤال الأهم هو:
ما الحدث الذي أريد مراقبته، وأين يجب أن تذهب بياناته، وما الإجراء الذي يجب أن يحدث بعد ذلك؟
من هذه النقطة يبدأ تصميم التكامل الصحيح، سواء كنت تربط Whats360 بمتجر إلكتروني، أو CRM، أو Odoo، أو n8n، أو Make، أو Zapier، أو نظام برمجي خاص بك.
ابدأ بتحديد التكامل الذي تحتاجه
حدد النظام الذي تريد ربطه، والحدث الذي تريد مراقبته، والإجراء الذي تريد تنفيذه، ثم اختر البنية المناسبة باستخدام Webhook أو API أو كليهما.







