CodeOX Logo
CodeOX Logo
Vol. I — No. 1
المقالة المميزة
Apr 29, 2026

الدليل الكامل: مكتب مساعدة Odoo 17 + تكامل WhatsApp

Codeox Technologies

تقرير من قبل

Codeox Technologies

الدليل الكامل: مكتب مساعدة Odoo 17 + تكامل WhatsApp
شكل 1. الدليل الكامل: مكتب مساعدة Odoo 17 + تكامل WhatsApp · تصوير أصلي لـ The Chronicle

يتضمن إعداد نظام دعم العملاء الذي يتعامل مع البريد الإلكتروني وWhatsApp في Odoo 17 Enterprise أجزاءً متعددة متحركة — سجلات DNS، وخوادم البريد الإلكتروني، والـ Webhooks، وإعدادات الـ API. يوثّق هذا الدليل العملية الكاملة، بما في ذلك كل مشكلة واجهناها وكيفية حلها. استخدمه مرجعاً لتطبيقك الخاص.

01. فهم نقطة البداية

قبل إعداد أي شيء، قم بفحص البنية التحتية الموجودة. في إعداد Odoo.sh النموذجي مع نطاق مخصص على AWS Route 53، قد تجد بعض سجلات DNS الموجودة مسبقاً، وربما خدمة بريد إلكتروني نشطة (مثل Google Workspace)، وقاعدة Odoo نفسها. فهم ما هو موجود بالفعل يمنع كسر الوظائف الحالية.

الأشياء الرئيسية التي يجب فحصها أثناء المراجعة:

  • أين تم تسجيل النطاق؟ — AWS Route 53، GoDaddy، Namecheap، إلخ.
  • هل توجد سجلات MX موجودة؟ — هذا يخبرك ما إذا كان البريد الإلكتروني قد تم إعداده في مكان ما
  • هل Google Workspace أو Microsoft 365 نشط؟ — تحقق من سجلات TXT لإدخالات التحقق
  • ما وحدات Odoo المثبتة؟ — قد يحتاج Helpdesk إلى تثبيت جديد
💡 نصيحة احترافية

تحقق دائماً من سجلات MX قبل تخطيط استراتيجية البريد الإلكتروني. إذا كان Google Workspace أو Microsoft 365 نشطاً بالفعل مع مستخدمين حقيقيين، لا تغيّر سجلات MX — تعامل مع مزود البريد الإلكتروني الموجود بدلاً من ذلك.

02. سجلات DNS — الأساس

DNS (نظام أسماء النطاقات) هو دليل هاتف الإنترنت. إذا كنت جديداً على DNS، إليك مقدمة سريعة عن أنواع السجلات التي ستواجهها:

سجل A (سجل العنوان)

يربط النطاق مباشرة بعنوان IP. مثال: yourdomain.com → 145.79.210.135. عندما يزور شخص ما نطاقك، يذهب المتصفح إلى عنوان IP هذا.

سجل MX (مبادل البريد)

يخبر الإنترنت أين تسليم رسائل البريد الإلكتروني لنطاقك. إذا رأيت SMTP.GOOGLE.COM، تذهب رسائل البريد إلى خوادم Google. إذا أردت أن يتعامل Odoo مع البريد الإلكتروني، يمكنك توجيه هذا إلى خوادم Odoo بدلاً من ذلك.

سجل CNAME (الاسم المتعارف عليه)

يشير نطاق إلى نطاق آخر (مثل إعادة التوجيه). يُستخدم عادةً للنطاقات الفرعية: erp.yourdomain.com → your-instance.odoo.com.

سجلات TXT

سجلات نصية تُستخدم للتحقق وأمان البريد الإلكتروني. تشمل الاستخدامات الشائعة SPF (تفويض مُرسِل البريد) وDKIM (توقيع البريد) والتحقق من النطاق لـ Google/Meta.

سجل SPF — حرج لإمكانية تسليم البريد

إذا لم يكن لنطاقك سجل SPF، فقد تصل رسائل البريد الإلكتروني المُرسَلة باسمه إلى مجلد البريد العشوائي. عند استخدام كل من Google Workspace وOdoo.sh للإرسال، يجب أن يُخوّل سجل SPF كليهما:

TXT
v=spf1 include:_spf.google.com include:_spf.odoo.com ~all
⚠️ مهم

يمكنك امتلاك سجلات TXT متعددة لنفس النطاق، ولكن سجل SPF واحد فقط. إذا كنت بحاجة إلى تفويض خدمات متعددة، ادمجها في سجل SPF واحد كما هو موضح أعلاه.

