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

تقرير من قبل
Codeox Technologies

يتضمن إعداد نظام دعم العملاء الذي يتعامل مع البريد الإلكتروني و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 متعددة لنفس النطاق، ولكن سجل 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 بمعالجة الصادر.
إنشاء بريد الدعم في Google Admin
اذهب إلى admin.google.com ← المستخدمون ← إضافة مستخدم جديد. أنشئ حساباً مخصصاً مثل support@yourdomain.com.
إنشاء كلمة مرور التطبيق
فعّل التحقق بخطوتين على حساب الدعم أولاً، ثم أنشئ كلمة مرور تطبيق على myaccount.google.com/apppasswords. هذه الكلمة المكونة من 16 حرفاً هي ما سيستخدمه Odoo.
ضبط خادم البريد الوارد في 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 بدلاً من نطاقك الفعلي.
انقر على رابط "تعيين نطاق مستعار" — يأخذك إلى الإعدادات العامة حيث تضبط النطاق المستعار على نطاقك المخصص. هذا منفصل عن معاملات النظام ويجب إعداده أيضاً.
مسار البريد الإلكتروني إلى التذكرة
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
الإعداد خطوة بخطوة
إنشاء تطبيق Meta Developer
على developers.facebook.com، أنشئ تطبيقاً من نوع Business. أضف منتج WhatsApp إليه. اربطه بحساب Meta Business الخاص بك.
الإعداد في Odoo
اذهب إلى WhatsApp ← الإعدادات ← حسابات WhatsApp Business ← جديد. أدخل Phone Number ID وAccount ID وAccess Token وApp Secret وApp ID من وحدة تحكم Meta للمطورين.
إعداد الـ Webhooks
بعد النقر على "اختبار الاتصال" في Odoo، انسخ عنوان URL للرد ورمز التحقق من الـ Webhook إلى إعداد الـ Webhook في Meta. اشترك في حقل الـ Webhook messages.
إنشاء رمز دائم
أنشئ مستخدم نظام في إعدادات Meta Business، وعيّن أصول حساب WhatsApp، وأنشئ رمزاً دائماً بصلاحيات whatsapp_business_messaging وwhatsapp_business_management.
إنشاء قوالب الرسائل
في WhatsApp ← القوالب في Odoo، أنشئ قوالب مساعدة للردود الشائعة. قدّمها إلى Meta للموافقة. تستخدم القوالب متغيرات ديناميكية مثل {{1}} التي تُعيَّن لحقول نموذج Odoo.
مسار WhatsApp في Odoo
06. تصحيح أخطاء الـ Webhook — مشاكل شائعة
الـ Webhook هو المكان الذي يتعثر فيه معظم الناس. يمكن لـ Odoo إرسال رسائل WhatsApp بشكل جيد، لكن الرسائل الواردة لا تظهر. إليك المشاكل التي واجهناها وحلولها:
يجب أن يكون تطبيق Meta منشوراً (مضبوطاً على الوضع المباشر) حتى تعمل الـ Webhooks مع أرقام الهاتف الحقيقية. في وضع التطوير، تستقبل الـ Webhooks أرقام الاختبار فقط. تحقق من مفتاح وضع التطبيق في أعلى وحدة تحكم المطورين.
تطلب Meta التحقق من الأعمال قبل نشر التطبيق. ستحتاج إلى تقديم وثائق أعمال رسمية (سجل تجاري، رخصة تجارية، إلخ). يستغرق من 1-5 أيام عمل.
تُظهر سجلات 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 للاستعلام في قاعدة البيانات مباشرةً والتأكد من صحة القيم المخزّنة.
حتى بعد نشر التطبيق، قد تظل صلاحيات WhatsApp في حالة "جاهزة للاختبار". يعني هذا عمل الرسائل الصادرة لكن حظر الـ Webhooks الواردة لأرقام الإنتاج. تستقبل أرقام الاختبار فقط الـ Webhooks.
قدّم مراجعة تطبيق 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. البنية النهائية
يُنشئ هذا الإعداد نظام دعم موحداً حيث ينشئ البريد الإلكتروني تذاكر تلقائياً ويوفر WhatsApp قناة اتصال في الوقت الفعلي — كل ذلك يُدار من واجهة Odoo واحدة.