Installation
What WhatsApp Sales and Payment Automation requires, how to install it, and how to check the install worked.
Requirements
- Odoo 18.0, Community or Enterprise, reachable from the internet over HTTPS
- Sales (sale) and Invoicing (account)
- A Meta app with WhatsApp added, and from it a Phone Number ID, a system-user access token and the App Secret
HTTPS is not optional: Meta will not deliver a webhook to a plain HTTP callback.
Install
- Put technovision_whatsapp_sales in your addons path.
- Update the apps list and install WhatsApp Sales and Payment Automation.
- WhatsApp → Configuration → Numbers. Add your number.
It adds a WhatsApp menu, three security groups, the webhook route and two scheduled actions.
Nothing is sent until you enable the number
A new number is created not enabled, and that state is shown on the form as a ribbon rather than buried in a checkbox.
While it is off, inbound messages are stored — nothing is lost — but nothing is sent and no rule runs. This is the state you want while you set the rules up: you can watch real messages arrive and see what people actually ask before you let anything answer them.
Get the credentials from Meta
In the Meta app dashboard, with WhatsApp added:
| You need | Where it is |
|---|---|
| Phone Number ID | WhatsApp → API Setup |
| System-user access token | Business Settings → Users → System Users |
| App Secret | App Settings → Basic |
Paste all three into the number's Setup tab. They are stored on fields restricted to a WhatsApp Administrator and masked afterwards.
Use a system-user token, not the temporary one on the API Setup page — that one expires in 24 hours and the failure, a day later, looks like nothing at all.
Set up the webhook
- In Odoo, on the number, press Generate a verify token. Odoo also shows you the Callback URL.
- In Meta: WhatsApp → Configuration → Webhook → Edit.
- Paste the callback URL and the verify token. Meta calls the URL immediately to verify it.
- Subscribe to the messages field.
That one field carries inbound messages and delivery statuses. It is the only subscription this module needs, and missing it is the usual reason a correctly configured webhook delivers nothing.
Add an opt-out rule first
Before you enable the number, add the opt-out rule. It should be the first rule in the list.
A customer who replies STOP on the first day and is answered anyway is a complaint to Meta, and complaints are what get a number's quality rating downgraded.
Then enable it
Tick Enabled on the number. From that moment rules run and queued messages are sent.
Check it worked
- Message the business number from your own phone.
- WhatsApp → Conversations. One appears, with your message on it.
- If a rule matched, the reply is queued and sent by the scheduled action within a minute, and the conversation names the rule that produced it.
No conversation means the webhook is not arriving — see Troubleshooting.
Give somebody the groups
| Group | Can |
|---|---|
| WhatsApp Agent | Read and reply to conversations, take one over |
| WhatsApp Manager | The above, plus rules, templates and office hours |
| WhatsApp Administrator | Credentials and webhook configuration |
Configuring rules and holding the access token are different jobs, which is why they are different groups.
The scheduled actions
| Action | What it does |
|---|---|
| WhatsApp: answer received messages | Runs the rules against new inbound messages |
| WhatsApp: send queued messages | Sends the outbound queue |
Nothing is sent from inside the webhook. Meta retries an unacknowledged webhook for 36 hours, so sending inline would replay every reply on every retry.
Upgrading
Upgrade normally. Conversations, messages and rules are preserved.
Uninstalling
Removes conversations, messages, rules and templates, and the webhook route stops answering. Unsubscribe the webhook in Meta as well, or Meta will retry a dead callback for 36 hours.