Why WhatsApp, Not Your App
We keep telling clients this: your customers don't want another app. They want WhatsApp. In India, WhatsApp is the default communication channel for everything — business, personal, government services. Building customer-facing workflows on WhatsApp instead of (or in addition to) your own app can increase engagement by 3-5x. We've seen this across five implementations: an e-commerce order tracking bot, a D2C customer support flow, an insurance claims workflow, a restaurant ordering system, and a healthcare appointment booking system.
Getting API Access: The Business Verification Gauntlet
The WhatsApp Business API is not self-service. You either go through a BSP (Business Solution Provider) like Twilio, Gupshup, or Wati, or apply directly through Meta. Direct access requires: a Facebook Business Manager account, business verification (which takes 2-4 weeks and requires actual business documentation), a phone number that isn't registered on WhatsApp personal or WhatsApp Business app, and compliance with WhatsApp's commerce and messaging policies.
We recommend going through a BSP for most clients. Gupshup is our preferred choice for Indian implementations — they have local support, competitive pricing (about ₹0.35-0.80 per conversation depending on category), and good documentation. The BSP handles the hosting and Meta relationship, and you interact through their API. Setup time via BSP: about 1 week. Direct access setup: 3-4 weeks.
Message Templates: The Gatekeeping Layer
You can't just send any message to a customer on WhatsApp. Outbound messages (business-initiated) must use pre-approved message templates. Each template is submitted to Meta for review and takes 24-48 hours for approval. Templates are categorized as: utility (order confirmations, delivery updates — cheapest), authentication (OTPs — also cheap), and marketing (promotions, re-engagement — most expensive, about 2x the cost of utility).
The templating system is restrictive. You can include variables (like customer name, order number) but the static text must be pre-approved. Want to change a word in your order confirmation? Submit a new template and wait for approval. We maintain a library of 30-40 pre-approved templates per client to cover common scenarios, and we've learned to make templates flexible by strategically placing variables where the content might change.
Inside a 24-hour conversation window (triggered when the customer messages first or responds to a template), you can send free-form messages without templates. This window is critical for customer support — the customer sends "what's my order status?", you have 24 hours to respond with any message format. We structure our support bots to keep conversations within this window to avoid template costs.
Building Interactive Workflows
WhatsApp supports: interactive buttons (up to 3 buttons per message), list messages (up to 10 selectable items), product catalogs (integrated with your product database), and location sharing. We use these to build sophisticated flows without the customer needing to type anything.
For the restaurant ordering system: the customer sends "menu" → we send an interactive list of categories → they select "pizza" → we send a list of pizza options with prices → they select a pizza → we show a confirmation with "Add more" and "Checkout" buttons → checkout collects delivery address via location pin → payment link via UPI. The entire order flow happens in WhatsApp without typing anything. Average order time: 90 seconds.
The technical backend: we use a state machine to track each conversation's state (Node.js with Redis for state storage). Each incoming message is processed against the current state to determine the next action. The state machine handles: forward navigation, backward navigation ("go back to categories"), timeout (reset state after 30 minutes of inactivity), and edge cases (what if the user sends a text message when we're expecting a button click?).
The Costs Add Up
WhatsApp Business API pricing is per-conversation (a 24-hour window), not per-message. But the costs add up at scale. For a D2C brand sending order updates to 50,000 customers per month: approximately 50,000 utility conversations at ₹0.35 = ₹17,500/month. Add marketing messages (2 campaigns to 50K users): 100,000 marketing conversations at ₹0.80 = ₹80,000/month. Total: nearly ₹1 lakh/month just for WhatsApp messaging.
We optimize costs by: batching order updates (one conversation can contain multiple messages within 24 hours), using free-tier flows (if the customer initiates the conversation, the 24-hour window is cheaper), and being strategic about marketing campaigns (segment carefully — don't blast everyone). One client reduced their WhatsApp costs by 40% by segmenting marketing messages to only engaged users (those who'd opened the last 3 messages).