| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• CRM (crm) • Calendar (calendar) • Contacts (contacts) |
| Community Apps Dependencies | Show |
| Lines of code | 5676 |
| Technical Name |
us_whatsapp |
| License | OPL-1 |
| Website | https://unitsoft.com.ua/ |
| Versions | 16.0 17.0 18.0 19.0 |
WhatsApp Integration powered by UnitSoft
Communicate with WhatsApp users directly within Odoo using Twilio
Features
1. Convenient communication in Odoo
Chat with your WhatsApp customers directly in Discuss. Get more options for working with leads, partners, and session statuses.
2. Easy Bot Creation
Create and configure multiple WhatsApp bots directly within the system.
3. Interaction Flows
Build your own communication flow with users using scripts with step-by-step logic.
4. Chatter
Send and receive WhatsApp messages directly from the chatter of any Odoo document (Leads, Orders, etc.).
5. Operator Management
Monitor operator activity, follow specific channels, and manage agent workloads efficiently.
6. Customer Session Tracking
Track all client sessions, bot interactions, and operator responses in a centralized history.
7. WhatsApp Templates
Create and send pre-approved WhatsApp message templates to your customers directly from Odoo documents. Templates are managed via Twilio and require Meta approval before use.
8. Send Templates from Anywhere
Approved WhatsApp templates can be sent to customers from multiple places in Odoo — use whichever is most convenient for your workflow.
Send templates to start or continue a conversation
Send templates from chatter
Send templates from phone field
Send templates from channel
If the chat session has ended, you can send a template message to the user right in the channel.
Step-by-Step Instruction
1. Twilio Setup
Getting Started (Free Trial)
When you first sign up at twilio.com, you receive a Trial Account. This is perfect for testing the Odoo integration without initial costs.
- Where to find SID & Token: Open your Twilio Console. On the Account Dashboard, look for the Account Info card. You will see your Account SID and Auth Token there.
- How to Test: To send your first message, go to Messaging → Try it out → Send a WhatsApp message. This is the WhatsApp Sandbox mode.
Moving to Production
Trial accounts have limitations (like "sent from trial account" signatures). For business use, follow these two essential steps:
-
Upgrade your Account: Add a payment method and top up your balance to move from trial to production.
Link: https://help.twilio.com/articles/223183208-Upgrading-to-a-paid-Twilio-Account -
Register a Sender: Verify your WhatsApp Business profile to use your own number.
Link: https://www.twilio.com/docs/whatsapp/self-sign-up
2. Module Deployment
To ensure messengers work correctly in your system, you need to have the following modules: us_messenger and us_whatsapp.
Library dependency: This module requires the twilio and phonenumbers libraries to be installed on your environment.
Deployment Instructions
Please note that installing these modules through the standard Odoo interface (Apps → Import Module) will not work for the initial setup.
The correct way to install these modules is as follows:
- Upload the module folders directly to your server's custom addons directory.
- Restart the Odoo service via terminal to allow the system to detect the new files.
3. Module Activation
After installing the module, navigate to Apps menu and search for "WhatsApp Integration". Click Activate to activate the module in your Odoo instance.
4. Creating a New Bot
Once all the necessary modules are activated, we can create a bot in our system. To do this, go to the Messengers menu and click the New button in the upper-left corner. Now we see the form for a new bot. To launch and continue working with the bot, you need to fill in the basic bot fields. Let's take a look at these fields:
The type of bot you are creating. In our case, you need to select WhatsApp Twilio. If you are using integration modules with other messengers, there may be other options here.
Insert the Auth Token from your Twilio Console (Account Info section). This is used together with the Account SID to authenticate requests to the Twilio API.
Your Twilio Account SID, found in the Account Info section of the Twilio Console. Required to identify your Twilio account.
In this field, you can select a script with specific steps for user interaction with the bot. In the script, you can configure the receipt of email, phone number, connection to the operator. If you leave this field blank, a available operator will be added to the channel with the user, without any intermediate steps. We will talk about scripts in more detail later.
The WhatsApp-enabled phone number assigned to your Twilio account. Must be entered in the format whatsapp:+<country_code><number> (e.g., whatsapp:+14155238886). This is the number from which messages will be sent to your customers.
A friendly name for the Twilio Messaging Service that will be created automatically when the bot is launched. The Messaging Service is used to register the webhook URL in Twilio so that incoming WhatsApp messages are forwarded to Odoo.
A read-only computed field that shows the webhook URL for this bot. This URL is automatically registered in Twilio when you click Run Now. You can also copy it manually to configure the webhook in your Twilio Messaging Service settings.
In the Operators section, you can specify system users among whom an automatic search for an available operator will be performed. Then, such a user is added to the channel with the client for further communication. The Priority field allows you to control the selection of available operators. A user with a higher priority will only be selected if all other operators with a lower priority already have more than 5 open channels, or if there are no available operators. The User nickname field should be highlighted separately. The bot settings allow you to sign the author's name in messages that will be sent to the client. In User nickname, you can write the signature that you want your clients to see. If the field is empty, the user's name will be used.
5. Other Useful Parameters
Great, we've filled in all the important fields, now let's take a look at the other bot settings in Parameters page:
When executing script steps, the user's approximate language is determined from their phone number's country code (since WhatsApp does not provide language information directly). If the detected language is not activated in your system, the default language from this field will be used.
If enabled, the author's name will be added at the end of the message, so the messenger client will better understand who they are communicating with.
Template for creating a channel name in Discuss. Consists of the messenger username and bot name.
Determines whether bot operators can assign channels where they are defined by the operator to other operators. If disabled, only the administrator can change the operator.
If enabled, when a messenger user sends a message (without explicit reply) and the last message in the channel was from a document chatter, the message will be duplicated to that document's chatter.
Now that we have finished configuring all the fields, we can click the Run Now button to start the bot. If everything was set up correctly, a notification confirming the successful bot launch should appear in the upper corner of the screen. Clicking Run Now will also automatically create a Twilio Messaging Service with the webhook URL pointing to your Odoo instance. Then in Twilio Account go to WhatsApp Senders, select your sender and assign the created Messaging Service to it.
6. User Interaction With The Bot
At this stage, WhatsApp users can already contact our bot. Here's what interaction with the bot looks like from the client's side in WhatsApp and the operator's side in Odoo.
As we can see, the client has reached the step of connecting with an operator, so the system searched for an available operator, which turned out to be Mithell Admin, and added him to the channel. Once the operator has communicated with the client, he can click the End Session button, after which the operator will be removed from the channel, and the client will continue to the next step of the script.
7. Channel Statuses
Channel statuses are usually accompanied by a color change or the addition of an icon in the Discuss channel list. The operator can change the status depending on the current state of the channel. Options include waiting for a customer response or seeking help, which is used when the operator has added another system user. In this case, the user will see the channel highlighted in blue. Without Operator highlights the channel in orange and is used when no free operator could be found. This may be the case if the request was made outside of working hours and no users were online. In this case, the system adds all operators to the channel, and the first one to come online can click the Become Operator button to become an operator and exclude other operators from the channel.
8. WhatsApp Scripts
The WhatsApp messenger integration module allows you to build scripts with step-by-step interaction between the bot and the customer. Each step of the script is responsible for one message sent to WhatsApp. After installing the module, you will have a demo script so that you can better familiarize yourself with the work and capabilities of scripts.
9. Step Types
Each step has its own type and defines the logic of interaction between the bot and the user. Here are the types of steps that will be available in the WhatsApp script:
Sending a regular text message. Please note that this step does not require a response from the user, so if you have two text steps in a row, they will both be sent at once.
Receiving customer email. The step waits for the customer to send email. If the email is invalid, the step will ask to enter the email again.
Step is waiting for user input.
Step awaits receipt of the phone number from the user. Since we always receive the customer’s phone number as soon as they start interacting with the bot, this step is only necessary if we want to obtain an additional phone number.
At this step, a search for an available operator is performed, and it is added to the channel. Note that when the client is at this step, the other steps are not performed, since all text or commands go to the channel with the operator.
10. Script Step Example
Let's look at an example of fields in a step with the Email Input type:
Required field for each step. Contains text that will be sent to the customer.
The step can send a message about the user's successful response, or vice versa, if the user has entered the wrong answer. The message about the successful completion of the step is optional and can be left blank.
The execution of a step can be linked to a command.
When a user changes the order of steps or creates new steps in a script, the steps are recalculated to automatically determine the next step for each step. If this field is enabled, the next step will not be determined for the current step.
11. WhatsApp Templates
WhatsApp Templates are pre-approved message templates required by Meta for initiating conversations with customers outside of a 24-hour session window. The module supports creating, managing, and sending templates directly from Odoo via the Twilio API.
Template Categories
Used to authenticate users with one-time passcodes. The template body is controlled by Meta and cannot be modified freely.
For sharing important transactional information — order confirmations, appointment reminders, subscription updates, etc.
For promotional offers, product announcements, and engagement campaigns. Any template mixing utility and marketing content is classified as marketing by Meta.
Managing Templates
You can manage WhatsApp templates from the Messengers → WhatsApp Templates menu. There are two ways to work with templates in Odoo:
Use the Update Templates button to synchronize all existing templates from your Twilio account into Odoo. Templates that were already approved in Twilio will be imported with their current approval status. Templates with dynamic variables are not supported and will be skipped.
Create a new template directly in Odoo by filling in the name, category, language, and template body. Once ready, click Send for Approval — this will submit the template to Twilio and Meta for review. The approval status will be updated automatically when Twilio delivers the status callback.
Sending Templates from Documents
Once a template is approved, you can send it directly from any Odoo document (such as a Lead, Sale Order, or Contact) that has a phone number:
- Select the approved WhatsApp Template to send.
- Review the list of recipients automatically detected from the document.
- Recipients who have already interacted with the bot are marked as WhatsApp contacts.
- Click Send to dispatch the template message. The delivery status (Draft, Delivered, Read, Error) will be tracked in the WhatsApp Messages list under the Messengers menu.
Support
We provide free bug fixes and updates for all our modules for 1 year after purchase.
The warranty is for a clean installation of Odoo.
If you need help, please submit a request through our Support Portal at https://unitsoft.com.ua/support.
We will not provide support (for free) if our modules do not work on your server or conflict with other modules.
We also provide all types of Odoo support services (installation, maintenance, custom development).
Support packages: https://unitsoft.com.ua/services-plan
Our Odoo Apps
Odoo 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