Odoo ships its own WhatsApp connector, but it rides the Business API: dedicated number, template approvals, per-message Meta fees. If your business already lives on a normal WhatsApp number, there is a second lane: Spun connects to that number by QR code, and its REST API and outgoing webhooks connect to Odoo the way Odoo likes to talk, over HTTP.
Odoo's automation rules and server actions can call external endpoints directly (and Odoo 17 and later has first-class webhooks), so for many flows you do not even need middleware; Zapier, Make or n8n remain the low-code option.
1. Order, invoice and delivery updates on WhatsApp
Goal: an Odoo event, order confirmed, invoice posted, delivery scheduled, becomes a WhatsApp message from your real number.
- 1
Create a Spun API key
In Spun: Settings, then Webhooks, then Manage API Keys, then New Key, scoped to send messages. Store the wap_ key in Odoo's system parameters or your middleware credentials, never hardcoded in an action.
- 2
Fire on the Odoo event
Use an automation rule on the model you care about (sale.order state change, account.move posted) with a server action or webhook that performs the HTTP call, or route the same trigger through Zapier/Make/n8n if you prefer no code in Odoo.
- 3
Call send-message
POST /api/integrations/send-message with the customer's number from the record and your message text. If the WhatsApp channel is briefly offline, the message queues and sends on reconnect.
POST https://api.spun.com/api/integrations/send-message
Authorization: Bearer wap_YOUR_KEY
Content-Type: application/json
{
"to": "9715512345678",
"text": "Your order S00042 is confirmed. We'll message you here when it ships."
}Run check-phone (up to 20 numbers per call) on imported customer lists first, so automations never fire at numbers without WhatsApp.
2. WhatsApp leads into Odoo CRM
- 1
Subscribe to Spun events
Settings, then Webhooks, then Add Webhook, pointed at your middleware (or an Odoo 17+ inbound webhook that a server action processes). Select label-assigned, contact created, or incoming message.
- 2
Gate on a label
Let agents mark real prospects with a "New Lead" label in Spun; only those events create crm.lead records, keeping the pipeline clean.
- 3
Create the lead
Map phone, name and the message text into the new lead. Add the WhatsApp chat id into a custom field so future automation can reference the conversation.
What to know before you build
- This is not an Odoo app-store module: authentication is a static API key in an HTTP call, and Spun webhook subscriptions are created in Spun's Settings UI.
- Versus Odoo's own connector: that one is official and template-driven with Meta fees; this one is your existing number, no templates, no per-message costs, and full WhatsApp groups. Pick by which constraint hurts more.
- Rate limit: 60 API requests per minute per key; batch phone checks up to 20 per call.
Related: WhatsApp + Zapier & Make (payload shapes and the full API) · WhatsApp + Google Sheets (native logging)