بحاجة إلى مساعدة: مشغل WhatsApp لا يعمل عند استقبال رسالة WA لكنه يعمل عند الاختبار عبر رسالة Meta webhook

مرحبا جميعاً، أحاول تشغيل رسالة واتساب من تطبيق واتساب الخاص بي - عندما أرسل الرسالة من رقم واتساب الشخصي الخاص بي إلى رقم الاختبار، لا يتم تشغيل تدفق n8n

ولكن عندما أضغط على زر الاختبار في سير عمل الرسالة على صفحة Meta Webhook، يتم تشغيل سير العمل - لا أستطيع العثور على الاختلاف بين استدعاء API عند الضغط على زر اختبار Meta Webhook ورسالة واستدعاء API عند إرسال رسالة إلى رقم الاختبار - من فضلك ساعدني

ملاحظة - تم تكوين Webhook callback URLs وكل شيء بشكل صحيح لأنه عند الضغط على الزر أدناه يعمل سير عمل n8n بشكل جيد، ولكن عندما أرسل رسالة إلى رقم الاختبار لا يستجيب

زر اختبار webhook في Meta والرسائل الفعلية على WhatsApp تمر عبر مسارات مختلفة — هذا هو السبب النموذجي لهذا السلوك المختلف. إليك بعض الأشياء التي يجب التحقق منها:

1. اشتراك حقل Webhook
في Meta for Developers → WhatsApp → Configuration، تأكد من تحديد حقل messages ضمن Webhook Fields. بدون الاشتراك فيه، لن تصل الرسائل الفعلية إلى webhook حتى لو نجح زر الاختبار (فهو يتجاوز مرشح الاشتراك).

2. مطابقة معرف رقم الهاتف
في عقدة n8n WhatsApp Trigger الخاصة بك، تحقق من أن معرف رقم الهاتف يطابق المعرف المرتبط برقم الاختبار الخاص بك. عدم التطابق يسبب إسقاط صامت للرسائل الفعلية.

3. التطبيق في وضع التطوير مقابل الوضع المباشر
إذا كان تطبيق Meta الخاص بك لا يزال في وضع التطوير، فإن الأرقام المضافة فقط كأرقام اختبار في Meta Business Suite يمكنها تفعيل webhook برسائل فعلية. اذهب إلى App Settings → Basic وتحقق من وضع تطبيقك.

4. فحص سريع للتحقق
في سير العمل n8n الخاص بك، انقر على “Listen for test event” بينما سير العمل نشط، ثم أرسل رسالة WhatsApp فعلية. إذا لم يصل شيء على الإطلاق إلى سجل تنفيذ n8n، فالمشكلة من جانب Meta (اشتراك أو وضع التطبيق). إذا وصل لكن العقدة لم تُفعّل، فهي مشكلة إعداد العقدة.

نقاط رائعة أعلاه! فقط لإضافة مزيدين من المزالق الشائعة الخاصة بـ n8n التي تسبب هذا السيناريو بالذات “الاختبار يعمل، الرسالة الحقيقية تفشل”:

1. عدم تطابق عنوان URL للاختبار مقابل الإنتاج في n8n، يحتوي webhook على عنواني URL مختلفين: واحد للاختبار (.../webhook-test/...) وواحد للإنتاج (.../webhook/...). تحقق من عنوان URL الدقيق الذي لصقته في Meta Developer Console.

  • إذا لصقت عنوان URL webhook-test، فإن الرسائل الحقيقية سيتم تسجيلها فقط عندما تكون قد نقرت بنشاط على “الاستماع لحدث الاختبار” في واجهة مستخدم n8n. بمجرد أن تكون سير العمل “نشطًا” فقط، سيتم تجاهل الرسائل الحقيقية.

  • إذا لصقت عنوان URL webhook (الإنتاج)، فإن النقر على “الاستماع لحدث الاختبار” سيتجاهل تمامًا الرسائل الحقيقية الواردة. تأكد من أن عنوان URL في Meta يطابق الحالة الدقيقة التي تحاول اختبارها.

2. سجلات تسليم Meta Webhook انتقل إلى لوحة تحكم تطبيقك Meta → Webhooks. مرر للأسفل للعثور على قسم “الأخطاء الأخيرة” (أو سجلات تسليم Webhook). إذا كانت Meta تُرسل الرسالة الحقيقية بنجاح لكن مثيل n8n الخاص بك يُرجع خطأ 500، أو ينتهي به الوقت، أو يرفض بنية الحمل الأساسي، ستقيد Meta رمز الاستجابة HTTP الدقيق هناك. وهذا يخبرك على الفور ما إذا كانت المشكلة هي عدم إرسال Meta، أو رفض n8n للاتصال.

