Skip to main content

WhatsApp AI Sales Agent

ECOSIRE WhatsApp AI Sales Agent connects your WhatsApp Business phone number to Odoo and answers incoming customer messages with an AI assistant. The assistant looks up your own products, prices and stock in Odoo, creates leads and draft quotations, and passes the conversation to a salesperson when the customer asks for a person or the assistant cannot help.

You bring your own Meta WhatsApp Business account and your own Anthropic (Claude) or OpenAI (GPT) API key. All calls to Meta and to the AI provider are made by your Odoo server; keys are never sent to the browser and never written to the logs.

Technical nameecosire_whatsapp_ai_agent
Current shipped version17.0 -> 17.0.1.0.1, 18.0 -> 18.0.1.0.1, 19.0 -> 19.0.1.0.1
CompatibilityOdoo 17, 18 and 19 (Community and Enterprise)
Price$399 USD (one-time)
CategorySales / CRM
Dependenciescrm, sale_management, product, mail (standard Odoo apps)
You also needA Meta WhatsApp Business account (Cloud API) and an Anthropic or OpenAI API key

It does not need the Odoo Enterprise WhatsApp app: the module has its own WhatsApp Cloud API connection, so it works on Community too.

What it does​

  • Answers customers on WhatsApp — every incoming text, button or list reply is saved in Odoo and answered by the AI assistant.
  • Grounded on your Odoo data — the assistant can only answer from tools that read your database:
    • search_products — find sellable products by name;
    • get_price — the product's list price and currency;
    • check_stock — quantity on hand (needs the Inventory app; without it the assistant sees 0);
    • create_lead — create a CRM lead or opportunity linked to the conversation;
    • create_quote — create a draft sales quotation for the customer (nothing is confirmed or sent automatically);
    • handoff_to_human — stop the assistant and pass the chat to a person.
  • Choice of AI provider — Anthropic Claude or OpenAI GPT, with the model, temperature, reply length and number of tool steps per reply set by you.
  • Your sales persona — edit the system prompt to set tone, language, what to offer and what not to promise.
  • Respects WhatsApp's 24-hour rule — free-form replies are only sent within 24 hours of the customer's last message. Outside that window, only an approved message template can be sent, and the module blocks anything else.
  • Message templates — pull your templates and their approval status from Meta with one click.
  • Full audit trail — every conversation, message, delivery and read status, and every tool call the assistant made, with its input and result.
  • AI cost tracking — token counts and an estimated cost per AI reply, based on the per-1,000-token prices you enter.
  • Read receipts — incoming messages are marked as read on WhatsApp.
  • Multi-company — accounts, conversations, messages, templates and tool logs are kept separate per company.

Installation​

  1. Download the module from the Odoo Apps Store (or from your ecosire.com order) and add it to your addons path.
  2. Make sure the Python package requests is installed on the Odoo server (it is present in standard Odoo installations).
  3. Restart Odoo, update the Apps list and install ECOSIRE WhatsApp AI Sales Agent.

The module installs on its own; no other ECOSIRE module is required.

Access rights​

Two groups are added under Settings → Users & Companies → Users → WhatsApp AI Agent:

GroupCan do
WhatsApp AI Agent / UserSee the WhatsApp AI menu, conversations, messages and tool logs
WhatsApp AI Agent / ManagerEverything a User can, plus configure accounts and templates and send messages

The secret fields (access token, app secret, webhook verify token and AI API key) can only be read and edited by Odoo administrators (Settings access).

Setting up your WhatsApp number​

1. Prepare the Meta side​

In the Meta App Dashboard, create (or open) an app with the WhatsApp product and note:

  • the Phone Number ID of the WhatsApp number you want to use;
  • the WhatsApp Business Account ID (WABA ID);
  • a permanent access token (a System User token from Meta Business Settings is recommended; temporary tokens expire after 24 hours);
  • the app's App Secret (App settings → Basic).

2. Create the account in Odoo​

Open WhatsApp AI → Configuration → Accounts and click New:

FieldWhat to enter
NameA label for this number, e.g. Sales line
Phone Number IDFrom Meta (required)
Display NumberThe number as customers see it (optional)
WhatsApp Business Account IDYour WABA ID — needed for Test Connection and Sync Templates
Graph API VersionDefault v23.0. Meta retires versions over time; set the current stable version here
Access TokenYour Meta access token
App SecretYour Meta App Secret — used to verify that incoming webhooks really come from Meta
Webhook Verify TokenAny secret phrase you choose; you will enter the same phrase in Meta
LLM ProviderAnthropic (Claude) (default) or OpenAI (GPT)
LLM API KeyYour Anthropic or OpenAI API key
LLM Model IDThe exact model id from your provider, e.g. a current claude-… or gpt-… model
TemperatureDefault 0.4 — lower is more predictable
Max Tokens / TurnDefault 1024 — the longest reply the assistant may write
Max Tool IterationsDefault 5 — how many tool steps the assistant may take per customer message
AI Agent EnabledOn by default. Switch off to store incoming messages without automatic replies
Sales Persona / System PromptThe instructions the assistant follows; a sensible sales default is filled in
LLM Input / Output $/1k tokensOptional — your provider's prices, used for the cost estimate on each AI reply
Default SalespersonWho gets a To Do activity when a conversation is handed over to a person

