WhatsApp Sales and Payment Automation
by TechnoVision · Odoo App
Where is my order, what do I owe, how do I pay, let me talk to a person. A keyword, a condition, an action - tried in order, first match wins, and every automatic reply names the rule that produced it. Not a chatbot pretending to understand.
One-off licence per Odoo instance. The store bills in its own base currency, so checkout may differ by a few cents. That is the add-on price. Installation and support are optional and priced separately.
On the Odoo Apps Store for Odoo 18.0
Security Center
Live82
Score
1.2k
Events / 24h
3
Alerts
Export volume · 14 days
Unusual export detected
res.partner · 4,812 rows · outside business hours
Illustrative UI. Product screenshots to be dropped into this frame.
What it does
A keyword, a condition, an action. That is an honest description and also the better product: a customer who believes the system understands them writes can you push my delivery to Thursday afternoon and gets silence, while a customer shown a numbered menu types 2 and gets served. No AI subscription, and no data sent anywhere but Meta.
Meta delivers an ordinary message only within 24 hours of the customer last one. This module tracks the window on every conversation and refuses the send before making the request, naming the reason. The alternative is a message that silently never arrives - which looks exactly like a customer who did not reply.
Order status, invoices, payment links and statements all need to know whose records to show. A number matching no contact would mean guessing, and the wrong guess shows one customer another customer business. Those conversations go to a person.
The check lives in the single function that queues a message, so no rule, button, action or agent can override it. Opting back in has to come from the customer.
Meta retries an unacknowledged webhook for 36 hours, so sending inline would replay every reply on every retry. Each outbound message is a record first and a request second, which buys a rate limit, a retry, a visible failure with its reason, and a complete audit history by construction.
X-Hub-Signature-256, HMAC-SHA256 with your app secret, over the raw request body - hashing a re-serialised copy would reject every genuine delivery. Constant-time comparison on the signature and the verify token both, and credentials readable only by a WhatsApp Administrator.
Pricing & Services
The add-on licence is the product. Installation and a support plan are separate, optional, and neither is added to anything unless you choose it. The licence is bought into your own account, so you own it outright whether or not you ever buy a service from us.
The module, bought from the Odoo Apps Store into your own account.
$85
one-off, per Odoo instance · paid to the Odoo Apps Store
A Meta app, a verified webhook, and the rules written against what your customers actually ask.
$399
one-off · paid to TechnoVision
Twelve months of updates and help with the module, on top of what every licence already includes.
$240
per 12 months · paid to TechnoVision
A support plan adds to what you already have. It never replaces it: defect fixes and help with the module stay free for every licence holder, plan or no plan.
Supported: Odoo 18, Community and Enterprise. Licensed per Odoo instance, with no user limit and no expiry. Prices exclude any tax that applies where you are, and we tell you before you pay if any is due.
Demo
Recorded from a running Odoo 18 with real records. No slides, no mock-ups, and nothing sped up.
Screenshots
5 captures of the shipped product: conversations, with the window on each, one conversation, rules you can read, the number, not enabled, the outbound queue.

Conversations, with the window on each

One conversation

Rules you can read

The number, not enabled

