Odoo WhatsApp Integration: Complete Setup Guide
Connect WhatsApp to Odoo for sales, support, and notifications. Official WhatsApp Business API, third-party modules, and n8n automation — all methods compared.
WhatsApp + Odoo: Why It Matters
WhatsApp has over 2 billion active users. In Latin America, Southeast Asia, the Middle East, Africa, and large parts of Europe, it is not just a messaging app — it is the default communication channel for business. Customers expect to receive order confirmations, ask support questions, and even make purchases through WhatsApp.
If your Odoo instance handles sales, CRM, helpdesk, or e-commerce, connecting it to WhatsApp means you are meeting customers where they already are. The numbers back this up:
- •WhatsApp Business messages have a 98% open rate — compared to 20–30% for email.
- •Response times drop by 60% when support teams use WhatsApp vs email-only workflows.
- •Sales conversion rates increase 3–5x when leads receive a WhatsApp follow-up within the first hour.
Odoo 17 and 18 ship with a built-in WhatsApp module — but only in Enterprise Edition. If you are running Community Edition (which most self-hosted deployments are), you need an alternative approach. This guide covers all three paths.
Three Integration Methods Compared
Before diving into setup details, here is a high-level comparison of every approach:
| Odoo Enterprise Module | Third-Party Modules | n8n Automation | |
|---|---|---|---|
| Cost | Included with Enterprise license ($$$) | $50–$300 one-time or subscription | Free (self-hosted n8n) |
| Community Edition | No | Yes (most modules) | Yes |
| Enterprise Edition | Yes | Yes | Yes |
| Setup complexity | Low — built-in UI | Medium — install + configure | Medium-High — workflow design |
| Customizability | Limited to module options | Depends on module | Unlimited — any workflow |
| Two-way messaging | Yes | Varies by module | Yes (with webhooks) |
| Template messages | Yes | Yes | Yes |
| Automated workflows | Basic (automated actions) | Basic-Medium | Advanced — 400+ integrations |
| Multi-channel | WhatsApp only | Usually WhatsApp only | WhatsApp + Slack + email + anything |
| Maintenance | Odoo S.A. maintains | Third-party developer | You maintain workflows |
| Meta API required | Yes | Yes | Yes |
Quick recommendation
- •Enterprise users who want simplicity — use the built-in module. It works, it is supported, and it stays updated with each Odoo release.
- •Community users who want a plug-and-play solution — pick a well-maintained third-party module from OCA or the Odoo Apps Store.
- •Teams who want advanced automation — use n8n regardless of your Odoo edition. It gives you WhatsApp plus every other integration in a single platform.
Method 1: Odoo Enterprise WhatsApp Module
Starting with Odoo 17, Odoo S.A. ships a native WhatsApp integration module. It uses the Meta WhatsApp Business API under the hood and integrates directly into CRM, Sales, Purchase, Helpdesk, and other modules.
What it does
- •Send and receive WhatsApp messages from within Odoo's chatter (the message thread on any record)
- •Use pre-approved template messages for outbound communication
- •Attach WhatsApp conversations to leads, sale orders, helpdesk tickets, and purchase orders
- •Send automated notifications on record state changes (e.g., sale order confirmed, invoice sent)
- •Receive incoming messages and route them to the right record or create new ones
Prerequisites
- Odoo Enterprise license — the WhatsApp module is Enterprise-only.
- Meta Business account — create one at business.facebook.com if you do not have one.
- Business verification — Meta requires you to verify your business identity. This involves uploading legal documents and typically takes 2–7 business days.
- WhatsApp Business Platform access — apply through Meta Business Suite. You need a phone number that is not already registered with WhatsApp or WhatsApp Business app.
- A permanent access token — generated in the Meta Developer Console.
Setup steps
Step 1: Enable the WhatsApp module
In Odoo, go to Apps, search for “WhatsApp”, and install the module. If you also want WhatsApp in specific apps (CRM, Sales, Helpdesk), install those bridge modules too — they are named whatsapp_crm, whatsapp_sale, whatsapp_helpdesk, etc.
Step 2: Configure the WhatsApp Business Account
Navigate to Settings → General Settings → Discuss → WhatsApp. Enter:
- •Phone Number ID — found in Meta Developer Console → WhatsApp → API Setup
- •WhatsApp Business Account ID — same location
- •Access Token — the permanent token you generated (or a system user token for production)
- •App Secret — from your Meta App's Basic Settings page
- •Webhook Verify Token — a random string you choose. Odoo will validate incoming webhook calls against this.
Step 3: Configure the Meta webhook
In Meta Developer Console → WhatsApp → Configuration → Webhooks, set:
- •Callback URL:
https://your-odoo-domain.com/whatsapp/webhook - •Verify Token: the same string you entered in Odoo
Subscribe to: messages, message_template_status_update
Step 4: Create message templates
WhatsApp requires pre-approved templates for any business-initiated message (more on this in the Template Messages section below). Go to Meta Business Suite → WhatsApp Manager → Message Templates and create templates for your use cases: order confirmations, payment reminders, shipping notifications, etc. Then in Odoo, go to WhatsApp → Templates and sync your templates. Odoo will pull them from Meta's API.
Step 5: Test
Open any sale order, click the WhatsApp icon in the chatter, select a template, fill in the variables, and send. The customer receives a WhatsApp message, and any reply appears back in the Odoo chatter.
Limitations of the Enterprise module
- •No support for WhatsApp Flows (interactive forms inside WhatsApp)
- •Limited automation — you get basic automated actions, but nothing like n8n's workflow flexibility
- •Catalog messages and product browsing are not supported in all Odoo versions
- •No built-in chatbot logic — incoming messages land in the chatter, and a human needs to respond (unless you build automated actions)
Method 2: Third-Party Modules for Community Edition
If you are running Odoo Community Edition, the built-in WhatsApp module is not available. Several third-party modules fill this gap.
Option 1: OCA WhatsApp Connector
The Odoo Community Association (OCA) maintains community-driven modules. The whatsapp module from OCA provides:
- •WhatsApp messaging from chatter on any model
- •Template message support via Meta WhatsApp Business API
- •Incoming message handling via webhooks
- •Available for Odoo 16, 17, and 18
- •Cost: Free (open-source, LGPL-3.0 license)
The OCA module is well-maintained but typically lags behind the Enterprise module in features. It is a good choice if you want a free, community-supported solution and are comfortable with some manual configuration.
# Clone the OCA social repository into your custom addons directory
git clone https://github.com/OCA/social.git -b 18.0 /path/to/custom-addons/socialThen add the path to your Odoo addons configuration and install the whatsapp module from the Apps menu.
Option 2: Odoo Apps Store Modules
The Odoo Apps Store has dozens of WhatsApp modules from various publishers. Here are the most established ones:
| Module | Publisher | Price | Odoo Versions | Key Features |
|---|---|---|---|---|
| WhatsApp Integration Suite | Pragmatic TechSoft | $149–$249 | 15–18 | Full messaging, chatbot, bulk send, multi-number |
| WhatsApp Connector | Technaureus | $99–$199 | 16–18 | CRM/Sales/Helpdesk integration, template sync |
| WhatsApp Live Chat | CandidRoot | $79–$149 | 16–18 | Live chat widget, auto-reply, quick responses |
| WhatsApp API Integration | Ksolves | $129–$199 | 16–18 | Direct Meta API, no Twilio dependency, group messages |
What to look for when evaluating
- •API method — Does it use Meta's official WhatsApp Business API directly, or does it go through Twilio/360dialog? Direct Meta API is cheaper per message but harder to set up. Twilio adds a markup but simplifies configuration.
- •Version compatibility — Make sure it supports your exact Odoo version (e.g., 18.0, not just “18”).
- •Active maintenance — Check when the last update was published. WhatsApp Business API changes frequently; modules that have not been updated in 6+ months may have breaking issues.
- •Community vs Enterprise — Most Apps Store modules support both editions, but verify before purchasing.
- •Support policy — Some publishers include 3–6 months of support. Others charge separately.
Option 3: Twilio-based approach
If you want maximum reliability and do not mind paying per message, Twilio's WhatsApp API is a solid choice. Several Odoo modules use Twilio as the backend provider:
- Sign up for Twilio and enable WhatsApp in the Twilio Console
- Get your Twilio Account SID, Auth Token, and WhatsApp-enabled phone number
- Install a Twilio-compatible Odoo module
- Configure the module with your Twilio credentials
Twilio adds approximately $0.005 per message on top of WhatsApp's own conversation-based pricing. The advantage is a well-documented API, excellent deliverability, and Twilio handles all the Meta Business verification complexity for you.
Method 3: n8n + WhatsApp Business API
This is the most flexible approach — and it works with both Community and Enterprise editions. n8n is an open-source workflow automation platform (think Zapier, but self-hosted) with a native WhatsApp Business node.
The idea: n8n sits between Odoo and WhatsApp, orchestrating messages based on triggers from either side. This gives you unlimited automation possibilities.
Why n8n for WhatsApp automation
- •No per-workflow pricing — self-hosted n8n is free for unlimited workflows
- •400+ integrations — WhatsApp is just one node. You can add Slack, email, AI classification, database lookups, HTTP requests, and anything else in the same workflow
- •Visual workflow builder — drag-and-drop, no code required for simple flows
- •Advanced logic — conditional branching, loops, error handling, retry logic
- •Works with Odoo Community — no Enterprise license needed
Example workflow: Sale order → WhatsApp confirmation
Odoo Webhook Trigger (sale.order confirmed)
→ n8n receives the event
→ Fetch customer phone from Odoo (via XML-RPC)
→ Format template message with order details
→ Send WhatsApp template message via Meta API
→ Log the message back to Odoo chatter (via XML-RPC)Example workflow: Incoming WhatsApp → Helpdesk ticket
n8n Webhook (receives WhatsApp incoming message via Meta webhook)
→ Extract sender phone number and message text
→ Search Odoo for partner by phone number
→ If found: create helpdesk ticket linked to partner
→ If not found: create new partner, then create ticket
→ Send WhatsApp reply: "Thanks, we've created ticket #HD0123"For a complete guide on setting up n8n with Odoo, including Docker Compose configuration and detailed workflow examples, see our Odoo + n8n automation guide.
Setting Up WhatsApp Business API
Regardless of which integration method you choose, you need access to the WhatsApp Business API. Here is the setup process — it applies to all three methods above.
Prerequisites
- •A Meta Business account at business.facebook.com
- •Business verification completed (legal name, address, documents)
- •A phone number not currently registered with WhatsApp or WhatsApp Business app. You can use a new number, a landline (Meta will call it for verification), or a number from a virtual phone provider.
Step-by-step setup
1. Create a Meta App
Go to developers.facebook.com → My Apps → Create App. Select “Business” as the app type.
2. Add WhatsApp product
In your app dashboard, click “Add Product” and select WhatsApp. This enables the WhatsApp Business API for your app.
3. Configure a phone number
In WhatsApp → API Setup, you will see a test phone number provided by Meta. For production, click “Add phone number” and register your own. Meta will send a verification code via SMS or voice call.
4. Generate a permanent access token
The test token in the API Setup page expires after 24 hours. For production, create a System User in your Meta Business account:
- •Go to Business Settings → Users → System Users
- •Create a new system user with Admin role
- •Generate a token with the
whatsapp_business_messagingandwhatsapp_business_managementpermissions - •This token does not expire
5. Set up webhooks
Webhooks let you receive incoming messages and delivery status updates. Configure the webhook URL in your Meta App → WhatsApp → Configuration:
- •For Odoo Enterprise:
https://your-domain.com/whatsapp/webhook - •For n8n:
https://your-n8n-domain.com/webhook/whatsapp(your n8n webhook URL) - •For third-party modules: check the module documentation for the webhook endpoint
Subscribe to the messages webhook field at minimum. Also subscribe to message_template_status_update if you want to track template approval status.
6. Verify the webhook
When you save the webhook configuration, Meta sends a verification request (GET) with a hub.verify_token parameter. Your endpoint must respond with the hub.challenge value. Odoo's built-in module and most third-party modules handle this automatically.
Common Use Cases
Here are the most practical WhatsApp automations for Odoo, with implementation notes for each method.
Sales notifications
Enterprise module: Enable the WhatsApp button on sale orders. Create a template with variables for customer name, order reference, and amount. Send manually or set up an automated action on quote confirmation.
n8n: Trigger on sale order state change to sent. Fetch order details via XML-RPC, format the template, send via WhatsApp Business API node.
Order confirmations
Automatic WhatsApp message when a sale order is confirmed.
Hello {{1}},
Your order {{2}} has been confirmed. Total: {{3}}.
We'll notify you when it ships.
Thank you,
{{4}}Variables: {{1}} = customer name, {{2}} = order reference, {{3}} = total amount, {{4}} = company name.
Delivery tracking
Trigger on delivery order validation. Pull the tracking number from the carrier integration (if available) or from a custom field.
Payment reminders
Scheduled messages for overdue invoices. This is one of the highest-value automations — a polite WhatsApp reminder gets paid faster than an email buried in a spam folder.
Cron trigger (daily at 9 AM)
→ Query Odoo for invoices where payment_state = 'not_paid'
AND invoice_date_due < today
→ For each overdue invoice:
→ Send WhatsApp template: "Hi {{name}}, invoice {{ref}} for {{amount}}
was due on {{date}}. Pay here: {{portal_link}}"
→ Log sent reminders back to OdooCustomer support
Incoming WhatsApp messages create helpdesk tickets automatically. The customer gets an immediate acknowledgment, and your support team works the ticket in Odoo as usual.
Marketing messages
WhatsApp allows template-approved promotional messages to customers who have opted in. Use cases: new product announcements, seasonal promotions, event invitations. Be careful with volume — WhatsApp monitors quality ratings and can restrict your number if recipients report messages as spam.
Template Messages & Compliance
WhatsApp enforces strict rules on business-initiated messages. Understanding these rules is essential — violations can get your number banned.
How template messages work
- You create a template in Meta Business Suite with placeholders for dynamic content
- Meta reviews and approves the template (usually within minutes to hours, sometimes up to 24 hours)
- You send the template to customers, filling in the placeholder values at send time
- If the customer replies, a 24-hour conversation window opens where you can send free-form messages without templates
Template categories
- •Utility — transactional messages: order confirmations, shipping updates, payment receipts. Cheapest per-conversation cost.
- •Authentication — OTP and login verification codes. Cheapest category.
- •Marketing — promotional content, offers, re-engagement. Most expensive category.
- •Service — only available within the 24-hour window after a customer initiates contact. No pre-approval needed.
Common rejection reasons
Templates get rejected when they:
- •Contain URL shorteners (use full URLs instead)
- •Request sensitive information (passwords, financial details)
- •Have spelling or grammar errors that suggest spam
- •Are too promotional for the Utility category
- •Include content that violates Meta's Commerce Policy
The 24-hour session window
When a customer sends you a message, a 24-hour window opens. During this window, you can reply with any message — no template required. After 24 hours, you must use an approved template to re-initiate conversation.
This means: for support workflows where the customer writes first, you have full conversational flexibility. For business-initiated messages (notifications, reminders), you always need a template.
Opt-in requirements
WhatsApp requires that customers opt in to receiving messages from your business. You need:
- •Clear opt-in language explaining what messages they will receive
- •A record of when and how the customer opted in
- •An easy way to opt out
For Odoo, store the opt-in status on the res.partner record (a boolean field like whatsapp_opt_in) and check it before sending.
Multi-Language WhatsApp Messages
If you serve customers in multiple countries, you need WhatsApp templates in multiple languages.
Creating translated templates
In Meta Business Suite → Message Templates, you can add translations for each template. Create the same template in as many languages as you need — each translation is reviewed and approved independently.
Detecting customer language
Odoo stores the customer's preferred language in the lang field on res.partner. Use this to select the right template variant:
- •Enterprise module: The module can auto-detect language from the partner record when selecting templates.
- •n8n: Add a Switch node after fetching the partner. Route to different WhatsApp Send nodes based on the
langfield value. - •Third-party modules: Most support language detection, but verify with the module documentation.
Language fallback
Not every customer has a language set in Odoo. Define a fallback:
- Check
res.partner.lang— if set, use that language template - If not set, check the partner's country — map countries to default languages
- If still unclear, fall back to English
Cost Structure
WhatsApp Business API pricing is conversation-based, not per-message. A “conversation” is a 24-hour window that starts when you send a template (business-initiated) or when the customer messages you (user-initiated).
Pricing by conversation type (approximate, varies by country)
| Conversation Type | North America | Europe | Latin America | Asia-Pacific | Africa |
|---|---|---|---|---|---|
| Utility | $0.0080 | $0.0080 | $0.0040–$0.0085 | $0.0030–$0.0080 | $0.0020–$0.0050 |
| Authentication | $0.0045 | $0.0055 | $0.0030–$0.0065 | $0.0025–$0.0060 | $0.0020–$0.0040 |
| Marketing | $0.0250 | $0.0360 | $0.0100–$0.0300 | $0.0080–$0.0250 | $0.0050–$0.0100 |
| Service | $0.0080 | $0.0069 | $0.0040–$0.0080 | $0.0020–$0.0060 | $0.0020–$0.0040 |
Prices are per conversation. All messages within a 24-hour conversation window are included in the single conversation charge.
1,000 free service conversations per month
Meta provides 1,000 free service conversations (user-initiated) per WhatsApp Business Account per month. This is generous for small businesses — it means incoming support conversations are free up to that threshold.
Cost comparison: direct Meta API vs providers
| Provider | Per-message markup | Monthly fee | Setup complexity |
|---|---|---|---|
| Direct Meta API | None (API pricing only) | None | High — you manage webhooks, tokens, compliance |
| Twilio | ~$0.005/message + conversation fee | None | Low — handles Meta verification for you |
| 360dialog | None | From $5/mo per number | Medium — good dashboard, partner support |
| MessageBird | ~$0.004/message | None | Low-Medium — good API docs |
For most Odoo deployments sending fewer than 5,000 conversations/month, the total WhatsApp cost is under $50/month regardless of provider. The real cost difference between providers is in setup time and ongoing maintenance, not per-message fees.
Troubleshooting Common Issues
Webhook not receiving messages
- Verify the webhook URL is publicly accessible (not behind a firewall or VPN)
- Check that your SSL certificate is valid — Meta rejects webhooks to endpoints with expired or self-signed certificates
- Confirm you subscribed to the
messagesfield in Meta Developer Console - Check your server logs for incoming requests. Meta sends a GET request for verification and POST requests for messages
- If using n8n, make sure the webhook node is active (workflow must be activated, not just saved)
Template rejection
- •Read the rejection reason in Meta Business Suite — it is usually specific
- •Do not use URL shorteners (bit.ly, t.ly) — use full URLs
- •Avoid ALL CAPS in template text
- •Make sure variable placeholders have sample values that make sense
- •If a template is rejected repeatedly, create a new one with different wording rather than resubmitting the same text
Phone number quality rating drops
Meta assigns a quality rating (Green, Yellow, Red) to your phone number based on how recipients interact with your messages. If your rating drops:
- •Reduce message volume immediately
- •Review recent templates for content that might trigger blocks or reports
- •Ensure you have proper opt-in for all recipients
- •Wait for the rating to recover before increasing volume
API rate limits
The WhatsApp Business API enforces rate limits based on your phone number's messaging tier:
- •Tier 1: 1,000 unique customers per 24 hours
- •Tier 2: 10,000 unique customers per 24 hours
- •Tier 3: 100,000 unique customers per 24 hours
- •Tier 4: Unlimited
New numbers start at Tier 1. Your tier increases automatically as you maintain a good quality rating and increase volume gradually.
Message delivery failures
Common causes:
- •Customer phone number not on WhatsApp — verify before sending
- •Template variable mismatch — the number of variables in the API call must match the template
- •Phone number format — always use international format with country code (e.g., +1234567890)
- •Customer has blocked your number — you will receive a
failedstatus callback
Deploy WhatsApp-Enabled Odoo on OEC.sh
Setting up the infrastructure for WhatsApp integration — SSL certificates, webhook endpoints, firewall rules, reverse proxy configuration — is a significant chunk of the work. OEC.sh handles all of that.
Deploy Odoo on any cloud provider through OEC.sh and you get:
- •Valid SSL certificates automatically provisioned and renewed — required for Meta webhook verification
- •Public webhook endpoints properly configured behind a reverse proxy
- •Docker-based deployment that makes adding n8n alongside Odoo straightforward
- •Any cloud provider — DigitalOcean, AWS, Hetzner, or your own infrastructure
Use our Docker Compose Generator to create a production-ready configuration for Odoo + PostgreSQL, then extend it with n8n if you are going the automation route. Or skip the setup entirely and let OEC.sh deploy and manage everything.
Ready to connect WhatsApp to Odoo?
OEC.sh gives you SSL, webhooks, and reverse proxy out of the box — on any cloud provider, with both Community and Enterprise support.
- Free tier available
- No credit card required
- Webhook-ready infrastructure
Frequently Asked Questions
Can I use WhatsApp with Odoo Community Edition?
Yes. While the built-in WhatsApp module is Enterprise-only, you can use OCA's open-source WhatsApp connector, third-party modules from the Odoo Apps Store, or n8n automation to connect WhatsApp to Community Edition. The WhatsApp Business API works regardless of your Odoo edition — the difference is only in how you connect to it.
Do I need a dedicated phone number?
Yes. The WhatsApp Business API requires a phone number that is not currently registered with the regular WhatsApp app or the WhatsApp Business app. You can use a new SIM card, a virtual number from a provider like Twilio, or even a landline (Meta can verify it via voice call). Each WhatsApp Business Account can have multiple numbers.
How much does WhatsApp Business API cost?
The API itself is free to access. You pay per conversation — a 24-hour window of messages with one customer. Prices range from $0.002 to $0.08 per conversation depending on the type (utility, marketing, authentication) and the customer's country. You also get 1,000 free service conversations per month. For most small to mid-size Odoo deployments, expect $20–$100/month in WhatsApp costs.
Can I send bulk messages?
Yes, but with rules. You can send template messages to multiple recipients, but each must have opted in to receive messages from you. Bulk promotional messages use the Marketing conversation category, which has the highest per-conversation cost. Start with small batches and monitor your quality rating. WhatsApp is not designed for mass marketing — think targeted notifications, not email blasts.
Is WhatsApp integration GDPR compliant?
It can be, but you need to handle it carefully. Key requirements: get explicit opt-in consent, document the legal basis for processing (usually legitimate interest or consent), allow easy opt-out, and understand that message content transits through Meta's servers (which affects your data processing agreements). If you are using n8n self-hosted, the workflow logic and Odoo data stay on your server — only the actual WhatsApp messages go through Meta's API.
Can I automate WhatsApp responses?
Partially. Within the 24-hour session window (after a customer messages you), you can send automated free-form replies. For business-initiated messages outside that window, you can only send pre-approved templates. For full chatbot-style automation, use n8n with conditional logic: parse incoming messages, match keywords or use AI classification, and send appropriate template responses. The Enterprise module does not include chatbot logic — you would need to build it with automated actions or use n8n.
Which is better — the Enterprise module or n8n?
It depends on your needs. The Enterprise module is simpler to set up and maintain if you are already on Enterprise — it integrates natively into the Odoo UI, and Odoo S.A. handles updates. n8n is more powerful if you need complex workflows, multi-step automations, or integrations with other services (Slack, email, AI, custom APIs). Many teams use both: the Enterprise module for basic send/receive, and n8n for advanced automation workflows that go beyond what the module supports.
Can I use WhatsApp Web instead of the API?
Technically, some third-party modules offer WhatsApp Web-based integration (using browser automation). Do not use this approach in production. It violates WhatsApp's Terms of Service, is unreliable (breaks when WhatsApp updates their web client), requires keeping a browser session open 24/7, and can get your number permanently banned. Always use the official WhatsApp Business API. The setup is more involved, but it is the only method that is reliable, scalable, and compliant.
Start Sending WhatsApp Messages from Odoo Today
Whether you use the Enterprise module, a third-party connector, or n8n automation — WhatsApp integration transforms how you communicate with customers. Deploy Odoo with all the infrastructure you need, ready to go.
Related Resources
n8n Automation for Odoo
Automate Odoo workflows with n8n — including WhatsApp, Slack, email, and 400+ integrations.
Docker Compose Generator
Generate production-ready Docker Compose files for Odoo deployments.
Odoo Docker Guide
Complete guide to running Odoo in Docker containers.
Deploy Odoo Guide
Step-by-step guide to deploy Odoo on any cloud provider.
AI for Odoo Community
Bridge the AI gap between Community and Enterprise editions.
AI Chatbot for Odoo
Build a self-hosted AI customer support chatbot with n8n and OpenAI.
OEC.sh Pricing
See plans and pricing for managed Odoo deployments.