How we dropped WhatsApp messaging costs by 85% with a product trick
From INR 4.44 to INR 0.65 per message across 500k monthly messages - no infrastructure changes, just smarter session management.
At unizone.one we send a lot of WhatsApp messages. Hundreds of thousands every month - new ad alerts, wallet updates, referral nudges, campaign notifications. At that volume, the per-message cost of WhatsApp’s Business API stops being a line item and starts being a real problem.
Before we fixed this, our blended cost across all message types was sitting at INR 4.44 per message. We got it to INR 0.65. Here’s how.
How WhatsApp Business API pricing works
WhatsApp charges per conversation, not per message. A conversation is a 24-hour window during which you can send as many messages as you want for a single flat fee.
The catch is who starts it.
If your business sends the first message, it’s a business-initiated conversation. These require pre-approved templates - utility, marketing, or authentication - and each category has its own pricing. Marketing templates are the most expensive. Utility is cheaper, but at 500k messages a month, cheaper still adds up.
If the user sends the first message, it’s a user-initiated conversation. These open a 24-hour service window during which you can send free-form messages - no template required, no per-message approval, and at a significantly lower cost. In practice, within a service window you’re essentially messaging for free compared to business-initiated rates.
The gap between the two is large. We decided to close it deliberately.
The product change
We added a set of simple commands to the unizone app - small touchpoints that prompt users to message our WhatsApp number directly:
- Check new ads - see how many new ads are available for you
- Check balance - get your current wallet statement
- Get referral link - receive your personal referral link
Each of these is a one-tap action inside the app. The user sends a short message to our number, gets an instant useful response back, and - without either party really noticing - opens a 24-hour service conversation window.
Within that window, our system can send the user anything: ad alerts, payment confirmations, campaign updates. No template submission. No approval wait. No per-template cost.
The user gets a faster, more conversational experience. We get a dramatically cheaper messaging channel.
The numbers
Before: INR 4.44 per message blended across all types, including marketing.
After: INR 0.65 per message blended across the same mix.
That’s an 85% reduction. Across 500k messages a month sustained over 24 months, the savings compound quickly.
The key word is blended. We still send business-initiated templates where we have to - cold re-engagement, for instance, or reaching users who haven’t opened the app in a while. Those still cost what they cost. But a large share of our volume now flows through session windows that users opened themselves, and that share is what moved the number.
Why this works at scale
The trick is that the commands aren’t artificial. Users actually want to know their balance. They actually want to check for new ads. The WhatsApp touchpoints are genuinely useful - we just designed them with session economics in mind.
This matters because the alternative is dark patterns: sending users fake “confirm your account” messages just to open a session. That erodes trust, gets flagged, and eventually gets your number blocked. Our commands are things users would want to do anyway. We just built the prompt for it into natural spots in the app flow.
The other thing worth noting: this required almost no backend work. The session management is handled by WhatsApp’s own infrastructure. We just needed to track which users had active windows and route messages accordingly - send through the session if one is open, fall back to a template if not.
One week of product and engineering work. Two years of savings running in the background since.
The broader point
WhatsApp’s pricing model has a structural seam in it: user-initiated conversations are treated fundamentally differently from business-initiated ones. Most products ignore this because it requires thinking about messaging as something users can pull, not just something businesses push.
Once you flip that mental model, the product design follows naturally. What would a user genuinely want to ask us? Build that. The economics take care of themselves.