مرحبًا، شكرًا لك على تخصيص الوقت والرد على الاستفسار - تحققت مرة أخرى من الخيارات التي طلبتها، وتبدو أنها كلها موجودة في مكانها الصحيح

  1. أعتقد أن معرّف رقم الهاتف مكوّن في مشغل إرسال الرسالة - كما هو الحال في عقدة مشغل رسالة WhatsApp، أرى فقط الخيار لتكوين بيانات الاعتماد، وحيث وضعت معرّف العميل = معرّف التطبيق، معرّف السري = سر التطبيق - صححني إن كنت مخطئًا
  2. التطبيق في وضع التطوير، وأنقر على تنفيذ سير العمل وأرسل الرسالة، ومع ذلك لا تُفعّل العقدة
  3. يبدو أن هناك مشكلة في meta لأنني لا أتلقى أي شيء في n8n

@n8n_Sensei مرحباً، شكراً لك على تخصيصك الوقت والرد على الاستفسار.

  1. لقد قمت بلصق عناوين URL للاختبار، وحاولت إرسال رسالة بينما سير العمل يستمع للمُشغل، لكنني لا أرى أي شيء في n8n

  2. هنا في سجلات webhook، يمكنني أن أرى أن الرسالة تم تسجيلها، لكنها لم تُمرر إلى عقدة n8n الخاصة بي

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

البريد الإلكتروني: lautaro.automation@gmail.com

مرحبا @aditya_bansod
رسالة تظهر في سجل أحداث الويب هوك في Meta تعني فقط أن Meta استقبلتها. يتم التسليم إلى أي تطبيق اشترك فيه حسابك التجاري على WhatsApp، وفي التطبيقات المنشأة حديثًا، غالبًا ما يكون تطبيق Meta الخاص به “WA DevX Webhook Events 1P App” بدلاً من تطبيقك، لذا يصل اختبار اللوحة بينما تذهب الرسائل الفعلية إلى مكان آخر. افتح Meta’s Graph API Explorer وعيّن نقطة النهاية إلى معرف WABA الخاص بك (WhatsApp > API Setup):

<WABA_ID>/subscribed_apps

أرسلها كـ GET وابحث عن اسم التطبيق الذي يعود. إذا لم يكن تطبيقك، غيّر الطريقة إلى POST وأرسل، ثم GET مرة أخرى للتأكد من أن تطبيقك مدرج الآن. تبدأ الرسائل بالوصول بعد ذلك مباشرة.
انظر إلى هذا:

@Anshul_Namdev إصلاح subscribed_apps مفيد جداً هنا. كما ذكرت من قبل، إنشاء تطبيق جديد لا ينقل اشتراك WABA من تطبيق Meta الافتراضي للمطورين تلقائياً. تشغيل GET كخطوة أولى للتأكد من ذلك، ثم تشغيل أمر POST لنقل التطبيق سيحل المشكلة ويجب أن يبدأ العمل فوراً بعد ذلك.

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

مرحبا، أواجه نفس المشكلة التي تواجهك. هل تمكنت من حل المشكلة؟

تم إجراء جميع الاشتراكات الخاصة بي بشكل صحيح باستخدام معرّفات WABA_ID الصحيحة. تطبيقي على Meta منشور وسير العمل الخاص بي على n8n (cloud) منشور أيضًا بشكل صحيح. رابط callback_url على Meta هو بالفعل عنوان URL الخاص بالإنتاج.

  1. عندما أفتح سير العمل في محرر n8n وأنقر على “Execute workflow” قبل إرسال رسالة WhatsApp إلى الرقم، تصل الطلب بشكل صحيح وينشئ سير العمل بشكل عادي.
  2. إذا لم أنقر على “Execute workflow” (السلوك المتوقع في الإنتاج/التشغيل العادي)، لا يصل شيء: سير العمل لا ينشط أبدًا من تلقاء نفسه.
  3. بالمقارنة، باستخدام الرقم الاختباري الذي توفره Meta (webhook الافتراضي لـ App Dashboard)، يتم استقبال الرسائل بشكل صحيح في كل مرة.

هل هناك إعداد يتعين علي القيام به وربما فاتني؟

مرحباً @Elia_Levy ! السبب في أنه يعمل عند النقر على “Execute Workflow” لكنه يفشل في عملية الإنتاج العادية يكاد يكون دائماً بسبب **عدم تطابق عنوان URL لـ Webhook بين الاختبار والإنتاج** في Meta Developer Dashboard.

إليك خطوات الإصلاح الكاملة:

### 1. تحقق من مسار عنوان URL للـ Webhook في لوحة تحكم Meta

عند النقر على “Execute Workflow” في محرر n8n، يستمع n8n إلى **عنوان URL اختبار Webhook**:

`https://your-instance.n8n.cloud/webhook-test/your-uuid\`

للعملية الطبيعية في الإنتاج (عندما لا تكون تنقر على “Execute Workflow”)، يجب على Meta إرسال الأحداث إلى **عنوان URL الـ Webhook الإنتاجي**:

`https://your-instance.n8n.cloud/webhook/your-uuid\` *(لاحظ `/webhook/` بدلاً من `/webhook-test/`)*