The outbound queue
How it works
Inbound messages are stored so nothing is lost, but nothing is sent and no rule runs. Watch what people actually ask before letting anything answer them.
Odoo generates the verify token and shows you the URL. Subscribe to the messages field - that one field carries inbound messages and delivery statuses both.
Then the keywords, then a menu fallback last. First match wins, so a fallback at the top makes every rule below it dead.
Rules run, the queue sends, and every reply names the rule behind it.
FAQ
No call has ever been made to Meta from this module - there is no app, phone number id or token on our development account. Verified over real HTTP against Meta documented payload shapes: the verification handshake, signature validation, wamid idempotency, status transitions, the store-then-acknowledge split and every send refusal. The outbound body matches the documented structure, but nobody has watched Meta accept it. We would rather say so here than have you discover it after paying.
Core is sending: an outbound channel with a message log, templates and retry. It has no webhook and cannot receive anything. This is receiving and answering: a webhook, conversations, the 24-hour window, rules, lookups, handover and opt-out. Neither depends on the other and they keep separate records, so owning both is safe.
No, and none is required. It is a rule engine and says so - which is honest and also works better, because a numbered menu gets answered and a system that appears to understand gets sentences it cannot handle.
A phone-number match is not authentication, and a statement shows a customer entire position with you. The request raises a task; a person confirms identity and sends it.
A sentence is not an order. 20 of the blue ones becomes a draft with no lines and a task for sales, because pricing it automatically means guessing product, quantity and price on the customer behalf.
No, deliberately. The reply payload shape could not be confirmed from Meta published documentation, and this module does not parse structures from memory. The numbered text menu works on every client, needs no template approval, and accepts 2, status or the words.
Whichever you have enabled - it is Odoo own portal link, so it works with our Paymob module or anything else, and keeps working if you switch.
The module itself, for one Odoo instance, with no user limit and no expiry; every 18.0 release of the module, including security fixes; the module documentation, in the module and on this site; and defect fixes and help with configuration, at no extra cost and with no support plan required. It is a one-off licence for one Odoo instance, with no user limit and no expiry. It does not include installation on your instance, and configuration against your data; changes to the module for your own requirements; migration of the module or your data to another Odoo series; and work on your Odoo, your server, your network, or on other vendors’ modules.
No, and it is not hidden in the price either. Installation and configuration is a separate, optional service at $399 one-off. It covers remote installation on your instance; credential and endpoint configuration for the external service; and compatibility verification against your Odoo version and edition. If you or your partner install Odoo modules already, buy the licence on its own and skip it — most buyers of a module this size do.
Odoo 18, on Community and Enterprise. We do not claim a series until there is a branch for it, its tests pass on that series, and somebody has run it there — so the list on this page is what is actually supported rather than what is planned.
Twelve months of module updates, including security fixes; configuration support by email; priority handling: your ticket is looked at before unpaid enquiries; and help reproducing and reporting a defect, and a fix or a workaround. It runs for twelve months at $240 and is bounded by stated limits rather than by the word "reasonable": Up to 10 support requests in the twelve months; up to 4 hours of remote assistance in total; one Odoo minor-version upgrade of the module, within the same series; response within 2 business days, Sunday to Thursday, Cairo time; and covers the module. It does not cover your Odoo, your server, your network, or work on other modules.. The plan runs for 12 months from the day it starts and then stops. It renews only if you ask us to renew it — nothing renews automatically and no card is stored. It does not cover your Odoo, your server, your network, your backups, or other vendors’ modules; custom development or changes to how the module behaves; migration to another Odoo series — 18.0 to 19.0 is a project, not a ticket; on-site attendance, and work outside the hours below; and anything an external vendor charges for.
No, and this is the line worth being clear about. Defect fixes, at no charge, for the life of the 18.0 series; help when the module does not behave as its description says it does; answers to configuration questions about the module itself; and security fixes, released to everyone whether or not they hold a support plan — all of that comes with the licence, for every buyer, at no extra cost and whether or not a plan is ever bought. A paid plan adds updates, priority over unpaid enquiries and an allowance of assistance hours on top. It never takes anything away.
No, in any of the three options. A change to how a module behaves, a migration between Odoo series, and connecting a system we do not publish a connector for are each their own piece of work, quoted on their own. They are listed as exclusions on the cards rather than left to be discovered: they are the three things buyers most often assume are covered.
Use the buttons in the Pricing & Services section above. Both have a price, so the button takes you to a short form, shows you the total and what it covers before you commit, and creates a numbered order we reply to. No card details are taken on this site, and nothing is added to anything unless you choose it.
Install from Odoo Apps, or talk to us about a guided rollout across multiple companies.