Skip to content

WebBox WhatsApp

Free WhatsApp transport for Odoo, with the service window computed for you.

The short answer

WebBox WhatsApp is the transport layer that puts WhatsApp accounts, conversations, messages and approved templates in Odoo as ordinary records with forms, lists and access rules. Two providers sit behind one interface, so the choice of transport is a settings field rather than a code decision. It carries no AI and no commerce logic; modules built on top supply those. It is free and LGPL-3.

Request this module

Last updated

What it is for

WhatsApp is not email. A business may reply freely for a while after a customer writes, and once that window closes only a template the platform has already approved will go through. Every integration hits this sooner or later, usually in production, and the send just fails with nothing telling you why. The other half is lock-in. Most Odoo WhatsApp modules are written against one transport, so the decision about which provider you use is made in the code rather than in a settings screen, and changing it later is a rewrite.

Platform
Odoo
Category
Connectors
Works with
Odoo 18 · Odoo 19
Technical name
webbox_whatsapp
Status
Direct from webbox
Pricing
Free

What is inside it

  1. 01

    The window

    Each conversation stores when the customer last wrote, and the expiry is computed from it. Nothing has to be remembered and no cron has to sweep, so the state on screen is never stale.

  2. 02

    Providers

    An account names its provider: Meta Cloud for production, taking a phone number id, a WABA id and an app secret, or a local WhatsApp Web bridge for a proof of concept. Switching changes nothing downstream.

  3. 03

    Templates

    Templates are records with a language, one of the platform's three categories, and an approval state, because a template still pending will not send and that failure is otherwise silent.

  4. 04

    The board

    Accounts, conversations, messages and templates each have a list and a form. Messages keep their direction, type, platform id and delivery state, from queued through sent, delivered and read, or failed with the reason.

What it looks like in practice

  1. A thread has gone quiet long enough that free replies stop working

    The contact on this conversation last wrote 39h ago, so the service window on the record reads closed.

    The free-form send comes back refused, and the refusal is kept on the message with the platform's own code, 131047, which reads re-engagement message. The follow-up goes out as an approved template instead.

    Last inbound
    39h ago
    Window
    closed
    Error kept
    131047

    Figures from the module's own demo data, on a fresh install. Install with demo data and open WhatsApp then Conversations, then the thread whose window is closed.

    The windowTemplates

  2. A template is on file and still will not send

    Four templates sit in the list, and one of them is in a language the shop actually needs this week.

    Its approval state says pending, so the record shows the reason before send time rather than the send failing quietly. Name, language and category have to match what the platform holds.

    Templates on file
    Four
    Categories
    Three
    Languages
    8 languages

    Figures from the module's own demo data, on a fresh install. Install with demo data and open WhatsApp then Templates, and read the approval state column.

    TemplatesThe board

  3. A Meta Cloud account is saved without an app secret

    Someone fills in the phone number id and the WABA id, then leaves the app secret blank because outgoing sends appear to work without it.

    The model refuses to save the account at all. The app secret is what verifies the signature on everything arriving at the webhook, and an unverified webhook accepts anything that finds the URL.

    Behaviour of the shipped code.

    Providers

What it deliberately does not do

No AI and no commerce
This is the transport. Sales agents, cart recovery and campaigns are a separate module that builds on it.
The bridge path is against WhatsApp's terms
The WhatsApp Web bridge is a proof-of-concept transport, and using it on a real customer number risks that number. Production means the Meta Cloud API.
No template authoring with Meta
Templates are recorded and used here. Submitting one for approval still happens in the Meta Business Manager.
No number provisioning
You bring a WhatsApp Business account and a number. Nothing here registers one for you.

Questions

Can I install this on Odoo Online?
No. Odoo Online cannot install modules that contain Python, so this runs on Odoo.sh or a self-hosted instance. Check the versions listed above for the series and edition it is verified against.
Will it reply to customers on its own?
No. This module is the transport: accounts, conversations, messages and templates. Sales agents, cart recovery and campaigns live in a separate module that builds on this one. Installed alone, it carries messages and records their state, and a person writes them.
Is the WhatsApp Web bridge safe to use in production?
No. It is a proof-of-concept transport that sits against WhatsApp's terms, and using it on a real customer number puts that number at risk. Production means the Meta Cloud API, with a WhatsApp Business account and a number you already own.
It is free, so what does it send anywhere?
Nothing. There is no licence key and nothing ships with one, so there is no activation step to complete. Tokens and the app secret live on the account record in your own database, and accounts, conversations, messages and templates are all company-scoped for a multi-company install.

Have something to build?

Tell us the problem. We'll come back with a plan, a price, and who'd actually build it.

  • Free scoping call
  • Reply within 1 business day
  • No lock-in