| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Lines of code | 5354 |
| Technical Name |
ms_whatsapp_integration |
| License | OPL-1 |
| Website | https://www.mountsol.com |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Lines of code | 5354 |
| Technical Name |
ms_whatsapp_integration |
| License | OPL-1 |
| Website | https://www.mountsol.com |
| Versions | 18.0 19.0 |
WhatsApp Cloud API Integration
Connect Odoo to the Meta WhatsApp Cloud API. Send templates, receive customer messages, run an interactive chatbot — all from the native Discuss inbox.
Why Choose This Module?
Everything you need to run conversational commerce on WhatsApp from inside Odoo.
|
📲
Direct Meta Cloud APIFirst-class integration with the official Graph API. No third-party BSP middleman, no markup. |
💬
Native Discuss InboxInbound WhatsApp messages become Discuss channels. Agents reply from the same UI they already use. |
📝
Template ManagementCreate, sync, and submit templates to Meta directly from Odoo. Track Approved / Pending / Rejected in real time. |
|
🤖
Interactive ChatbotVisual script builder with Interactive and Action steps. Route to CRM Lead, Helpdesk Ticket, or a human operator. |
👥
Multi-Company & Multi-UserFilter accounts by company. Auto-add default users to every new WhatsApp channel. |
🔒
HMAC Webhook VerificationEvery incoming webhook is verified using the App Secret. Tampered requests are rejected before any business logic runs. |
Send Every Message Type
Full support for all four WhatsApp conversation categories.
|
📦
UtilityOrder updates, receipts, shipping notifications |
📢
MarketingPromotional offers, broadcast campaigns |
🔑
AuthenticationOne-time passwords (OTP), 2FA codes |
💬
ServiceCustomer-initiated conversations, 24h window |
Configuration Guide
Follow these 11 steps to connect your Meta WhatsApp Business Account with Odoo.
Step 1
Open Your Meta AppGo to developers.facebook.com/apps and open the Business-type app you created in the Meta Business Suite. The left sidebar gives you everything: App settings for the App Secret, WhatsApp → API Setup for the rest. |
|
|
Step 2
Add the WhatsApp ProductOn the App Dashboard, scroll to Add products to your app and click Set up on the WhatsApp card. Meta automatically creates a free test WABA, a test phone number, and adds a WhatsApp section to your left sidebar (API Setup, Configuration, Phone Numbers, etc.). |
Step 3
Get Credentials from API SetupOn WhatsApp → API Setup, copy the five red-boxed values: App ID, Test phone number, Phone Number ID, WhatsApp Business Account ID, and Access Token. Grab the App Secret separately from App settings → Basic. |
|
|
Step 4
Configure Sending in OdooIn Odoo, go to WhatsApp → Configuration → WhatsApp Business Accounts → New. Paste the six credentials into the Sending Messages section, then click Test Credentials followed by Synchronize Templates. |
Step 5
Set Callback URL & Verify Token
Scroll to Receiving Messages. Set Callback URL to
|
|
|
Step 6
Verify the Webhook on MetaBack on Meta App → WhatsApp → Configuration → Webhooks. Paste the same Callback URL and Verify Token from Step 5, then click Verify and save. A green tick confirms the handshake succeeded. |
Mandatory Webhook Fields
On the Meta Webhook fields page, every row highlighted in red below must be set to Subscribed. Missing any of these will break the matching Odoo flow — no inbound messages, no template sync, no account alerts.
1. Account Events
account_alerts, account_review_update, account_update — keep Odoo informed about WhatsApp Business Account health, policy reviews, and configuration changes.
2. Calls
calls — required for the WhatsApp Business Calling product (voice/video). Skip only if your account does not use calling.
3. Messages & Templates — the core of the integration
message_template_components_update, message_template_quality_update,
message_template_status_update, messages — without these, no
customer chat reaches Discuss and no template approval status flows back into Odoo.
|
Step 8
Create a Template in OdooGo to WhatsApp → Templates → New. Pick the model the template applies to (e.g., Sales Order), choose a category (Utility, Marketing, or Authentication), write the body, and attach any header/buttons. |
Step 9
Map Template Variables
On the Variables tab, map each |
|
|
Step 10
Track Template ApprovalMeta usually decides within minutes. Status changes flow back automatically via the message_template_status_update webhook. See the live list on WhatsApp Manager → Message templates. |
Templates submitted from Odoo are auto-approved
Once you click Submit for Approval on a template in Odoo, the rest is automatic.
Meta runs its own review (typically a few seconds to a few hours) and then pushes the verdict
to your Odoo instance via the message_template_status_update webhook —
Odoo updates the template's Status field on its own. No manual Approve button,
no polling, no copy-pasting of Meta IDs is required.
End-to-end flow
- In Odoo, open the template and click Submit for Approval. The module calls Meta's
/message_templatesendpoint and stores the returned template ID. - Meta queues the template for review — status becomes Pending in both Meta and Odoo.
- When Meta's review completes (approved, rejected, paused, etc.), Meta fires the
message_template_status_updatewebhook to your callback URL. - The module's
/whatsapp/webhook/controller verifies the signature with your App Secret, matches the Meta template ID to the local record, and writes the new Status field. If Meta rejected, the rejection reason is posted on the template's chatter. - The template is now ready to send the next time you open the WhatsApp composer — no extra clicks.
Meta's template list reflects the same status that flows back to Odoo via the webhook.
Enable the webhook subscription (one-time setup)
- Open Meta Developer Console → your App → WhatsApp → Configuration.
- In the Webhook section confirm the Callback URL points at your Odoo's
https://your-odoo-domain.com/whatsapp/webhook/and the Verify Token matches the one on the Odoo WhatsApp Account form. (See Step 6 above.) - Click Manage next to Webhook fields — the subscription manager opens.
- Locate message_template_status_update in the list and toggle Subscribe. While you're there also enable
message_template_components_updateandmessage_template_quality_updateso component changes and Meta's quality rating sync back too. - Click Done. Meta now sends every future template state change to Odoo automatically.
All four highlighted fields must show Subscribed.
Note: Meta does not expose any API that lets external systems force-approve a template. The webhook tells you when Meta has approved — the decision itself stays with Meta.
Step 11
Build the Chatbot ScriptIn WhatsApp → Chatbot, design a tree of Interactive and Action steps. Route customers to CRM Lead, Helpdesk Ticket, or hand off to a live operator — all from a visual builder. |
|
See It In Action
A complete end-to-end flow — from the customer's first WhatsApp message, through the chatbot menu, to the auto-generated CRM lead and the sales order confirmation sent back on WhatsApp.
What the Customer Sees on WhatsApp
A real chatbot conversation flowing through the menu options.
1. Customer says “Hey” — chatbot greets and offers a menu. |
2. Tapping “View Options” shows the interactive list. |
3. Customer picks Place Order from the menu. |
4. Asking for Business Hours triggers an instant chatbot reply. |
5. The customer receives the order confirmation with a tracking link — sent right from Odoo. |
|
Inside Odoo — The Agent View
Every chatbot interaction is captured in Discuss, CRM, and Sales — ready for follow-up.
A. Live Conversation in Discuss
Each WhatsApp contact becomes a Discuss channel. Agents reply from the same inbox they already use for internal chat.
B. WhatsApp Button on Sales OrdersNative WhatsApp button appears on every Sales Order — one click sends the template to the contact.
|
C. Send WhatsApp WizardPick the template, attach the PDF, preview the rendered message — all in one wizard.
|
D. Auto-Generated CRM LeadWhen a customer picks Place Order, the chatbot creates a CRM Lead with contact info ready for sales follow-up.
|
E. CRM Pipeline Fills UpMultiple WhatsApp-sourced leads land in the pipeline — each one traceable back to the original chat.
|
F. CRM Lead Created Notification
The chatbot logs an inline note in the Discuss channel the moment it spawns a CRM Lead — full audit trail with zero extra clicks.
G. The Full Round-Trip
Customer message → chatbot reply → CRM Lead → sales order confirmation — the entire journey is visible in a single Discuss thread.
How It Works
|
1
Connect WABAPaste your six Meta credentials into the Odoo WhatsApp Account form. |
2
Verify Webhook
Point Meta at your public |
3
Author TemplatesCreate & sync templates from Odoo. Meta auto-approves most within minutes. |
4
Chat & AutomateReply from Discuss, run the chatbot, capture leads — all in one inbox. |
Technical Information
|
Odoo Version
19.0
|
License
OPL-1
|
Category
Productivity / WhatsApp
|
Dependencies
mail, phone_validation, base_automation
|
phonenumbers. Install with sudo apt install python3-phonenumbers (or pip install phonenumbers).
Need Help or Customization?
We're here to help with installation, configuration, and any custom requirements.
Visit mountsol.com →Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module