How to Connect Odoo to WhatsApp: Step-by-Step Guide

Table of Contents

  1. Why Connect Odoo + WhatsApp?
  2. Prerequisites
  3. Method 1: Using n8n
  4. Method 2: Using Make.com
  5. Method 3: Direct API Integration
  6. Common Workflows to Build
  7. Troubleshooting
  8. FAQ

Why Connect Odoo + WhatsApp?

Odoo is a powerful ERP system that manages your sales, inventory, invoices, and operations. WhatsApp is where your customers actually are. Connecting them together creates magic: when an order is placed in Odoo, your customer instantly receives a WhatsApp confirmation. When payment is due, they get a reminder. When their shipment leaves the warehouse, they know exactly when to expect it.

Without this integration, someone must manually send messages or rely on email (which customers often ignore). The integration makes your business more professional, responsive, and customer-centric—all while saving hours of manual work.

Prerequisites: What You'll Need

Before diving into the setup, ensure you have these in place:

Method 1: Using n8n (Free, Self-Hosted)

n8n is an open-source automation platform that's essentially free if you self-host it. It's excellent for technical teams and offers unlimited workflows.

Step 1: Install n8n

If you don't have n8n yet, install it using Docker (easiest):

docker run -it --rm --name n8n -p 5678:5678 -v ~/.n8n:/home/node/.n8n n8nio/n8n

Then access n8n at http://localhost:5678. Create your account and log in.

Step 2: Create a New Workflow

In n8n, click "New" to create a new workflow. Name it "Odoo to WhatsApp Order Notification" or similar. This is your automation.

Step 3: Add the Webhook Trigger

Click the "+" button and search for "Webhook". Select "Webhook" as the trigger. This creates a unique URL that Odoo will send data to when orders are created.

Copy the webhook URL (it looks like https://your-domain.com/webhook/abc123xyz). We'll use this in Odoo.

Step 4: Set Up Odoo to Send Data to the Webhook

In Odoo, go to Automation → Automated Actions. Create a new automated action:

In the Python code section, add code that makes an HTTP POST request to your n8n webhook:

import requests import json data = { "order_id": record.name, "customer_name": record.partner_id.name, "customer_phone": record.partner_id.mobile or record.partner_id.phone, "amount": record.amount_total, "order_date": str(record.date_order) } requests.post("https://your-webhook-url.com/webhook/abc123xyz", json=data)

Step 5: Process the Data in n8n

Back in n8n, after the webhook, add a "Format" node to structure the data nicely. Then add the "WhatsApp" node (search for it in the nodes directory).

Configure the WhatsApp node:

Step 6: Deploy and Test

Click "Activate" in n8n to turn on the workflow. Create a test order in Odoo and verify that the customer receives a WhatsApp message. If they don't, check the execution logs in n8n to see what went wrong.

Method 2: Using Make.com (Visual, Cloud-Based)

Make.com (formerly Integromat) is more user-friendly and cloud-based, so no installation required. The downside is it's not free, but the pricing is reasonable for small to medium businesses.

Step 1: Create a Make.com Account

Sign up at make.com, create a team, and start a new scenario.

Step 2: Add Odoo Trigger

Search for "Odoo" and select it as a trigger. Choose "Watch Records" and configure it to watch for new Sales Orders. Set the polling frequency (how often Make checks Odoo) to every 5 or 10 minutes.

Step 3: Add WhatsApp Module

Add another module and search for "WhatsApp". You may need to use the HTTP module if WhatsApp doesn't have a native connector. Select "Send Message" and authenticate with your WhatsApp API token.

Step 4: Map Fields

Connect Odoo fields to WhatsApp fields. For example:

Step 5: Test the Scenario

Click "Run once" to test. Make will pull the latest order from Odoo and send a WhatsApp message. If successful, turn on the scenario.

Method 3: Direct API Integration (For Developers)

If your team has Python developers, you can build a custom integration directly between Odoo and WhatsApp without a third-party platform.

Create an Odoo Module

In your Odoo installation, create a custom module that hooks into the Sales Order creation. When an order is created, it calls the WhatsApp API directly.

from odoo import models, fields import requests class SalesOrder(models.Model): _inherit = 'sale.order' def action_confirm(self): res = super().action_confirm() self._send_whatsapp_notification() return res def _send_whatsapp_notification(self): phone = self.partner_id.mobile or self.partner_id.phone message = f"Hi {self.partner_id.name}, your order {self.name} for AED {self.amount_total} is confirmed!" payload = { "messaging_product": "whatsapp", "to": phone, "type": "text", "text": {"body": message} } requests.post( "https://graph.instagram.com/v17.0/YOUR_PHONE_NUMBER_ID/messages", json=payload, headers={"Authorization": f"Bearer YOUR_API_TOKEN"} )

Common Workflows to Build

Workflow 1: New Order Confirmation

Trigger: Order created in Odoo → Action: Send WhatsApp confirmation to customer

This is the most basic workflow. Every new order immediately triggers a WhatsApp message to the customer's phone number in Odoo.

Workflow 2: Invoice Payment Reminder

Trigger: Invoice created AND payment due date is approaching → Action: Send WhatsApp reminder

Use a scheduled action in Odoo (daily or weekly) to find invoices due in the next 3 days and send payment reminders via WhatsApp.

Workflow 3: Delivery Status Update

Trigger: Delivery/Shipment marked as done → Action: Send WhatsApp notification with tracking details

When products leave the warehouse, notify the customer: "Your order is on its way! Track it here: [link]"

Workflow 4: Customer Feedback Request

Trigger: Delivery marked complete (7 days later) → Action: Send WhatsApp feedback request

Automatically ask customers for feedback a week after delivery. This is non-intrusive and timing is perfect.

Troubleshooting Common Issues

WhatsApp Messages Not Sending

Possible Causes:

Odoo Not Sending Webhooks

Check:

Message Template Issues

WhatsApp now requires pre-approved message templates for business messages in some regions. If you get an error about templates, go to your WhatsApp Business Manager and create an approved template for order confirmations, payment reminders, etc.

Frequently Asked Questions

Which method is cheapest?

n8n self-hosted is essentially free (you only pay for server costs). Make.com has a free tier but limited executions. If you don't want to manage servers, Make.com is worth the small cost.

Can I send rich media (images, PDFs) via WhatsApp?

Yes! All three methods support media. You can send invoice PDFs, product images, etc. Just reference the file URL in your message.

What if a customer's phone number is missing in Odoo?

Your automation should handle this gracefully. Add a condition: "Only send if phone number exists." Otherwise, the message will fail silently or cause an error.

Can I reply to customer messages automatically?

Yes, but use caution. Set up a rule like: "If customer says 'status', reply with order status." But for complex questions, route to a human agent. Automation works best for common, predictable inquiries.

How do I track whether customers read the message?

WhatsApp provides read receipts. The automation platforms have the ability to log these. Store delivery and read status in Odoo for analytics.

Need Help Setting Up Odoo + WhatsApp Integration?

Our team specializes in Odoo integrations and WhatsApp automation for UAE businesses. We can set this up for you in days, not weeks.

Book a Free Consultation