03. استراتيجية تكامل البريد الإلكتروني

هناك عدة طرق للتعامل مع البريد الإلكتروني في Odoo.sh. يعتمد الاختيار الصحيح على بنيتك التحتية الموجودة:

السيناريوأفضل نهجالتعقيد
لا توجد خدمة بريد إلكترونياستخدم البريد المدمج في Odoo.sh + غيّر سجلات MXبسيط
Google Workspace نشطاحتفظ بـ Google للبريد، اربطه بـ Odoo عبر IMAPمتوسط
Microsoft 365 نشطاحتفظ بـ M365، اربطه بـ Odoo عبر IMAP/OAuthمتوسط
لا حاجة للبريد بعدأعدّ Zoho Mail المجاني أو توجيه بريد Cloudflareبسيط

ربط Google Workspace بـ Odoo

إذا كان Google Workspace نشطاً، فالنهج الموصى به هو إنشاء بريد إلكتروني مخصص للدعم (مثل support@yourdomain.com) وربطه بـ Odoo باستخدام IMAP للوارد، والسماح لـ Odoo.sh بمعالجة الصادر.

1

إنشاء بريد الدعم في Google Admin

اذهب إلى admin.google.com ← المستخدمون ← إضافة مستخدم جديد. أنشئ حساباً مخصصاً مثل support@yourdomain.com.

2

إنشاء كلمة مرور التطبيق

فعّل التحقق بخطوتين على حساب الدعم أولاً، ثم أنشئ كلمة مرور تطبيق على myaccount.google.com/apppasswords. هذه الكلمة المكونة من 16 حرفاً هي ما سيستخدمه Odoo.

3

ضبط خادم البريد الوارد في Odoo

اذهب إلى الإعدادات ← تقني ← خوادم البريد الواردة ← جديد. استخدم imap.gmail.com، المنفذ 993، SSL/TLS مفعّل، مع كلمة مرور التطبيق.

❌ مشكلة شائعة: تعارضات الخادم الصادر

يؤدي إعداد خادم SMTP لـ Gmail الصادر في Odoo إلى إرسال جميع الوحدات (المبيعات، الفواتير، CRM) عبره. هذا عادةً غير مرغوب عندما تريد عناوين "من" مختلفة لوحدات مختلفة.

✅ الحل

لدى Odoo.sh خادم بريد صادر مدمج — لا تحتاج إلى SMTP خارجي. قم بإعداد خادم IMAP الوارد فقط. للبريد الصادر، اتركه لـ Odoo.sh ليتعامل معه بشكل أصلي. إذا أنشأت SMTP لـ Gmail، يمكنك استخدام حقل تصفية FROM لتقييده بعناوين بريد إلكتروني محددة.

04. إعداد وحدة Helpdesk

ثبّت وحدة Helpdesk من تطبيقات Odoo، ثم اضبط الفريق والبريد الإلكتروني المستعار.

معاملات النظام — الإعداد الخفي

هذه خطوة تفوّتها كثير من الأدلة. يعتمد نظام البريد في Odoo على معاملَين رئيسيَّين في نظام المعاملات (الإعدادات ← تقني ← المعاملات ← معاملات النظام):

# عادةً تكون مضبوطة على النطاق الفرعي الافتراضي لـ Odoo.sh
mail.catchall.domain = your-instance.odoo.com
mail.default.from_filter = your-instance.odoo.com

# غيّرها إلى نطاقك المخصص
mail.catchall.domain = yourdomain.com
mail.default.from_filter = yourdomain.com
🚨 حرج

بدون تغيير mail.catchall.domain، لن يعمل البريد الإلكتروني المستعار لمكتب المساعدة. سيتم تعيين الاسم المستعار support إلى support@your-instance.odoo.com بدلاً من support@yourdomain.com.

إعداد فريق Helpdesk

اذهب إلى Helpdesk ← الإعدادات ← فرق Helpdesk ← أنشئ فريقك. الإعدادات الرئيسية:

  • البريد الإلكتروني المستعار: اضبطه على support — يجب أن يملأ نطاقك تلقائياً من معامل النظام
  • قبول رسائل البريد من: الجميع (حتى يتمكن أي عميل من إنشاء تذاكر)
  • الرؤية: مستخدمو البوابة المدعوون وجميع المستخدمين الداخليين
  • سياسات SLA: فعّلها إذا أردت تتبع أوقات الاستجابة/الحل
