| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Lines of code | 16566 |
| Technical Name |
open_whatsapp_connector |
| License | OPL-1 |
| Website | https://github.com/roshank8s/ |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Lines of code | 16566 |
| Technical Name |
open_whatsapp_connector |
| License | OPL-1 |
| Website | https://github.com/roshank8s/ |
| Versions | 18.0 19.0 |
Connect each number with the official Meta Cloud API or a no-approval QR login — your choice, per number.
Chat with customers, fire order & invoice updates the moment a record changes, run campaigns and log every call — across unlimited WhatsApp numbers, all on one screen in Community or Enterprise.
$30 once for the module — no annual fee. Go live on the QR path in about a minute with no per-message fees, or connect your official Cloud API credentials whenever you want (Cloud conversations are billed by Meta at Meta's own rates).
Consolidate WhatsApp into a single Odoo workflow.
|
The manual way
|
With this module
|
|
$30
One-time — no annual fee
|
~1 min
QR number to live
|
2
Transports (Cloud API + QR)
|
∞
Numbers & databases
|
45
Features included
|
See it in action
One screen, everything at a glance
12 KPI tiles (total / sent / received / queued / failed / connected / conversations / campaigns / auto-replies / bot sessions / missed calls / calls received), status doughnut, messages-per-day line, top contacts, top failure reasons, recent failures, per-account health. Click any tile to drill in.
ONBOARDING
Scan the QR — live in about a minuteAuto-refreshing QR code, sidecar process state and session state right next to it — no separate terminal, no Meta dashboard. Open WhatsApp on your phone → Settings → Linked Devices → Link a Device. Done. |
MULTI-ACCOUNT
Run as many numbers as you needSales / support / marketing — each as its own account, with isolated sessions, per-account allowlists, per-account chatbots and per-account anti-ban throttles. Live "Connected" + "Sidecar Running" badges per card. |
Official or unofficial — choose per account
Flip a single account to the official Meta Cloud API: paste Phone Number ID, WABA ID, App ID, App Secret and Access Token, hit Verify Connection, and the copy-ready Callback URL + Verify Token wire up your Meta webhook. Sync Templates pulls your approved templates. Other accounts stay on no-approval QR — same inbox, dashboard and rules for both.
VOICE & VIDEO CALLS
Ringing toast with Accept / Reject — liveReal-time toast on every incoming voice / video call, showing caller, account and call type. Reject inline, or open the call log. Every ring is recorded with duration and missed-vs-accepted status. |
MESSAGES
Every message, fully tracedOutbound + inbound in one log with date, recipient, account, message type and state (queued / sent / delivered / read / failed / received). Group, filter and search by any column. |
CALLS LOG
Audit every call, voice or videoFilterable list of every WhatsApp call: contact, from-number, account, voice-vs-video toggle, status (Ringing / Rejected / Accepted / Missed) and duration. One source of truth for support and compliance. |
COMPOSE
Send in two clicks — from any accountPick the sending account, the recipient (partner or raw number), an optional Quick Reply template, attach files, and schedule for later if you need to. Variables like {{partner_name}} render on send. |
CAMPAIGNS
Bulk campaigns with template + schedulePick an account, a contact list, optional message template, attach files, set a launch time — click Launch Campaign. Real-time delivery stats. Anti-ban throttle keeps you out of trouble. |
SALES AUTOMATION
SO confirmed → WhatsApp instantlyNotification rule "T3-R03 SO/state=sale" fires the moment a quotation is confirmed: WhatsApp goes to the customer, with the rule firing logged right in the SO chatter and a 👍 ack reaction inline. |
DUNNING / REMINDERS
Invoice posted → payment reminder sentRule "T3-R14 Inv/state=posted" sends a WhatsApp payment reminder the moment an invoice is validated. Every fire shows up in the invoice chatter so finance can audit who got what. |
CONTACT SMART BUTTONS
Every contact is a WhatsApp hubLive count of WhatsApp Chats, WhatsApp Calls and a one-click Customer–360 jump from any partner. Inline Send message / WhatsApp buttons in the chatter dispatch directly to the contact. |
CUSTOMER–360
One timeline per contactSale orders, invoices, helpdesk tickets, CRM leads, WhatsApp messages AND WhatsApp calls (voice / ringing / rejected) interleaved chronologically. Onboard a new agent in 30 seconds — they see the entire relationship at a glance. |
CHATS MENU
Groups, Communities & Newsletters — all in OdooCreate or join Groups, parent Communities (with sub-groups), and broadcast-only Newsletters — without ever leaving Odoo. Group Audit Log tracks every join, leave, rename and admin change. |
CONFIGURATION
Every rule and policy, configurableAccounts, Quick Replies, Notification Rules, Auto-Reply Rules, Blacklist, DM Allowlist, Inbound Rules, Pending Approvals, Contact Lists, Conversation Labels, Auto-tag Rules, Health Issues, Chatbots, Chatbot Sessions, Slash Commands, Settings — all surfaced under one menu. |
GROUP MANAGEMENT
Create groups in secondsPick the WhatsApp account, name the group, drop in initial participants by phone number — one per line or comma-separated, country code first. Created group appears in the Discuss sidebar instantly. |
NEWSLETTERS
Run WhatsApp Newsletter channelsCreate broadcast-only newsletter channels with name + description, or subscribe to existing ones from an invite link. Subscriber count and mute state per row. |
STATUS (STORIES)
Post Status / Stories from OdooReach everyone in your contact list with a 24-hour Status post: text, image or video, with an optional caption. Picks the right account, fires through the sidecar, expires automatically. |
DISCUSS INBOX
Voice notes, media & presence — native DiscussVoice notes play inline, images thumbnail in-stream, every channel shows a live online dot and typing indicator. Auto-replies and chatbot turns post into the same thread as the human agent — one timeline per contact. |
Sane defaults — tunable when you need it
Default Sidecar URL and API key apply to every new account. Sidecar Directory points at the bundled Node process; auto-start kicks in when you connect. Auto-create Contacts opens a partner record for unknown senders. Optional Website WhatsApp Widget drops a floating chat button on your storefront.
Three steps. You pick the transport.
|
1
Install the addonFrom Apps, search "Open WhatsApp Connector". Click Install. The bundled Node.js sidecar (for QR accounts) starts automatically. |
2
Pick your transportNew Account → choose QR (scan with your phone, live in about a minute, no approval) or Official Cloud API (paste your Meta credentials). Add as many accounts as you need. |
3
Activate the rulesSale Order Confirmed, Invoice Posted, Delivery Done, Payment Received — pre-built. Tick Active. You're automated. |
Everything you need — built in
Run any account on Meta's official Graph API instead of QR — for Meta-grade deliverability and eligibility for the verified-business green tick (a separate Meta approval). Pick QR or Cloud API per account; the rest of Odoo works the same. Unlimited numbers either way. |
Author WhatsApp template messages in Odoo, submit them to Meta for approval and sync their status — then send approved templates to re-open conversations beyond the 24-hour customer window. For Cloud-API accounts. |
On Cloud-API accounts, inbound messages, sent/delivered/read receipts and voice-call events arrive over Meta webhooks — routed by WABA + phone-number-id to the right database, into the same Discuss inbox, dashboard and call log as QR. |
||||||
One-click "Send WhatsApp" button on Sale Orders, Invoices, Deliveries & Purchase Orders — renders the record's PDF (quotation, invoice, delivery slip) and attaches it straight to the chat. |
"Ask" and "Order on WhatsApp" buttons on every product page, a "Checkout via WhatsApp" cart button, and automatic abandoned-cart recovery reminders. Auto-installs with the eCommerce app. |
Send the receipt — plus the invoice PDF when invoiced — to the customer's WhatsApp right from the Point-of-Sale screen, or auto-send on every paid order. Auto-installs with Point of Sale. |
||||||
One-click customer statement on WhatsApp, plus an automatic overdue-invoice dunning cadence (7 / 30 / 60-day buckets) with the invoice PDF attached. Auto-installs with Accounting. |
Customers browse your catalog and order entirely in chat via interactive WhatsApp lists; each pick builds a draft sale order. No Meta catalog, no AI. Auto-installs with Sales. |
A floating WhatsApp click-to-chat button on your website — visitors tap to open a pre-filled chat with your number. Auto-installs with the Website builder. |
||||||
Every call logged with caller, time, voice/video, missed/accepted. Auto-reply on missed call. Click-to-call buttons on every partner. |
One screen per contact: WhatsApp messages + calls + sale orders + invoices + helpdesk tickets + CRM leads + activities, chronologically interleaved. |
Regex / keyword / sender-pattern / unknown-sender matchers create CRM leads, helpdesk tickets, sale-order drafts or project tasks from inbound messages. |
||||||
Inbound rules auto-create helpdesk tickets from WhatsApp messages; the channel and ticket are cross-linked with smart buttons on both sides. Customer replies relay into the ticket's chatter; agent comments on the ticket post back to WhatsApp. Auto-send a CSAT survey on resolve (when the survey module is installed). |
Saved recipient lists with per-recipient session isolation. Recurring sends (“every Monday 9 AM”) with daily / weekly / monthly cadence. |
Per-account msgs-per-minute/hour/day caps, automatic backoff on throttle responses, plus opt-in tracking on every contact for compliant outbound. |
||||||
Auto-send WhatsApp on Sale Order confirmed, Invoice posted, Delivery done, Payment received. Pre-built rules — just activate. |
Clickable button messages (up to 3) and scrollable list menus. Image / video / document headers. Auto-filled template variables. |
30+ frontend patches. WhatsApp sidebar, messaging menu, delivery status icons, Shift+W chatter button. Feels native. |
||||||
IVR menus, route to agents, auto-create CRM leads. Keyword replies, welcome messages, out-of-office responses. |
Bulk-message contact lists with templates, scheduling and real-time delivery stats — the kind of campaign tool others charge an annual subscription for. |
Multiple WhatsApp numbers (regular or Business). Send images, video, audio, PDFs, stickers. Scheduled messages and blacklist. |
||||||
12 KPI tiles (total / sent / received / queued / failed / connected / conversations / campaigns / auto-replies / bot sessions / missed calls / calls received), doughnut + line + bar charts, drill-through, account-health table. |
Recipients type /help /menu /stop. Pluggable registry — add your own. |
Group policy: open / allowlist / disabled. Per-group "bot only on @mention" gate. Auto group-intro on join. |
||||||
Per-account DM policy: open / allowlist / pairing / disabled. Pairing flow queues unknown senders for one-click admin approval. |
Auto ack on inbound, cleared after reply. Voice notes (PTT), animated GIFs, polls, location, vCard. Image auto-resize. |
"Run Diagnostics" button on each account. 5-min heartbeat cron. Health badge (healthy / degraded / down). Stealth-mode toggle. |
||||||
19 company-isolation rules scope every account-linked record (messages, campaigns, broadcasts, calls, contacts). Records from one company stay invisible to another. Multi-database isolation via per-DB session namespacing. |
Notification rules, auto-replies, chatbots, pending pairs — full chatter history with tracking on state and policy fields. |
75 unit tests across 10 test files. Translation template (.pot). Demo data for fresh installs. Versioned migration scripts verify schema on every upgrade. |
||||||
Forward any message to one or many chats with full media proto preserved. Send 👍 ❤ 😂 reactions to specific messages from the WhatsApp Messages form (WhatsApp → Messages → open a message). |
Dedicated wizards for animated WebP stickers, static map pins (lat/lng), and scheduled WhatsApp events with name, description, time and venue — all sent through the channel header. |
Create and manage WhatsApp Communities (parent + sub-groups) and Newsletter channels (broadcast-only) directly from Odoo. Subscribe to existing newsletters with a single invite link. |
||||||
Create groups, add / remove members, push a custom group profile picture, pin / archive / mute, and join external groups via V4 invite link — all without ever leaving Odoo. |
Drop two or more images into the composer and they ship as a single album carousel, not separate messages. In groups, fire an @all mention that pings every member. |
Top-menu Compose wizard sends to any partner or raw phone number in two clicks. Post Status broadcasts to all contacts. Quick Reply templates with {{partner_name}} variables auto-substitute on send. |
||||||
Every incoming WhatsApp call pops a real-time toast with caller, account, voice-vs-video, and one-click Accept / Reject. No more "we missed it because nobody had the phone". |
A green dot on every WhatsApp channel shows when the contact is online, and a live typing indicator in the composer header tells your agent the customer is mid-reply — same UX as native WhatsApp. |
Dashboard "Start Sidecar" button launches the Node process AND auto-restores every account session in one click. State-aware colour: red when stopped, WhatsApp-green when running — you always know the system is live. |
||||||
Per-account radio: scan a QR code, or punch in an 8-digit phone-link code. Useful when the phone camera is unavailable, or for headless / remote setups. |
If your firewall blocks the WhatsApp media CDN (mmg.whatsapp.net), the sidecar transparently falls back to a re-upload request over the existing WebSocket session. Inbound images, video, audio & PDFs still arrive. |
Namespaced JS registry keys (all under the owa namespace) and channel-type guards let this addon live side-by-side with Odoo Enterprise's built-in whatsapp module — activate either, both, or migrate gradually. |
||||||
Opt-in Campaign & Contact Visibility setting: switch from "shared across company" to "owner + their Sales Team" with one click. Flips 12 record rules + 6 ACLs at runtime — users see only their own campaigns, contact lists, broadcast groups, standing orders, status broadcasts. Admins still see everything. Default = shared, so existing customers see zero change. |
Sidecar emits every session-state transition (connecting → qr_pending → connected, plus all disconnect variants) over a dedicated webhook. Dashboard flips to "Connected" within ~200 ms of QR-scan — ~1500× faster than waiting for the 5-min heartbeat cron. No more "Awaiting QR" badge while messages are already flowing. |
Multi-tag M2M labels with colour swatches let agents triage WhatsApp threads at a glance. Auto-tag rules (regex / keyword) drop res.partner.category tags on the partner on first inbound — "VIP", "Refund", "Lead" tagged automatically, no agent click required. |
Six free add-ons that connect WhatsApp to the rest of Odoo
Search "Open WhatsApp Connector" in Apps to see all of them. Each one is free and installs itself automatically the moment both this module and the matching Odoo app are present — nothing to configure.
|
+ Accounting
Statements & payment remindersSend a customer's outstanding statement on WhatsApp, plus an automatic overdue-invoice dunning cadence with the invoice PDF attached. |
+ Sales
Catalog & order-taking in chatBrowse an interactive product catalog and take orders straight from a WhatsApp chat — captured as Odoo sale orders. |
+ Point of Sale
POS receipts on WhatsAppSend the receipt — plus the invoice PDF when invoiced — to the customer's WhatsApp from the POS screen, or auto-send on every paid order. |
|
+ Website
Floating chat buttonDrop a floating WhatsApp click-to-chat button on your Odoo website so visitors reach you in one tap. |
+ eCommerce
Checkout & cart recovery"Ask" and "Order on WhatsApp" buttons on shop & cart pages, a "Checkout via WhatsApp" option, and automatic abandoned-cart recovery reminders. |
+ Helpdesk ENTERPRISE
Two-way ticket syncWhatsApp messages become Helpdesk tickets and agent replies go back over WhatsApp — jump between the conversation and the ticket in one click. Requires Odoo Enterprise. |
Is this you?
Whoever owns the customer in your Odoo — this works the way they think.
|
Sales
Quote sent, instantly pingedQuote sent → WhatsApp ping. SO confirmed → auto thank-you. Reply lands in Discuss as the lead's chatter. Customer-360 timeline shows every touchpoint at a glance. |
Support
Triage automaticallyChatbot menus route. Recipient types /agent to escalate. Auto-create helpdesk tickets from inbound; CSAT survey on close. |
Marketing
Launch campaignsBulk sends with rendered templates and live delivery stats. Broadcast groups + standing orders for recurring sends. Opt-in tracked. Auto-blacklist on STOP. |
Operations
See everythingOperations dashboard, incoming-call log, anti-ban throttling, health badge, heartbeat cron, Run Diagnostics. You see what's connected, stuck, failed. |
Pay once. Own it. No annual fee.
One purchase. Lifetime updates. Your server, your data.
Most WhatsApp connectors for Odoo are billed every year, and need the official Business API approved before you can send a single message. This one is a $30 one-time purchase with lifetime updates — self-hosted on your own server, on Community or Enterprise. Pick a no-approval QR login or the official Meta Cloud API for each number, and run as many numbers as you need.
$30 is the one-time module price. The QR path adds no per-message fees; the optional official Cloud API path uses Meta's own per-conversation rates, billed directly by Meta.
Start sending WhatsApp from Odoo today.
Unlimited numbers, official Cloud API or no-approval QR — your choice per number. Self-hosted, with lifetime updates. $30 once, no annual fee.
Frequently Asked Questions
How many numbers and databases can I run?As many as you need — that's the headline. Add unlimited WhatsApp accounts, each its own number, across unlimited Odoo databases on one server. Run sales, support and marketing lines side by side, each with isolated sessions, allowlists, chatbots and anti-ban throttles. |
QR or official Cloud API — which do I pick?Set it per account. QR is fastest — live in about a minute, no approval, no per-message fees; ideal for ops, internal lines and getting started. Official Cloud API gives you approved template messaging and makes the number eligible for Meta's verified-business green tick (a separate Meta approval); ideal for high-volume marketing. Same Odoo inbox, dashboard, rules and Customer-360 either way — switch or mix anytime. |
Do I need a Meta Business API?Only if you want it. Each account picks its own transport. The QR path needs no Meta approval at all — the bundled Node.js sidecar speaks the WhatsApp Web protocol; scan with the same phone you'd normally use. Prefer the official Cloud API (eligible for Meta's verified-business tick — a separate Meta approval)? Paste your Meta credentials and that account runs on the Graph API instead. Mix both, on as many numbers as you like. |
Will WhatsApp ban my number?Not if you respect WhatsApp's ToS (no spam, honour STOP, throttle bulk). Use a dedicated WhatsApp Business number for outbound campaigns. Built-in blacklist + auto-STOP keyword detection helps you stay compliant. |
Multi-database / multi-company?Yes — both, on both transports. QR sessions are namespaced by <dbname>_<account> so two databases share one sidecar without colliding; Cloud API webhooks route by WABA + phone-number-id back to the right database. 17 record rules scope every account-linked record by company; 12 more toggle-able rules isolate marketing records per user / sales team on top. |
Will it survive Odoo upgrades?Versioned migration scripts under migrations/<version>/ handle column adds and table creation, plus a post-migrate sanity check. 75 unit tests catch regressions on each release. |
What about my customer data?Self-hosted. The Node.js sidecar runs on your Odoo server. Messages flow directly between your server and WhatsApp's network. Per-account messages-per-minute/hour/day caps and opt-in tracking on every contact help you stay compliant. No third-party gateway, no SaaS in the middle, no message body ever touches our servers. |
Does it work with Odoo Community?Yes — Community and Enterprise. Odoo's built-in WhatsApp module is Enterprise-only. This addon depends on mail, phone_validation and sales_team, all of which ship in Community. |
Can I extend it for my workflow?Pluggable everywhere. Slash commands are records you can add. Notification rules trigger on any mail.thread model. Quick reply templates use {{var}} placeholders. Standard Odoo extension patterns throughout. |
What if I need help?Email the developer directly — not a queue, not a chatbot, an actual human. Bundled README.md and sidecar/SETUP.md walk through install, sidecar, QR, and first campaign. |
Can it detect WhatsApp calls?Yes — incoming voice and video calls are logged with caller, time, and missed/accepted status. Auto-reply on missed calls, plus click-to-call buttons on every partner. Note: detection only — outbound call audio is not in scope (no library carries WhatsApp call audio without a paid Cloud API). |
Does it integrate with Helpdesk and CRM?Yes. Inbound auto-create rules turn matching messages into CRM leads, helpdesk tickets, sale-order drafts, or project tasks. The optional open_whatsapp_connector_helpdesk glue addon (auto-installs when both helpdesk and this addon are present) adds full two-way sync: tickets and channels cross-link with smart buttons, customer replies relay into the ticket chatter, agent comments relay back to WhatsApp. CSAT survey on conversation close. All optional — the main addon installs cleanly on Community without helpdesk. |
Need help or customization?
Installation support, custom features, and Odoo development — from the developer who built it.
Contact developerOdoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module