Webhooks على Omdaa: ربط واتساب بـ CRM وn8n في الوقت الحقيقي

Webhooks هي الجسر بين واتساب وأنظمتك: عند رسالة واردة أو تحديث حالة أو حدث جلسة، ترسل Omdaa POST JSON إلى URLك. الإعداد من /dashboard/webhooks أو على مستوى الجلسة.
ماذا تستقبل؟
أحداث شائعة: رسالة واردة (نص/وسائط)، تحديثات ack/delivery إن توفرت، تغيّر حالة الجلسة، وأخطاء قابلة للتسجيل. صفِّ الأحداث حتى لا تغرق endpointك بضوضاء غير لازمة.
عقد التكامل الصحيح
① HTTPS فقط · ② أجب بـ 2xx بسرعة ثم عالج async · ③ خزّن messageId كـ idempotency key لتجنب معالجة مزدوجة عند إعادة المحاولة · ④ سجّل payload في staging أولاً · ⑤ استخدم Test delivery من اللوحة قبل الإنتاج.
لـ n8n: Webhook node كـ trigger ثم فروع (إنشاء تذكرة، رد آلي، تصعيد). لـ CRM: أنشئ lead/ticket من رقم المرسل ونص الرسالة. لـ ERP: حدّث حالة الطلب عند كلمات مفتاحية.
أمان
تحقق من secret/header إن مفعّل، قيّد IP إن أمكن، ولا تُظهر بيانات حساسة في logs العامة. Replay مفيد للتشخيص لكن راقب من يملك صلاحية إعادة الإرسال.
أعطال شائعة
Timeouts → endpoint بطيء. 401/403 على جانبك → auth middleware. جلسات متعددة → تأكد أن الـ URL صحيح لكل رقم. راجع أيضاً مقال Sessions إذا انقطعت الأحداث فجأة.
تصميم عقد JSON مستقر
ثبّت نسخة لحقول أساسية: معرف الرسالة، رقم المرسل، نوع المحتوى، الطابع الزمني، ومعرف الجلسة. حتى لو أضافت Omdaa حقولاً لاحقاً، كودك يجب أن يتجاهل المجهول بأمان (forward-compatible). ارفض الطلبات بدون HTTPS في الإنتاج.
ابنِ جدول dead-letter للفشل بعد N محاولات مع تنبيه Slack/Pager. بدون DLQ تختفي الشكاوى «العميل راسل وما حدش شاف».
أنماط توجيه
Router بسيط حسب الكلمة الأولى، أو تصنيف ML لاحقاً. مسار VIP مباشر لمشرف بشري. مسار FAQ لبوت. مسار مدفوعات لتذكرة مالية فقط. كل مسار يكتب correlation id واحد يظهر في CRM وlogs Omdaa عند التشخيص.
اختبارات قبل القصّ
استخدم Test delivery، ثم أرسل من رقم حقيقي، ثم حاكي إعادة الإرسال المزدوجة وتأكد أن التذكرة لا تتكرر. أضف مراقبة uptime على endpointك — Webhook Omdaa لا يغني عن صحة خادمك.
مراقبة جودة الاستقبال
لوّن لوحة داخلية: آخر حدث لكل جلسة، متوسط التأخير، نسبة 5xx عندك. إن صمتت جلسة 15 دقيقة رغم حركة متوقعة — افحص Sessions أولاً ثم endpoint. هذه الثلاثية تمنع جدالات «الخطأ من مين؟».
أسئلة شائعة
هل Webhook يعمل بدون جلسة؟
الأحداث مرتبطة بجلسات نشطة؛ الجلسة المتقطعة توقف تدفق الرسائل.
هل يمكن أكثر من URL؟
حسب إعداد اللوحة؛ أو فرّع من n8n إلى عدة أنظمة.
ماذا لو endpoint سقط؟
ستفشل التسليمات — راقب وأعد replay عند الحاجة بعد الإصلاح.
بديل بدون كود؟
n8n من /dashboard/n8n مع webhook trigger.
ابدأ مجاناً: إنشاء حساب · لوحة التحكم · الوثائق