❌ مشكلة شائعة: تحذير "تعيين نطاق مستعار"

تُظهر صفحة فريق Helpdesk تحذيراً يطلب تعيين نطاق مستعار، ويُظهر الاسم المستعار @ e.g. domain.com بدلاً من نطاقك الفعلي.

✅ الحل

انقر على رابط "تعيين نطاق مستعار" — يأخذك إلى الإعدادات العامة حيث تضبط النطاق المستعار على نطاقك المخصص. هذا منفصل عن معاملات النظام ويجب إعداده أيضاً.

مسار البريد الإلكتروني إلى التذكرة

قناة البريد الإلكتروني — إنشاء تذاكر تلقائي
العميل يرسل بريداً
support@domain.com
Odoo يجلب عبر IMAP
إنشاء تذكرة Helpdesk
يتحقق Odoo من رسائل البريد الجديدة كل 5 دقائق (قابل للتعديل في الإجراءات المجدولة)

05. تكامل WhatsApp Business API

تكامل WhatsApp هو الجزء الأكثر تعقيداً في هذا الإعداد. يتطلب التنسيق بين ثلاث منصات: Meta Business Suite، وMeta Developer Console، وOdoo.

ℹ️ تمييز رئيسي

في Odoo 17، لا ينشئ WhatsApp تذاكر Helpdesk تلقائياً. تصل رسائل WhatsApp الواردة إلى وحدة Discuss (مثل الدردشة المباشرة). ثم يُنشئ الوكلاء تذاكر يدوياً إذا لزم الأمر. يختلف هذا عن البريد الإلكتروني الذي ينشئ تذاكر تلقائياً.

المتطلبات المسبقة

  • حساب Meta Business (business.facebook.com)
  • حساب Meta Developer (developers.facebook.com)
  • رقم هاتف مخصص غير مسجل على WhatsApp مسبقاً
  • Odoo 17 Enterprise مع تثبيت وحدة WhatsApp

الإعداد خطوة بخطوة

1

إنشاء تطبيق Meta Developer

على developers.facebook.com، أنشئ تطبيقاً من نوع Business. أضف منتج WhatsApp إليه. اربطه بحساب Meta Business الخاص بك.

2

الإعداد في Odoo

اذهب إلى WhatsApp ← الإعدادات ← حسابات WhatsApp Business ← جديد. أدخل Phone Number ID وAccount ID وAccess Token وApp Secret وApp ID من وحدة تحكم Meta للمطورين.

3

إعداد الـ Webhooks

بعد النقر على "اختبار الاتصال" في Odoo، انسخ عنوان URL للرد ورمز التحقق من الـ Webhook إلى إعداد الـ Webhook في Meta. اشترك في حقل الـ Webhook messages.

4

إنشاء رمز دائم

أنشئ مستخدم نظام في إعدادات Meta Business، وعيّن أصول حساب WhatsApp، وأنشئ رمزاً دائماً بصلاحيات whatsapp_business_messaging وwhatsapp_business_management.

5

إنشاء قوالب الرسائل

في WhatsApp ← القوالب في Odoo، أنشئ قوالب مساعدة للردود الشائعة. قدّمها إلى Meta للموافقة. تستخدم القوالب متغيرات ديناميكية مثل {{1}} التي تُعيَّن لحقول نموذج Odoo.

مسار WhatsApp في Odoo

رسائل WhatsApp الواردة
العميل يرسل عبر WhatsApp
Meta Cloud API
Webhook إلى Odoo
Discuss (دردشة مباشرة)

الصادر من Helpdesk
الوكيل يفتح التذكرة
ينقر "إرسال WhatsApp"
يختار القالب
العميل يستلم الرسالة

06. تصحيح أخطاء الـ Webhook — مشاكل شائعة

الـ Webhook هو المكان الذي يتعثر فيه معظم الناس. يمكن لـ Odoo إرسال رسائل WhatsApp بشكل جيد، لكن الرسائل الواردة لا تظهر. إليك المشاكل التي واجهناها وحلولها:

❌ المشكلة 1: التطبيق في وضع التطوير

يجب أن يكون تطبيق Meta منشوراً (مضبوطاً على الوضع المباشر) حتى تعمل الـ Webhooks مع أرقام الهاتف الحقيقية. في وضع التطوير، تستقبل الـ Webhooks أرقام الاختبار فقط. تحقق من مفتاح وضع التطبيق في أعلى وحدة تحكم المطورين.

