Odoo WhatsApp integration: what it does and does not do
Odoo ships a real WhatsApp module rather than a partner add-on, and it connects to your own Meta account rather than a reseller's. Two things to know before you plan around it: it is Enterprise-only, and its coverage is narrower than the ERP is.
Short answer. The WhatsApp module is Enterprise-only and does not exist in Odoo Community. It runs on Meta's Cloud API using your own WABA, so you pay Meta's rate directly. Documented coverage is Sales, Point of Sale and Events.
Enterprise only
Odoo's documentation states it plainly: WhatsApp is an Odoo Enterprise application and does not work in Odoo Community edition. If you are on Community, your options are a third-party module from the Odoo Apps store or driving WhatsApp from outside Odoo against its API. Budget for that before you promise it internally.
Your own WABA, which matters
Unlike integrations where the vendor becomes your BSP, Odoo connects to your WhatsApp Business Account on Meta's Cloud API. Practical consequences:
- You pay Meta's per-message rate directly — around AED 0.183 for marketing and AED 0.058 for utility in the UAE — with no reseller markup.
- The number stays yours. Changing ERP does not mean migrating a phone number.
- You can run other tools against the same WABA, within Meta's rules.
- You own the Meta app, so you also own its maintenance: token rotation, webhook health, app review.
The setup, concretely
Odoo's documented path, in order:
- Meta business account and developer account.
- A Meta app of type Business, with WhatsApp added as a product.
- Four credentials into Odoo: Phone Number ID, Access Token, App ID, Account ID.
- The App Secret from Meta's Basic settings.
- A connection test from Odoo, which then generates the Callback URL and Webhook Verify Token.
- Webhook configuration, subscribing to five fields:
account_update,message_template_quality_update,message_template_status_update,messages, andtemplate_category_update. - Register the business phone number with Meta — name, website, country, timezone, category.
Subscribe to all five. The two people skip are
message_template_quality_update and template_category_update, and they are the two that warn you
before something expensive happens: a template's quality degrading, or Meta silently recategorising a utility template as
marketing — which since 9 April 2025 results in approval as marketing rather than rejection, at roughly
three times the cost.
Templates
Templates are created in Odoo with dynamic placeholders and sync bidirectionally with Meta, so you are not maintaining two lists. They still require Meta approval before use, and the documented examples cover quotations, invoices, receipts and event tickets.
Two operational notes. Odoo documents a 15-day conversation window for company-initiated messaging before a new template send is required — that is Odoo's own thread behaviour and should not be confused with Meta's 24-hour customer service window, which is what governs whether free-form replies are free. And test numbers reach a maximum of five recipients, which is enough to validate the plumbing and not enough to pilot with real customers.
What it covers, and what it does not
| Job | Native Odoo module |
|---|---|
| Send a quotation from Sales | Yes |
| Send a POS receipt or invoice | Yes |
| Send an event ticket | Yes |
| Receive and reply in Discuss | Yes |
| Segmented marketing broadcasts | Not its purpose |
| Chatbot / automated qualification | No |
| Agent routing and assignment rules | No |
| Campaign analytics | No |
This is not a criticism. Odoo built a transactional messaging channel for an ERP, and that is what it is. If you also want marketing, lead qualification or routing, that is a second system against the same WABA — which Odoo's architecture allows precisely because it did not take your number hostage.
UAE notes
- Arabic templates are separate submissions. Plan the bilingual set from the start rather than adding Arabic after go-live.
- Tax invoices still have to be compliant documents. Odoo generates them correctly; WhatsApp only delivers them. See invoices and receipts.
- Number format. Store UAE numbers in full international format in Odoo, or sends fail against records that look fine on screen.
Adjoltz builds these flows for UAE brands on Meta's official Cloud API — correct template categories, the buttons, and the inbox behind them. Messages at Meta's rate with zero markup, from $149/month.
Frequently asked questions
Does Odoo have a built-in WhatsApp integration?
Yes, but only in Odoo Enterprise. The documentation states that WhatsApp is an Enterprise-only application and does not work in Odoo Community edition, so Community users need a third-party module from the Apps store or must drive WhatsApp from outside Odoo.
Does Odoo's WhatsApp module use my own WhatsApp Business Account?
Yes. It connects to Meta's Cloud API using your own WABA, so you pay Meta's per-message rate directly with no reseller markup and the phone number stays yours. You also own the Meta app, which means you own token rotation and webhook health.
Which webhook fields does Odoo require?
Five: account_update, message_template_quality_update, message_template_status_update, messages, and template_category_update. The two most often skipped are the quality and category updates, and they are the ones that warn you before a template degrades or gets silently recategorised from utility to marketing at roughly three times the cost.
What can Odoo's WhatsApp module not do?
It is a transactional channel for an ERP, so it covers quotations from Sales, receipts and invoices from Point of Sale, event tickets, and replying inside Discuss. It does not provide segmented marketing broadcasts, chatbots, agent routing rules or campaign analytics, which would be a second system running against the same WhatsApp Business Account.