Save, then click Test Connection. A green Connection OK message confirms the token and WABA ID work.

3. Connect the webhook​

After saving, the account shows a Webhook URL of the form:

https://<your-odoo-domain>/whatsapp/webhook/<account_token>

In the Meta App Dashboard → WhatsApp → Configuration → Webhook:

  1. Paste the Webhook URL as the Callback URL.
  2. Enter your Webhook Verify Token as the Verify token and click Verify and save.
  3. Subscribe to the messages webhook field.

Your Odoo site must be reachable from the internet over HTTPS for Meta to deliver messages.

4. Sync your templates​

Click Sync Templates on the account to import your approved message templates from Meta. They appear under WhatsApp AI → Configuration → Templates with their language, category and approval status.

Daily use​

Conversations​

WhatsApp AI → Conversations lists one conversation per customer number and account, with the linked contact, linked lead or opportunity, and status:

StatusMeaning
ActiveThe assistant is answering this customer
Awaiting HumanThe chat was handed over; the assistant stays silent until a person takes it back
ClosedClosed by a user, or automatically after 30 days without messages. A new customer message re-opens it

Each conversation shows whether the 24-hour reply window is open and when it closes. Use Hand off to Human to stop the assistant on a conversation, and Close to close it.

When a conversation is handed over, a To Do activity is scheduled for the account's Default Salesperson (or, if none is set, the user who created the account) so a person can pick it up.

Leads and quotations​

When a customer shows buying interest, the assistant can create a CRM lead and link it to the conversation. When the customer asks for a quote, it creates a draft quotation for the products discussed (creating the contact from the WhatsApp name and number if needed). Review and confirm quotations in Sales as usual — the assistant never confirms an order.

Messages and tool log​

  • WhatsApp AI → Messages — every incoming and outgoing message with its delivery status (sent, delivered, read, failed), whether it was written by the AI, the model used, tokens and estimated cost.
  • WhatsApp AI → Configuration → Tool Log — every tool call the assistant made, with its arguments and result, so you can see exactly what data each answer was based on.

Scheduled action​

WhatsApp: Close Stale Conversations runs once a day and closes active conversations with no messages in the last 30 days. You can adjust or switch it off under Settings → Technical → Scheduled Actions.

Technical reference​

EndpointMethodAuthPurpose
/whatsapp/webhook/<account_token>GETpublicMeta's webhook verification. Returns the hub.challenge value only when hub.verify_token matches the account's Webhook Verify Token; otherwise 403
/whatsapp/webhook/<account_token>POSTpublicIncoming messages and delivery/read statuses from Meta

How the public webhook is protected:

  • Each account has its own random URL token; an unknown or archived token gets 404. Regenerate Webhook URL on the account issues a new one (update the Callback URL in Meta afterwards).
  • Every POST must carry a valid X-Hub-Signature-256 header, an HMAC-SHA256 of the raw request body signed with your App Secret. A missing or wrong signature gets 403 and nothing is processed.
  • Messages are de-duplicated on their WhatsApp message id, so Meta's retries never create duplicates or double replies.
  • If the payload names a phone number id that belongs to a different account, it is ignored.
  • Once the signature is valid, the endpoint always answers 200 so Meta does not retry endlessly; processing errors are written to the Odoo server log.

Outgoing messages, read receipts and template lists use Meta's Graph API (/<phone-number-id>/messages and /<waba-id>/message_templates). AI replies use the Anthropic Messages API or the OpenAI Chat Completions API.

Tips​

  • Start with AI Agent Enabled switched off for a day to see the incoming traffic, then switch it on.
  • Keep the system prompt short and specific: what you sell, your tone and language, and when to hand over to a person.
  • Customers who have not written for over 24 hours can only be contacted with an approved template, by WhatsApp's own rules.
  • Set your provider's prices in the cost fields to see the AI cost of each conversation.

Changelog​

1.0.1 (2026-08-18)​

  • New app icon, consistent with the rest of the ECOSIRE catalogue.
  • Maintenance release; no change to how the module works.

1.0.0 (2026-06-23)​

  • Initial release: WhatsApp Cloud API connection with signed, de-duplicated webhooks; AI assistant on Anthropic Claude or OpenAI GPT with product, price, stock, lead, quotation and hand-over tools; 24-hour window enforcement; template sync; conversation, message and tool-call audit with AI cost tracking; multi-company rules.

Support​

Email info@ecosire.com with your Odoo version and a description of the conversation or setting in question. Setup support is included.