❌ المشكلة 2: التحقق من الأعمال مطلوب

تطلب Meta التحقق من الأعمال قبل نشر التطبيق. ستحتاج إلى تقديم وثائق أعمال رسمية (سجل تجاري، رخصة تجارية، إلخ). يستغرق من 1-5 أيام عمل.

❌ المشكلة 3: "App-secret is missing" في السجلات

تُظهر سجلات Odoo.sh وصول POST للـ Webhook مع تحذير: App-secret is missing, can not check signature. قد يعني هذا: (أ) حقل App Secret فارغ في Odoo، (ب) لا يتطابق Account ID في Odoo مع ما يرسله Meta في الـ Webhook، (ج) البحث يُعيد نتيجة فارغة بسبب عدم تطابق البيانات.

✅ نهج التصحيح

تحقق من كود Odoo المصدري في /enterprise/whatsapp/controller/main.py. يبحث معالج الـ Webhook عن الحساب باستخدام account_uid. تحقق من أن هذا يتطابق مع معرّف حساب WhatsApp Business في Meta. استخدم shell الـ Odoo.sh للاستعلام في قاعدة البيانات مباشرةً والتأكد من صحة القيم المخزّنة.

❌ المشكلة 4: الصلاحيات "جاهزة للاختبار"

حتى بعد نشر التطبيق، قد تظل صلاحيات WhatsApp في حالة "جاهزة للاختبار". يعني هذا عمل الرسائل الصادرة لكن حظر الـ Webhooks الواردة لأرقام الإنتاج. تستقبل أرقام الاختبار فقط الـ Webhooks.

✅ الحل: أكمل مراجعة تطبيق Meta

قدّم مراجعة تطبيق Meta طالباً الوصول المتقدم لـ whatsapp_business_messaging وwhatsapp_business_management. أزل حالات الاستخدام غير الضرورية أولاً لتبسيط المراجعة. ستحتاج إلى وصف حالة استخدامك، رفع مقطع فيديو، والإجابة على أسئلة التعامل مع البيانات.

كيف يعالج Odoo الـ Webhooks — الكود المصدري

فهم الكود المصدري يساعد في تشخيص المشاكل:

# /enterprise/whatsapp/controller/main.py (مبسّط)

def webhookpost(self):
    data = json.loads(request.httprequest.data)
    for entry in data['entry']:
        account_id = entry['id']  # معرّف WABA من Meta
       
        # يبحث Odoo عبر account_uid
        account = env['whatsapp.account'].search(
            [('account_uid', '=', account_id)])
       
        # يتحقق من توقيع الطلب باستخدام App Secret
        if not self._check_signature(account):
            raise Forbidden()
       
        # ثم يطابق بـ phone_uid + account_uid
        wa_account = env['whatsapp.account'].search([
            ('phone_uid', '=', phone_number_id),
            ('account_uid', '=', account_id)])
       
        wa_account._process_messages(value)
💡 رؤية أساسية

يحدث تحذير "App-secret is missing" عندما يُعيد البحث مجموعة سجلات فارغة. الوصول إلى .app_secret على مجموعة سجلات فارغة يُعيد False، مما يُطلق التحذير. تحقق دائماً من أن account_uid وphone_uid في Odoo يتطابقان تماماً مع ما يُرسله Meta.

07. عملية مراجعة تطبيق Meta

مراجعة التطبيق مطلوبة للانتقال بصلاحيات WhatsApp من "جاهزة للاختبار" إلى "مباشرة". إليك كيفية التعامل معها بكفاءة:

ابقِ تطبيقك خفيفاً

قبل التقديم، أزل جميع حالات الاستخدام غير الضرورية. لـ WhatsApp + Odoo، تحتاج فقط إلى:

  • whatsapp_business_messaging — إرسال واستقبال الرسائل
  • whatsapp_business_management — إدارة القوالب والحساب
  • business_management — قراءة معلومات حساب الأعمال
  • public_profile — متطلب أساسي للتطبيق

كل صلاحية إضافية (صفحات، إعلانات، Threads، Instagram، Messenger) تتطلب توثيقاً منفصلاً. أزلها ما لم تكن مطلوبة فعلاً.

ما يحتاجه المراجعون

  • وصف حالة الاستخدام: اشرح أنه تكامل خادم إلى خادم لـ ERP لدعم العملاء
  • مقطع فيديو: سجّل إرسال رسالة من Odoo، استقبالها على WhatsApp، الرد عليها، ورؤية الرد في Odoo
  • التعامل مع البيانات: حدّد معالج البيانات (Odoo S.A.) ومتحكم البيانات (شركتك)
  • رابط سياسة الخصوصية: مطلوب في إعدادات التطبيق ← الأساسية قبل النشر
