# How to add WhatsApp to Odoo

> Source: https://netray.co/integrations/odoo-whatsapp
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: Integrations

## Short answer

Odoo Enterprise ships a WhatsApp module that sends approved templates from sale orders, deliveries and other records through the WhatsApp Business Platform. For Community, custom flows or inbound parsing, you call the Cloud API from a server action or small service and post replies back to the record chatter through Odoo's external API.

## System

Odoo

## Capability

whatsapp

## Intro

Most Odoo manufacturing teams already live in Sales, Purchase, Inventory and Manufacturing, while their suppliers, drivers and shop supervisors live in WhatsApp. The gap shows up as people copying delivery dates out of Odoo into chats and typing the answers back by hand.

Closing that gap is mostly a messaging-compliance problem, not an Odoo problem. WhatsApp only lets a business start a conversation with an approved template to an opted-in number, so the design starts with who has consented and which messages are worth templating.

Odoo gives you three realistic paths depending on edition and version: the built-in WhatsApp app (Enterprise, recent versions), a custom module calling the Cloud API, or an external service that watches Odoo and replies through the external API. Which one fits depends on how much logic sits between the message and the record.

## Use Cases

### Delivery order notifications

**Description:** When a stock.picking of type outgoing is validated, send the customer a template with the carrier and tracking reference so the logistics inbox stops answering where-is-my-order calls.

### Quotation and sale order follow-up

**Description:** Send a template with a portal link when a sale.order is confirmed, and capture the customer's quick-reply (accept, call me) as a chatter note on the order.

### Supplier PO confirmation

**Description:** Ping the supplier contact on a confirmed purchase.order and ask for a ship date. A reply with a date updates the expected arrival on the PO line.

### Production and breakdown alerts

**Description:** Notify a supervisor group when a mrp.workorder is blocked or a manufacturing order is late, with the order reference and work center.

### Approval nudges

**Description:** Message a manager when a purchase order exceeds the approval threshold, with quick-reply buttons that call back to Odoo to approve or refuse.

### Payment reminders

**Description:** Template reminders for overdue account.move customer invoices, sent to the contact stored on res.partner with a payment link.

## System Surface

Built-in WhatsApp app (Enterprise, versions from roughly 17 onward; check yours): WhatsApp accounts, templates synced for Meta approval, sending from a record's chatter or an automated action.

External API: XML-RPC at /xmlrpc/2/common and /xmlrpc/2/object, JSON-RPC at /jsonrpc, and on recent versions a newer JSON-2 style endpoint. Authenticate with an API key tied to a user, not a password.

Automated actions (base.automation) and server actions can call a webhook or Python on record events; webhook-style triggers exist on recent versions, older ones need a Python server action or a custom module.

mail.thread chatter: message_post lets an external service log the inbound reply on the right sale.order, purchase.order or stock.picking.

res.partner mobile and phone fields hold the numbers, but consent state is not a standard field; add one or use a custom field.

## How It Works

### Pick the messages worth sending

**Detail:** List 3 to 5 transactional events (delivery validated, PO confirmed, MO late). Each becomes one template. Avoid marketing-style content, which has different pricing and opt-in rules.

### Set up the WhatsApp Business account

**Detail:** Create a Meta business portfolio, register a number that is not already on a personal WhatsApp, and either use Odoo's built-in connection or create a Cloud API app and phone number ID.

### Record consent

**Detail:** Add an opt-in flag and date on res.partner. Only send when it is true, and log where consent was captured (portal checkbox, signed order form).

### Create and submit templates

**Detail:** Use variables for order number, date and link. Submit for approval and keep wording factual. Approval can take minutes to a day.

### Trigger from Odoo

**Detail:** Use the native WhatsApp action where available, or a server action that posts to your service or the Cloud API messages endpoint with the template name and parameters.

### Handle inbound replies

**Detail:** Point the Meta webhook at an HTTPS endpoint, verify the signature, match the sender number to a res.partner, and call message_post on the open record. Route anything ambiguous to a person.

### Log and monitor

**Detail:** Store message ids and delivery status against the record so support can see what was sent, and alert on template rejections or quality drops.

## Example Flows

### Shipment alert with tracking

**Trigger:** A delivery order moves to done in Inventory.

**Steps:**

- Server action reads the sale order, partner and carrier tracking reference.
- It checks the partner's WhatsApp opt-in flag.
- It sends the shipment template with order number and tracking link.
- Delivery status from Meta is written to the chatter.

**Result:** Customer gets the dispatch notice in seconds and the order history shows what was sent.

