Why SMS with Odoo?
Email open rates hover around 20%. SMS open rates exceed 98%, with most messages read within 3 minutes. For time-sensitive notifications — order confirmations, delivery updates, appointment reminders, payment alerts — SMS dramatically outperforms email. Twilio is the industry standard for programmatic SMS, and Odoo supports it natively through its IAP (In-App Purchase) framework or direct API integration.
Two Integration Approaches
Option A: Odoo IAP SMS (Easiest)
Odoo's built-in SMS module uses Odoo's own IAP service, which routes through Twilio behind the scenes. You buy SMS credits from Odoo and send directly from the Odoo interface. No Twilio account needed.
Option B: Direct Twilio API (More Control)
Connect your own Twilio account for lower per-message costs, custom sender IDs, two-way messaging, and full control over your messaging infrastructure. This guide focuses on Option B.
Prerequisites
- Odoo 17 or 18 with SMS module installed
- Twilio account with a phone number
- Twilio Account SID and Auth Token
- Credit on your Twilio account for sending
Step 1: Set Up Your Twilio Account
- Sign up at twilio.com
- Verify your identity (required for production sending)
- Buy a phone number with SMS capability
- Note your Account SID and Auth Token from the Twilio Console dashboard
- For production use, register your business for A2P 10DLC compliance (US numbers) or get a short code
Step 2: Configure Odoo SMS Provider
- In Odoo, go to Settings → Technical → SMS → SMS Provider
- Create a new provider or modify the default
- Set provider to Twilio
- Enter your Account SID, Auth Token, and Phone Number
- Test with a message to your own phone
If your Odoo version does not have a native Twilio provider option, you can integrate via a custom module or use the Odoo Apps Store connector.
Step 3: Create SMS Templates
Set up reusable templates for common notifications:
# Order Confirmation
Hi {{object.partner_id.name}}, your order {{object.name}}
has been confirmed. Total: {{object.amount_total}} {{object.currency_id.symbol}}.
Track: {{object.portal_url}}
# Delivery Notification
Your order {{object.sale_id.name}} is out for delivery.
Expected: {{object.scheduled_date.strftime('%B %d')}}
Tracking: {{object.carrier_tracking_url}}
# Payment Reminder
Hi {{object.partner_id.name}}, invoice {{object.name}}
for {{object.amount_residual}} {{object.currency_id.symbol}} is due
{{object.invoice_date_due.strftime('%B %d')}}.
Pay: {{object.portal_url}}
# Appointment Reminder
Reminder: You have an appointment tomorrow at
{{object.start.strftime('%I:%M %p')}}.
Location: {{object.location}}Step 4: Set Up Automated SMS Triggers
Create automated actions in Odoo to send SMS on business events:
- Sale order confirmed → Send order confirmation SMS
- Delivery order validated → Send shipping notification
- Invoice due in 3 days → Send payment reminder
- Calendar event tomorrow → Send appointment reminder
- CRM lead stage changed → Send follow-up SMS to salesperson
Step 5: Enable Two-Way SMS (Advanced)
Twilio supports incoming SMS via webhooks. Configure two-way messaging:
- In Twilio Console, go to your phone number settings
- Set the Messaging Webhook URL to:
https://your-odoo.com/twilio/incoming - Create an Odoo controller to handle incoming messages
- Route incoming SMS to the appropriate Odoo record (CRM lead, helpdesk ticket, etc.) based on the sender's phone number
Cost Comparison
| Method | Cost per SMS (US) | Setup Effort | Features |
|---|---|---|---|
| Odoo IAP | ~$0.015 | Zero | One-way only |
| Twilio Direct | ~$0.0079 | Moderate | Two-way, webhooks, analytics |
| Twilio + Short Code | ~$0.005 + $1K/mo | High | High volume, branding |
Troubleshooting
Messages Not Delivering
Check Twilio's messaging logs in the Console. Common issues: unverified sender number, invalid recipient format (must include country code), or insufficient account balance. For US numbers, ensure A2P 10DLC registration is complete.
SMS Blocked by Carriers
Carriers filter messages that look like spam. Avoid URL shorteners, excessive caps, and promotional language in transactional messages. Register your brand and campaign use case with Twilio's Trust Hub.
Delayed Messages
Twilio queues messages and delivers them within seconds normally. Delays typically indicate carrier-level queuing (during high traffic periods) or A2P filtering. Check Twilio's status page for outages.
DeployMonkey SMS Integration
DeployMonkey instances support Twilio integration out of the box. Our AI agent can help configure your SMS templates, set up automated triggers, and troubleshoot delivery issues directly from your dashboard.