WAHA vs Twilio: The SQL That Finds Your Real WhatsApp Bill
Description and use
Using a SQL query, you can precisely identify which outbound WhatsApp messages are billable under Meta’s template rules and compare actual costs to Twilio’s pricing. With 10,000 messages per month, Twilio costs range from $63 to $138, while WAHA’s cost is almost zero.
Problem
Determining the actual cost of WhatsApp messaging when self-hosting with WAHA versus using Twilio’s paid service, accounting for Meta’s template pricing rules and WAHA’s licensing changes.
Outcome
The SQL query accurately identifies billable outbound messages, revealing that Meta charges only for messages sent outside a 24‑hour window. At 10,000 messages/month, the estimated Twilio cost ranges from ~$63 (utility templates) to ~$138 (marketing templates), while WAHA’s cost is effectively $0 for software and ~$10 for hardware, making self-hosting several times cheaper.
Workflow
- 1. Identify WhatsApp inbox IDs in Chatwoot.
- 2. Run the provided SQL query against the Chatwoot messages table, pulling 33 days of history and counting outbound messages inside and outside the 24‑hour window.
- 3. Extract the "outside_window" count – the only messages that incur Meta charges.
- 4. Apply Meta’s template rate (e.g., $0.0053 for utility in Israel) to the outside_window count.
- 5. Add Twilio’s $0.005 per message fee for all messages to estimate total Twilio cost.
- 6. Compare the estimated Twilio cost to the negligible WAHA cost (software $0 + hardware ~$10).
Evidence
Meta does not charge per message. It charges per template sent outside an open customer service window.
Since November 1, 2024 non-template messages are free. Since July 1, 2025 utility templates answering a user inside an open 24-hour window are also free.
In release 2026.6.1, announced June 21, 2026, every Plus feature moved into the free Core image and the tiers collapsed into a single optional $5/month Community subscription.
Twilio’s WhatsApp pricing is two layers. Its own fee is $0.005 per message, inbound or outbound, and that one applies to every message.
- Record date: 2026-10-22T17:11:19.596Z