### Supplier date confirmation

**Trigger:** A purchase order is confirmed and a supplier contact has opted in.

**Steps:**

- Odoo sends the PO template with the line summary and a request for a ship date.
- The supplier replies with a date in free text.
- A small service parses the date and proposes an update to the PO line's expected arrival.
- A buyer approves the change in Odoo before it is written.

**Result:** Fewer chasing emails, and the receipt planning reflects supplier commitments with a human check.

### Late manufacturing order escalation

**Trigger:** A scheduled action finds manufacturing orders past their planned end date.

**Steps:**

- The job groups late orders by work center.
- It messages the production supervisor with the list.
- The supervisor replies with a reason code.
- The reason is posted to each order's chatter.

**Result:** Delay reasons are captured where planners already look.

## On Prem

Odoo itself can run fully on-prem or on your own cloud, but WhatsApp cannot: the Business Platform is hosted by Meta, so message content and phone numbers pass through it. What you can keep local is everything around it. Run the webhook receiver and any reply-parsing model inside your network, expose only a narrow HTTPS endpoint through a reverse proxy, and let the parsing service talk to Odoo over the internal external API. If a language model interprets free-text replies, an open-weight model on your own GPUs keeps supplier and order text out of third-party AI services, even though the WhatsApp leg still transits Meta. For air-gapped plants, WhatsApp is not viable and Odoo's internal Discuss or email is the right channel.

## Security

- Use a dedicated Odoo user and API key for the integration, with access rights limited to the models it touches.
- Verify the Meta webhook signature on every inbound call and reject unsigned requests.
- Never send prices, drawings or export-controlled details over WhatsApp; send a reference and a portal link behind login.
- Keep access tokens in a secrets store, not in Odoo system parameters that many admins can read.
- Log every outbound and inbound message id against the record for audit and dispute handling.

## Options

### Odoo's built-in WhatsApp app

**Fit:** Enterprise customers on a version that includes it, with standard templates tied to records.

**Effort:** Days to configure, plus template approval time.

### Custom Odoo module or server actions calling the Cloud API

**Fit:** Community edition, or custom logic and fields the native app does not cover.

**Effort:** One to three weeks including webhook handling and testing.

### Partner build with Netray

**Fit:** Two-way flows where replies are parsed and written back, optionally with a private model.

**Effort:** Typically a few weeks including consent and approval design.

## Pitfalls

- Sending to numbers without recorded consent, which gets the number flagged and its quality rating lowered.
- Templates rejected for vague or promotional wording; keep them transactional.
- Phone numbers stored without country codes, so matching inbound senders to partners silently fails.
- Treating a chat reply as an authoritative edit to a PO instead of a proposed change.
- Forgetting the 24-hour customer service window, after which only templates can be sent.

## Faq

### Does Odoo Community support WhatsApp?

**Answer:** The built-in WhatsApp app is an Enterprise feature in the versions that include it. On Community you can still integrate by calling the Cloud API from a custom module or an external service, or by using a third-party app. Verify any third-party module against your exact Odoo version before relying on it.

### Can customers reply and have it land in Odoo?

**Answer:** Yes. Meta delivers inbound messages to a webhook. Your handler matches the number to a contact and posts the text to the relevant record's chatter. The native app does this for conversations it started; custom flows need your own matching and routing logic.

### Do we need a WhatsApp Business solution provider?

**Answer:** Not necessarily. You can connect directly to the Cloud API with your own Meta app. A provider helps with onboarding, inbox tooling and support. Check whether your Odoo version's native app expects a direct Meta connection, since that determines what you must set up yourself.

### Is WhatsApp safe for order and pricing data?

**Answer:** Treat it as a notification channel. Send order references and status, and put sensitive detail behind the Odoo portal login. Messages are encrypted in transit but processed by Meta, which matters for regulated or export-controlled data.

### What does it cost to run?

**Answer:** Meta charges per conversation or per template message depending on category and country, and pricing models have changed over time, so check current rates. Transactional utility messages are usually cheap at manufacturing volumes. The larger cost is the build and the consent process.

## Search terms

odoo whatsapp integration, whatsapp for odoo, odoo whatsapp api, odoo whatsapp templates, odoo whatsapp community edition, send whatsapp from odoo sale order, odoo whatsapp delivery notification, odoo whatsapp cloud api, odoo whatsapp purchase order supplier

---
Talk to an engineer: https://netray.co/contact?intent=erp_ai | Machine catalog: https://netray.co/agent/catalog.json