* انتقل إلى **Meta Developer Portal → WhatsApp → Configuration → Edit Webhook**.

* تأكد من أن **Callback URL** تشير إلى `/webhook/…` وليس `/webhook-test/…`.

### 2. تأكد من تشغيل مفتاح تفعيل الـ Workflow

في n8n، تستمع Webhooks الإنتاجية فقط إذا تم تشغيل الـ Workflow بشكل صريح على **نشط**:

* شغّل مفتاح **نشط** في أعلى يمين لوحة رسم سير العمل الخاصة بك على **تشغيل**.

* إذا كان الـ Workflow غير نشط، فإن n8n يسقط صامتاً استدعاءات webhook الإنتاجية الواردة من Meta دون تشغيل.

### 3. تحقق من اشتراكات الأحداث

في إعدادات Meta Webhook، تأكد من اشتراكك في `messages` ضمن أحداث **حساب WhatsApp Business**، وأن تطبيق Meta الخاص بك مرتبط بـ WABA ID الخاص بك عبر `/{WABA_ID}/subscribed_apps` كما ذكر @Anshul_Namdev.

بمجرد حصول Meta على عنوان URL `/webhook/` (الإنتاجي) وتشغيل مفتاح سير العمل **نشط** في n8n، ستؤدي رسائل WhatsApp الواردة إلى التشغيل تلقائياً على مدار 24/7 دون الحاجة إلى فتح المحرر!

السيد/السيدة.
قضيت 3 ساعات مع هذه المشكلة ولم أتمكن من حلها.

إليك الخطوات التي نجحت معي تماماً مع نفس سيناريوك.

  1. ادخل إلى الرابط التالي business.facebook.com/wa/manage/phone-numbers وهناك يجب أن يظهر رقم اختبارك، انقر على الرقم.
  2. عند دخولك إلى الرقم، تحقق من الرابط وستشاهد معامل asset_id=، انسخ هذا الرقم.
  3. في علامة تبويب أخرى، ادخل إلى Graph API Explorer (https://developers.facebook.com/tools/explorer/)، حدد تطبيقك، تأكد من تحديد معرّف المستخدم، تحقق من إضافة الأذن whatsapp_business_management، ثم حدد الطريقة POST، وفي الرابط، بعد /v26.0، احذف تلك القيم وأضف asset_id/subscribed_apps الخاص بك (مثال: v26.0/2548428515454815/subscribed_apps وقم بالتنفيذ.
  4. يجب أن تكون الاستجابة {“success”: true}.
  5. اختبر في n8n، وسيعمل معك.

@aditya_bansod — أعتقد أن الإجابة موجودة بالفعل في منشورك الأول،
في سطرين لم يربط بينهما أحد.

“عندما أرسل الرسالة من رقم واتساب شخصي”
“التطبيق في وضع التطوير”

هذا المزيج هو المشكلة.

في وضع التطوير، يُطلق Meta أحداث webhook فقط للأرقام
المضافة بشكل صريح كمستقبلات اختبار. رقمك الشخصي ليس
واحداً منها، لذلك يقبل Meta والرسالة وينقلها لكن لا يرسل أبداً
حدث webhook. لا يصل شيء إلى n8n لأنه لم يتم إرسال شيء.

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

الحل، بالترتيب:

  1. لوحة Meta > WhatsApp > API Setup > حقل “To” > Manage
    phone number list. أضف رقمك الشخصي. يحصل على
    رمز التحقق عبر الرسائل النصية القصيرة.

  2. أرسل من هذا الرقم مرة أخرى. يجب أن ينطلق webhook.

شيئان سيؤكدان هذا قبل تغيير أي شيء:

لوحة تطبيق Meta > Webhooks > مرر إلى أسفل محاولات التسليم. إذا
لم تكن هناك محاولات على الإطلاق للرسائل الفعلية — ليست محاولات فاشلة،
بل لا شيء — فإن Meta لم ترسل أبداً، مما يستبعد كل شيء
على جانب n8n. هذا ما تتوقعه هنا.

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

واحد آخر، لعندما تبدأ العمل بشكل مباشر:

وضع التطوير يقصرك على خمس مستقبلات اختبار. الانتقال إلى Live
يتطلب Business Verification (التحقق من الأعمال)، الذي يستغرق أياماً بدلاً من ساعات
— يستحق البدء الآن إذا كان هذا للانتقال إلى الإنتاج، لأنه
يصبح المحور بعد نجاح كل شيء آخر.

اختبار Meta يثبت أن نقطة النهاية قابلة للوصول ولكن لا يثبت أن اشتراك WhatsApp المباشر مكتمل. تحقق من أن التطبيق مشترك في حقل الرسائل، وأن رقم الهاتف ينتمي إلى هذا التطبيق، وأن عنوان URL webhook الإنتاج يتطابق مع سير العمل النشط في n8n.