Why WhatsApp + Odoo?
WhatsApp has 2+ billion users. Your customers read WhatsApp messages (98% open rate) but ignore emails (20% open rate). Integrating WhatsApp with Odoo means: invoice reminders that actually get read, delivery notifications customers see instantly, and support conversations in the app they already use.
Integration Options
| Method | Cost | Capability |
|---|---|---|
| WhatsApp Business API (official) | Per-conversation pricing | Full: templates, media, buttons |
| Twilio WhatsApp | $0.005-0.08/message | Full via Twilio API |
| Community modules | Free to $200 | Varies (some use unofficial API) |
| Odoo 18+ built-in | Included | Basic WhatsApp via official API |
Setup with WhatsApp Business API
Prerequisites
- Facebook Business account
- WhatsApp Business API access (apply via Meta)
- Verified business phone number
- Approved message templates
Step 1: Meta Business Setup
- Create a Meta Business account
- Add WhatsApp Business product
- Register a phone number
- Create message templates (require approval)
Step 2: Template Examples
# Invoice Reminder Template:
"Hi {{1}}, your invoice #{{2}} for {{3}} is due on {{4}}.
Pay online: {{5}}
Thank you!"
# Order Confirmation:
"Hi {{1}}, your order #{{2}} has been confirmed!
Estimated delivery: {{3}}
Track: {{4}}"
# Delivery Notification:
"Hi {{1}}, your package is out for delivery today!
Order: #{{2}}
Tracking: {{3}}"
# Appointment Reminder:
"Hi {{1}}, reminder: your appointment is scheduled for
{{2}} at {{3}}. Reply YES to confirm or RESCHEDULE to change."Step 3: Odoo Integration
# Custom Odoo module for WhatsApp
class WhatsAppService:
def __init__(self, phone_id, access_token):
self.phone_id = phone_id
self.access_token = access_token
self.api_url = f"https://graph.facebook.com/v18.0/{phone_id}/messages"
def send_template(self, to, template_name, parameters):
payload = {
"messaging_product": "whatsapp",
"to": to,
"type": "template",
"template": {
"name": template_name,
"language": {"code": "en"},
"components": [{
"type": "body",
"parameters": [
{"type": "text", "text": p} for p in parameters
]
}]
}
}
headers = {
"Authorization": f"Bearer {self.access_token}",
"Content-Type": "application/json"
}
response = requests.post(self.api_url, json=payload, headers=headers)
return response.json()Use Cases
Sales
- Quotation sent notification
- Order confirmation with details
- Payment received confirmation
- Upsell / cross-sell messages
Accounting
- Invoice sent notification with pay link
- Payment reminder (7 days, 14 days, 30 days overdue)
- Payment received thank you
Inventory / Delivery
- Order shipped notification with tracking
- Out for delivery notification
- Delivery confirmation
- Restock notification for B2B customers
Support
- Ticket created confirmation
- Ticket resolved notification
- Customer satisfaction survey
Automated Triggers
# In Odoo, trigger WhatsApp messages via automated actions:
# Settings → Technical → Automated Actions
# Trigger: Invoice becomes overdue
# Action: Send WhatsApp reminder template
# Condition: invoice_date_due < today AND payment_state != 'paid'
# Trigger: Delivery order validated
# Action: Send WhatsApp delivery notification
# Condition: state = 'done' AND partner has mobile numberBest Practices
- Only send messages customers have opted in for
- Use approved templates for first messages (WhatsApp policy)
- Include opt-out option in every message
- Do not spam — limit to transactional and important notifications
- Test templates in sandbox before production
DeployMonkey + WhatsApp
DeployMonkey's AI agent can help configure WhatsApp integration for your Odoo instance — template creation, automated triggers, and API setup. Send transactional messages that your customers actually read.