Odoo WhatsApp: Native WABA Messaging for SMEs from Discuss
Odoo WhatsApp is an Enterprise-only app that connects a WhatsApp Business Account (WABA) to Odoo via Meta’s Cloud API so teams send approved templates from Sales, POS, Events, and Invoicing — and handle replies in Odoo Discuss under WhatsApp’s 24-hour customer service window.
TL;DR — Key takeaways
- Native Odoo Enterprise app (not available in Community).
- Company-initiated: send a template; Discuss opens if the customer replies within 15 days.
- Configure the WABA under WhatsApp → Configuration → WhatsApp Business Accounts.
- Sales: quotation ready, quote expiry nudge (watch Marketing vs Utility).
What is the Odoo WhatsApp app?
Odoo WhatsApp is a native productivity app, documented under Odoo 19.0, that bridges an Odoo database with a WhatsApp Business Account (WABA) using the official WhatsApp Business Cloud API. Once a WABA is connected, users send and receive WhatsApp messages from inside Odoo and create or send pre-approved templates with dynamic placeholders — for example quotations from Sales, receipts or invoices from Point of Sale, tickets from Events, and document-linked notifications from Invoicing.
Two hard constraints shape every project. First, the app is Odoo Enterprise only — it does not ship for Community. Second, it only works with WhatsApp Business Platform accounts. Personal WhatsApp and the consumer WhatsApp Business App are not compatible; a business must move its number onto a WABA before Odoo can use it.
In practice, Odoo WhatsApp is a document-driven channel, not a standalone inbox product. Operators work inside Discuss and the chatter on CRM, sales, and operations records. That is the main reason SMEs already on Odoo prefer the native app over bolting a separate BSP inbox onto the stack: quotes, payments, and support threads stay next to the ERP record that created them.
- Native Odoo Enterprise app (not available in Community).
- Connects a WhatsApp Business Account (WABA) to Odoo via the WhatsApp Business Cloud API.
- Sends templates with dynamic placeholders from Sales, POS, Events, and Invoicing.
- Personal WhatsApp and WhatsApp Business App numbers are not compatible.
- Inbound and outbound conversations surface in Odoo Discuss and record chatter.
Company-initiated vs customer-initiated conversations
Odoo WhatsApp supports two conversation flows, both governed by WhatsApp’s template-and-session model.
In a company-initiated flow, the company starts by sending an approved template to one or more customers. If a customer answers within 15 days, Odoo opens a Discuss chat so operators can continue. If the customer does not respond within 15 days, the next reply re-populates to all operators configured on that channel. Use this pattern for quotation follow-ups, event reminders, and receipt delivery.
In a customer-initiated flow, a customer messages the company’s public WhatsApp number. Odoo opens a group chat that includes every operator responsible for that channel so the right team can pick up the thread. Odoo recommends separate WhatsApp accounts per department — sales, support, finance — so messages route to the operators who should own them.
Regardless of who starts the thread, free-form replies only stay open while WhatsApp’s customer service window is active (see the 24-hour rule below). After that window closes, the next outbound must be another approved template.
- Company-initiated: send a template; Discuss opens if the customer replies within 15 days.
- Customer-initiated: inbound message opens a group chat with all channel operators.
- Odoo recommends one WABA per department for cleaner routing.
- All conversations run through the Odoo Discuss application.
Meta-side setup: business account, app, and tokens
Before anything is configured in Odoo, the WhatsApp Business Account must be prepared on the Meta side. Odoo’s documentation lays out a four-step preparation: create a Meta business account, create a Meta developer account, set up an app and add the WhatsApp product, then test the API connection. Meta provides a test phone number that can send unlimited messages to up to five recipients.
To move from test to production, an Odoo admin adds a real phone number in Meta, adds a payment method — required by Meta’s fraud detection — and generates a permanent System User access token. That token must carry three permissions: business_management, whatsapp_business_messaging, and whatsapp_business_management. Temporary tokens from the API Setup screen expire quickly and should never be used for production Odoo databases.
Plan for business verification and number quality early. Meta’s review of business identity can take days, and a number already registered on personal WhatsApp or the WhatsApp Business App must be migrated off that app before it can join the Cloud API. Practitioners on X consistently report that Meta Business API setup — tokens, app review, and sudden account restrictions — is the main failure mode, not Odoo itself. Budget time for verification and keep a single owner for Meta Business Manager so tokens and webhooks are not orphaned.
- 01Create the Meta accounts and app
Create a Meta business account, a Meta developer account, then an app with the WhatsApp product added in the Meta developer console.
- 02Test the API connection
Use Meta’s test phone number, which can send unlimited messages to up to five verified recipients, to confirm the API connection works.
- 03Add a real number and payment method
Add a real phone number in Meta and add a payment method, which Meta requires for fraud detection before production traffic.
- 04Mint a permanent System User token
Generate a permanent System User access token with business_management, whatsapp_business_messaging, and whatsapp_business_management permissions.
Odoo-side configuration and webhooks
With the WABA ready in Meta, complete the connection inside Odoo. Under WhatsApp app → Configuration → WhatsApp Business Accounts, the admin copies five values from the Meta Developer Dashboard into Odoo: Phone Number ID, Access Token, App ID, WhatsApp Business Account ID, and App Secret. Clicking “Test Connection” validates that Odoo can reach the WABA.
Receiving inbound messages requires a webhook. After a successful Test Connection, Odoo auto-populates a Callback URL and a Webhook Verify Token, which the admin pastes into Meta’s webhook configuration. In Meta’s developer console, open Webhook fields, click Manage, and subscribe to the fields Odoo needs: account_update, message_template_quality_update, message_template_status_update, messages, and template_category_update. Once the webhook is verified, two-way messaging flows through Odoo Discuss.
After the account is live, create or sync templates under WhatsApp → Templates, map each template to the Odoo model and phone field it should use (for example sale.order partner mobile), assign operators, and submit templates for Meta approval from Odoo when the product supports that path. Pre-configured templates for invoices, POS receipts, and event tickets are a good first pack; custom templates cover quote follow-ups and helpdesk status updates.
- Configure the WABA under WhatsApp → Configuration → WhatsApp Business Accounts.
- Paste Phone Number ID, Access Token, App ID, WABA ID, and App Secret from Meta.
- Click “Test Connection” to validate and to generate the Callback URL and Webhook Verify Token.
- Subscribe Meta’s webhook to account_update, message_template_quality_update, message_template_status_update, messages, and template_category_update.
- Sync or create templates, link models and phone fields, then submit for Meta approval.
Templates, dynamic placeholders, and the 24-hour rule
Like every WhatsApp Business integration, Odoo WhatsApp is bound by WhatsApp’s template-vs-session model. Pre-approved templates — with dynamic placeholders for a customer name, quotation total, ticket ID, or event URL — are how a company starts a conversation outside an open session. Odoo drives these templates from its own apps: a Sales quotation, a POS receipt, an Events ticket, or an Invoicing document can each trigger a templated WhatsApp send.
The 24-hour customer service window (CSW) governs free-form replies. Once a customer sends any inbound message (text, media, or button reply), a session opens and free-form messaging is allowed for 24 hours from the most recently received customer message. The clock resets on each new customer message. After the window closes, the company can again only send pre-approved templates. This is WhatsApp platform policy, not an Odoo setting.
Design automation around that split: templates for outbound campaigns, order updates, and first contact; live Discuss threads for anything the customer just replied to. Effective April 1, 2025, WhatsApp deprecated its Template Console Tab and Templates API. New templates must be created through current Meta tooling (and, on the Dynamics/Twilio path, through Twilio’s Content Template Builder), so template lifecycle management is ongoing administration, not a one-time setup task.
Template categories and Meta pricing in 2026
Every business-initiated template falls into a Meta category that drives both policy review and billing. The three template categories are Marketing (promotions, offers, re-engagement), Utility (order updates, receipts, appointment and account notifications tied to a transaction), and Authentication (OTP and login codes). Free-form replies you send after a customer messages you are service messages and only work inside the open 24-hour customer service window.
Effective July 1, 2025, Meta bills the WhatsApp Business Platform on a per-message basis for delivered template messages, not on the older conversation-based model. Rates vary by template category and the recipient’s country calling code. As of November 1, 2024, non-template messages inside an open customer service window are not charged. As of July 1, 2025, utility templates delivered inside an open customer service window are also free. Meta has published further pricing updates for Meta Business Agent, service, and utility messages launching August 1, 2026 and October 1, 2026 — always confirm the live rate card before forecasting volume.
For Odoo SMEs, the practical takeaway is category discipline. Quote follow-ups that pitch a discount are Marketing and need clear opt-in. “Your order SO001 has shipped” is Utility and should stay strictly transactional. Do not mis-categorize marketing copy as utility — Meta re-categorizes templates and can pause low-quality ones. Phone-number quality ratings and messaging limits still apply: spam reports and blocks shrink throughput long before Odoo is the bottleneck.
| Category | What it is for | Typical Odoo trigger | Notes for 2026 billing |
|---|---|---|---|
| Marketing | Offers, promos, re-engagement, cart nudges | CRM campaign, abandoned quote promo | Always charged when delivered; requires prior opt-in |
| Utility | Order, shipping, invoice, appointment updates | Sales confirm, POS receipt, invoice posted | Charged outside CSW; free inside open CSW (since Jul 1, 2025) |
| Authentication | OTP and login verification codes | Portal login / 2FA flows (if used) | Per-message rates; volume tiers available |
| Service (non-template) | Free-form agent replies after the user writes | Discuss reply on inbound WhatsApp | Only inside 24-hour CSW; free under current non-template rules |
Example templates for sales, support, and operations
Start with a small, approved pack rather than dozens of half-used templates. Each template needs a clear category, language, body variables, and optional header/footer or buttons. In Odoo, link the template to the model and phone field, then send from the record or via automated actions once approval lands.
Quote follow-up (Marketing or Utility depending on whether it is pure status vs promo): “Hi {{1}}, your quotation {{2}} for {{3}} is ready. Reply on WhatsApp if you have questions, or open it here: {{4}}.” Ship/order update (Utility): “Hi {{1}}, order {{2}} is confirmed. Total {{3}}. We will message you when it ships.” Invoice reminder (Utility if purely transactional): “Hi {{1}}, invoice {{2}} for {{3}} was due on {{4}}. Pay securely: {{5}}.” Helpdesk update (Utility or service once the customer replied): “Hi {{1}}, ticket {{2}} is now {{3}}. Reply here if you need more help.”
Keep buttons useful — “View quote”, “Track order”, “Pay invoice” — and map variables from Odoo fields only (partner name, order name, amount_total, portal URL). Never paste unapproved free text into a bulk send outside a session window; Meta will reject or rate-limit the number.
- Sales: quotation ready, quote expiry nudge (watch Marketing vs Utility).
- Operations: order confirmed, shipped, delivered, POS receipt.
- Finance: invoice posted, payment received, polite overdue utility reminder.
- Support: ticket created, status changed, resolution summary after inbound.
- Events: ticket delivery and reminder templates with dynamic event links.
Opt-in, when not to use WhatsApp, and operational limits
Meta’s WhatsApp Business Messaging Policy requires opt-in before you message people: the recipient must have given a mobile number and confirmed they want subsequent messages or calls from your business. Opt-in must clearly name the business and state that the person is opting in to receive communication from that business, and must comply with local law (including marketing consent rules such as GDPR/CASL where they apply).
Supported methods include website forms, SMS/email capture with clear WhatsApp disclosure, in-person checkbox flows, and QR codes that open a WhatsApp conversation. Log opt-in source, timestamp, and phone number on the Odoo partner (or a related consent model) so sales teams can prove permission when Meta or a regulator asks. Make opt-out easy — a simple “STOP” reply process and an operator playbook to suppress Marketing templates.
WhatsApp is a poor fit for cold bulk blasts, scraped lead lists, or high-volume promotional dumps that would normally go through email marketing tools. Use email or ads for cold reach; use WhatsApp for high-intent, opted-in transactional and service threads where open rates matter. Also avoid treating Odoo WhatsApp as a free SMS replacement for every notification — template category mix, quality rating, and per-message rates make noisy automation expensive and risky. Partners selling Odoo + WhatsApp in 2026 still win on quotes and support speed, but Meta policy compliance remains the failure mode when teams skip opt-in and category design.
- Collect affirmative opt-in that names your business and WhatsApp as a channel.
- Store consent on the partner record before Marketing templates go live.
- Do not cold-message scraped lists or run unsolicited bulk promos.
- Prefer Utility templates for transactional ERP events; reserve Marketing for true offers.
- Monitor number quality and template pauses — volume without quality gets throttled.
The Dynamics 365 equivalent: a Twilio-mediated channel
Microsoft Dynamics 365 takes a different architectural path to the same WhatsApp Business Platform. The D365 WhatsApp channel is part of Omnichannel for Customer Service and Dynamics 365 Contact Center, and it applies to Contact Center embedded, Contact Center standalone, and Customer Service. Unlike Odoo’s direct-to-WABA connection, Microsoft’s documented channel integrates WhatsApp through Twilio as the Business Solution Provider, wired into the Copilot Service admin center.
Setup in D365 means fetching the Twilio ACCOUNT SID and AUTH TOKEN from the Twilio Console, creating a messaging account in Copilot Service admin center → Channels → Messaging accounts → New account → WhatsApp, attaching the Twilio-connected WhatsApp number (prefixed with “+”), and copying the Twilio inbound URL as the callback. Prerequisites include channels provisioned in the environment, a Twilio account (subscription or sandbox), the Twilio number connected to a WhatsApp Business Profile, and — for new Twilio accounts — disabling a security setting that blocks media files.
On the agent side, an incoming WhatsApp request in D365 opens a session with a communication panel where the representative sees customer information, can use call and visual-engagement options, monitors real-time sentiment, follows scripts, and uses Smart Assist cards, productivity tools, and knowledge-article lookup. The same 24-hour session window governs free-form messaging, and template messages are sent through Twilio using pre-approved templates — each localized variant must be approved separately by WhatsApp. After the April 1, 2025 deprecation of the WhatsApp Template Console, D365 templates are managed through Twilio’s Content Template Builder and referenced by Content Template SID rather than template name.
Microsoft has also flagged a June 2026 WhatsApp change: WhatsApp is introducing usernames and a Business-Scoped User ID, after which phone numbers may no longer be sent when a user adopts a WhatsApp username. Because D365 routing rules, Power Automate flows, and AI-agent context variables commonly key off the customer’s phone number, D365 customers should review any logic that depends on phone-number identification ahead of the rollout. Odoo teams that store partner mobile as the only WhatsApp key should plan the same review.
| Dimension | Odoo WhatsApp | Dynamics 365 WhatsApp |
|---|---|---|
| Edition | Odoo Enterprise only | Omnichannel for Customer Service / Contact Center / Customer Service |
| Connection model | Direct to WhatsApp Business Account (Cloud API) | WhatsApp through Twilio (BSP), or Digital Messaging add-in |
| Admin surface | WhatsApp app → Configuration → WhatsApp Business Accounts | Copilot Service admin center → Channels → Messaging accounts |
| Conversation surface | Odoo Discuss (group chats with operators) | Agent communication panel with sentiment, scripts, Smart Assist |
| Outbound pattern | Templates from Sales, POS, Events, Invoicing | Templates through Twilio (Content Template SID after Apr 1, 2025) |
| Routing | Per-department WABA recommended | Omnichannel routing, queues, workstreams |
| Best fit | ERP-centric SMEs sending document-driven messages | Contact-center teams needing agent tooling and queues |
When each platform fits an SME
For an SME already running Odoo as its ERP and CRM, the native WhatsApp app is the natural fit: templates fire directly from the Sales, POS, Events, and Invoicing documents the team already uses, and replies land in Discuss alongside live chat and other channels. The trade-off is that the app is Enterprise-only and the team must own WABA setup, template approval, opt-in logging, webhook maintenance, and Meta billing.
For an SME centered on customer service — especially one already licensed for Dynamics 365 Customer Service or Contact Center — the D365 WhatsApp channel is the better fit because it slots into Omnichannel routing, the agent communication panel, sentiment analysis, and Smart Assist. The trade-off is the added Twilio dependency (or the Digital Messaging add-in) and the need to manage template lifecycles through Twilio’s Content Template Builder.
Because Flectic implements both platforms, we help SMEs choose on merit — sales-and-operations teams tend to benefit from Odoo’s document-driven messaging, while contact-center teams tend to benefit from D365’s agent experience. Either path is a configured, governed WhatsApp Business deployment, not a free broadcast tool: Meta’s commerce and messaging policies, the template-approval process, opt-in requirements, and the 24-hour session rule apply to both.
Frequently asked questions
Does Odoo WhatsApp work in Odoo Community edition?
No. Odoo WhatsApp is an Odoo Enterprise app. It does not work in Odoo Community edition. You also need a WhatsApp Business Account (WABA) — personal WhatsApp accounts and the consumer WhatsApp Business App are not compatible. Community users typically look at third-party Odoo modules or an automation layer (for example n8n) still talking to Meta’s Cloud API.
What is the 24-hour session rule in Odoo WhatsApp?
It is WhatsApp’s platform policy, not an Odoo setting. Once a customer messages your business, a 24-hour customer service window opens from that last inbound message. Inside the window you can send free-form replies. After it closes you can only re-open contact with pre-approved templates. The window resets each time the customer writes again.
What are WhatsApp Marketing, Utility, and Authentication templates?
They are Meta’s three template categories. Marketing covers promotions and re-engagement and needs prior opt-in. Utility covers transactional updates such as orders, shipping, and invoices. Authentication covers OTPs and login codes. Service messages are free-form replies inside the 24-hour window, not a separate template type you submit for approval.
How does WhatsApp Business API pricing work in 2026?
Since July 1, 2025 Meta charges per delivered template message by category and recipient country, replacing the older conversation-based model. Non-template messages inside an open customer service window are free under Meta’s current rules, and utility templates inside that window are free as of July 1, 2025. Further pricing updates for service and utility are scheduled around August 1 and October 1, 2026 — check Meta’s live rate cards before budgeting.
How does Odoo WhatsApp compare to the Dynamics 365 WhatsApp channel?
Odoo connects directly to a WhatsApp Business Account and surfaces conversations in Odoo Discuss, with templates fired from ERP documents. Dynamics 365 routes WhatsApp through Twilio (or a Digital Messaging add-in) inside Omnichannel for Customer Service, with an agent communication panel, sentiment, and Smart Assist. Odoo fits sales-and-operations teams; D365 fits contact-center teams.
What changed with WhatsApp templates on April 1, 2025?
WhatsApp deprecated its Template Console Tab and Templates API. New templates must be created in the current Meta tooling (and, for the Dynamics 365 Twilio path, in the Twilio Content Template Builder using the Content Template SID instead of the template name). Plan template lifecycle management as ongoing WhatsApp administration.
Do I need customer opt-in before sending Odoo WhatsApp templates?
Yes for policy-compliant business messaging. Meta requires that people give you their mobile number and opt in to receive subsequent messages or calls from your business, with the business named clearly. Marketing templates especially need prior consent. Log opt-in on the Odoo partner and honor opt-outs promptly.
Do I need a payment method and a permanent token to go live?
Yes for production. Meta requires a payment method for fraud detection before you send real traffic, and Odoo needs a permanent System User access token with business_management, whatsapp_business_messaging, and whatsapp_business_management permissions. Meta’s test phone number only sends to up to five verified recipients.
Should SMEs use WhatsApp for bulk marketing instead of email?
Not as a cold bulk channel. WhatsApp works best for opted-in transactional updates and high-intent service chats. Cold scraped lists, unsolicited promos, and noisy blasts hurt quality rating, risk number limits, and burn per-message Marketing spend. Use email or ads for cold reach; use Odoo WhatsApp for document-driven, permissioned messages.
Sources & methodology
18 citedEvery pricing figure and statistic on this page is traced to a primary or vendor source with a verification date. Where partner pages are cited, their platform bias is disclosed in-line.
- 01Odoo WhatsApp is documented under Productivity in the Odoo 19.0 documentation; it is Enterprise-only and integrates a WhatsApp Business Account via the WhatsApp Business API.↗odoo.com · verified Direct primary source — Odoo 19.0 official documentation page for the WhatsApp app.
- 02Odoo WhatsApp is only compatible with WhatsApp Business Platform Accounts; personal WhatsApp and WhatsApp Business App accounts are not compatible.↗odoo.com · verified Stated explicitly on the same Odoo 19.0 WhatsApp documentation page.
- 03Company-initiated sends open a Discuss chat if the customer replies within 15 days; if no reply within 15 days the next reply re-populates to all configured operators; customer-initiated messages open a group chat with all channel operators.↗odoo.com · verified Conversation-flow description on the Odoo 19.0 WhatsApp documentation page.
- 04Meta setup requires a business account, developer account, app with the WhatsApp product, and API testing; Meta's test number sends to up to five recipients. Production requires a real phone number, payment method, and permanent System User token with business_management, whatsapp_business_messaging, whatsapp_business_management.↗odoo.com · verified Setup and production sections of the Odoo 19.0 WhatsApp documentation page.
- 05Odoo webhook subscription fields include account_update, message_template_quality_update, message_template_status_update, messages, and template_category_update.↗odoo.com · verified Webhook configuration section of the Odoo 19.0 WhatsApp documentation page.
- 06Odoo product page describes pre-configured and custom templates for invoices, event tickets, POS receipts, and messaging from inside the Odoo database.↗odoo.com · verified Official Odoo WhatsApp product/overview page.
- 07Effective July 1, 2025, Meta charges on a per-message basis for delivered template messages; rates vary by template category and recipient country calling code.↗developers.facebook.com · verified Meta for Developers — Pricing on the WhatsApp Business Platform (updated Jul 1, 2026).
- 08Template categories are Marketing, Utility, and Authentication; non-template messages are free within an open customer service window as of November 1, 2024; utility templates in response to users inside an open CSW are free as of July 1, 2025.↗developers.facebook.com · verified Meta pricing documentation sections on message template categories and charge examples.
- 09Pricing updates for Meta Business Agent, service, and utility messages launch on August 1, 2026 and October 1, 2026.↗developers.facebook.com · verified Meta pricing page notice for upcoming service/utility/agent pricing updates.
- 10When a user messages a business, a 24-hour customer service window opens during which free-form service messages can be sent.↗business.whatsapp.com · verified WhatsApp Business Platform pricing product page describing the 24-hour customer service window.
- 11Businesses must obtain opt-in that clearly states the person is opting in to receive communication from the named business, and must comply with applicable law.↗developers.facebook.com · verified Meta for Developers — Get opt-in for WhatsApp requirements.
- 12WhatsApp Business Messaging Policy requires mobile number plus opt-in permission before initiating conversations with approved message templates.↗whatsappbusiness.com · verified WhatsApp Business Messaging Policy (business messaging terms).
- 13The D365 WhatsApp channel is part of Omnichannel for Customer Service / Dynamics 365 Contact Center and integrates WhatsApp through Twilio with Copilot Service admin center; the 24-hour window restricts free-form replies after which only approved templates are allowed.↗learn.microsoft.com · verified Microsoft Learn D365 WhatsApp channel configuration page.
- 14Effective April 1, 2025, WhatsApp deprecated its Template Console Tab and Templates API; D365 customers must manage templates through Twilio's Content Template Builder and reference them by Content Template SID.↗help.twilio.com · verified Twilio Help article on upgrading WhatsApp templates to Content Templates.
- 15From June 2026, WhatsApp is introducing usernames and a Business-Scoped User ID, after which phone numbers may not be sent when a user adopts a WhatsApp username.↗developers.facebook.com · verified Meta for Developers — Business-scoped user IDs documentation.
- 16The 24-hour session window governs free-form messaging in D365; after the window, only pre-approved templates can be sent.↗learn.microsoft.com · verified Microsoft Learn D365 WhatsApp representative-experience page.
- 17Practitioners report Meta WhatsApp Business Cloud API onboarding and account restrictions as a major operational pain point for ERP-linked WhatsApp projects.↗x.com · verified X post (May 2026) describing Meta developer-account blocks affecting Odoo + WhatsApp Cloud API custom CRM work.
- 18Building on Meta’s WhatsApp APIs remains operationally fragile (shifting onboarding paths, blocks, weak escalation).↗x.com · verified X post (Jul 2026) from Chatwoot founder on Meta API friction and Embedded Signup restrictions.
Related services & solutions
Book an ERP Readiness Call
Flectic implements both Odoo and Microsoft Dynamics 365, so we help you choose the WhatsApp path that fits your team — document-driven messaging in Odoo, or contact-center routing in D365. Our AI-Accelerated Delivery is designed to deliver up to 3x faster, and we serve SMEs across Canada, the UK, and the USA. Book an ERP Readiness Call and we will map the right WhatsApp integration to your sales, service, and operations workflow.