🎯 نصيحة لتطبيقات الخادم إلى الخادم

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

08. قائمة التحقق الكاملة للإعداد

المكوّنالحالةملاحظات
DNS — سجل SPFمطلوبفوّض كلاً من Google وOdoo في سجل واحد
بريد دعم مخصصمطلوبتم إنشاؤه في مزود البريد الإلكتروني
كلمة مرور التطبيق / OAuthمطلوبلاتصال IMAP بـ Odoo
خادم البريد الوارد (IMAP)مطلوبimap.gmail.com:993 مع SSL
معاملات النظاممطلوبmail.catchall.domain = yourdomain.com
نطاق الاسم المستعار في الإعداداتمطلوبيُضبط في الإعدادات العامة
فريق Helpdesk + الاسم المستعارمطلوبsupport @ yourdomain.com
التحقق من أعمال Metaلـ WhatsAppمن 1-5 أيام عمل
تطبيق Meta Developerلـ WhatsAppمنشور مع منتج WhatsApp
رمز الوصول الدائملـ WhatsAppمن مستخدم النظام، لا ينتهي
إعداد الـ Webhookلـ WhatsAppرابط الرد + الحقول المشترك بها
مراجعة تطبيق Metaلـ WhatsAppمطلوبة لـ Webhooks الإنتاجية
قوالب WhatsAppلـ WhatsAppيجب الموافقة عليها من Meta

09. الدروس المستفادة

1. افحص قبل أن تبني

اكتشاف البنية التحتية الموجودة (خدمات البريد الإلكتروني النشطة، سجلات DNS، الإعدادات السابقة) يمنع كسر الأشياء ويساعد في اختيار استراتيجية التكامل الصحيحة.

2. لدى Odoo.sh خادم بريد مدمج

لا تُعدّ SMTP خارجياً للبريد الصادر على Odoo.sh. يتعامل خادمه المدمج مع الإرسال. تحتاج فقط إلى IMAP خارجي للبريد الوارد.

3. معاملات النظام غير مرئية لكنها حرجة

يجب أن يتطابق mail.catchall.domain وmail.default.from_filter مع نطاقك المخصص. هذه هي الخطوة الأكثر شيوعاً في الإغفال عند إعداد البريد الإلكتروني في Odoo.

4. يحتاج WhatsApp إلى ثلاث موافقات منفصلة

التحقق من أعمال Meta ← نشر التطبيق ← مراجعة التطبيق. لكل منها جدول زمني خاص بها. ابدأ مبكراً.

5. اختبر بأرقام الاختبار أولاً

توفر Meta أرقام هاتف اختبار تتجاوز متطلب مراجعة التطبيق. استخدمها للتحقق من عمل خط الـ Webhook بالكامل قبل الخضوع للمراجعة.

6. WhatsApp ≠ البريد الإلكتروني في Helpdesk

ينشئ البريد الإلكتروني تذاكر تلقائياً. تذهب رسائل WhatsApp إلى Discuss أولاً. صمّم سير عمل فريقك وفقاً لذلك.

7. اقرأ الكود المصدري لـ Odoo

عند تصحيح أخطاء الـ Webhooks، الكود المصدري على /enterprise/whatsapp/controller/main.py هو أفضل صديق لك. يُظهر بالضبط كيف يُطابق Odoo الـ Webhooks الواردة مع الحسابات.

10. البنية النهائية

قناة البريد الإلكتروني — إنشاء تذاكر تلقائي
بريد العميل
Google Workspace / مزود البريد
Odoo يجلب عبر IMAP
تذكرة Helpdesk

قناة WhatsApp — Discuss + تذكرة يدوية
WhatsApp العميل
Meta Cloud API
Webhook إلى Odoo
Discuss ← التذكرة

الصادر — كلا القناتين
الوكيل في Odoo
Odoo.sh Mail / WhatsApp API
العميل

يُنشئ هذا الإعداد نظام دعم موحداً حيث ينشئ البريد الإلكتروني تذاكر تلقائياً ويوفر WhatsApp قناة اتصال في الوقت الفعلي — كل ذلك يُدار من واجهة Odoo واحدة.

الدليل الكامل: مكتب مساعدة Odoo 17 + تكامل WhatsApp