To run a coupon or promo-code campaign on WhatsApp, send an approved Marketing template with a copy-code button to customers who have opted in, personalise it with their name, a unique code and an expiry date, and link to your store with UTM tags so you can track every redemption. Keep it to one or two offers per customer per week, time it around paydays and festive sales, and match redeemed codes in Shopify or WooCommerce against delivered messages to measure real ROI.
Indian shoppers are used to hunting for codes before they pay. The question is not whether a coupon works, it is whether it reaches the right person, gets used by that person only, and earns back more than it costs. This playbook walks through each step, from picking the coupon type to working out the rupee math.
Why WhatsApp coupons beat SMS and email coupons in India
SMS was the default coupon channel for a decade, but promotional SMS in India now travels through DLT-registered headers, lands next to OTPs and bank alerts, and is filtered into spam folders by many phones. Email coupons often sit in the Gmail Promotions tab, and a large share of Indian customers, especially outside metros, rarely open email at all. WhatsApp is where the same customers already talk to family, sellers and delivery agents.
The format helps too. A WhatsApp template can carry an image of the product, a personalised line, a copy-code button and a store link in one message. There is no need to hand-type a code from an SMS into a checkout field, which is where many SMS redemptions are lost.
The ranges below are industry estimates commonly reported by Indian marketers and messaging providers for opted-in lists. They are not results from a single study, and your numbers will depend on list quality, offer strength and category.
| Metric (industry estimates) | Promotional SMS | WhatsApp (opted-in) | |
|---|---|---|---|
| Open or read rate | Hard to measure; often ignored among alerts | 10-25% | 60-90% read |
| Click-through on offer link | 1-3% | 1-3% | 8-20% |
| Coupon redemption | 0.5-2% | 0.5-2% | 2-6% |
| Code entry friction | Customer retypes code | Copy from email | One-tap copy-code button |
| Two-way replies | Rarely supported | Slow, rarely used | Native; customer can ask questions in chat |
The reply column matters more than it looks. When a customer writes "does this work on sale items?", you can answer inside the same chat and save an order that an SMS would have lost.
Coupon types and when to use each
Different coupons solve different problems. A flat ₹200 off pushes a first purchase, while free shipping protects margin better on low-price carts. Pick the type from the goal, not from habit.
| Coupon type | Example | Best used for | Watch out for |
|---|---|---|---|
| Flat amount off | ₹150 off on ₹999+ | Clear value on mid-price carts | Always set a minimum order value |
| Percentage off | 15% off, max ₹300 | Sale events, higher-price items | Cap the maximum discount |
| BOGO | Buy 2 get 1 free | Consumables, apparel basics, clearing stock | Apply only to the cheapest item |
| Free shipping | Free delivery above ₹499 | Low-AOV stores, tier-2 and tier-3 buyers | Check courier cost per pincode |
| First order | WELCOME10 for new buyers | Converting leads from ads and store visits | Restrict to one use per phone number |
| Win-back | ₹250 off, 60 days since last order | Lapsed customers | Exclude customers who bought recently |
| Birthday | Gift worth ₹200 this week | Loyalty and repeat buyers | Needs a reliable birthday field |
| Referral | You and a friend get ₹100 | Low-cost acquisition via word of mouth | Guard against self-referrals |
Coupons also work well for raising basket size. A "₹100 off when you add one more item" offer is a cross-sell in disguise, and our guide to WhatsApp upsell and cross-sell tactics to lift AOV covers how to pair products with those offers.
Unique vs generic codes: stopping leakage and abuse
A generic code such as DIWALI20 is easy to create and easy to remember. It is also easy to forward. Within hours of a big send, generic codes often appear on coupon aggregator sites and deal channels on Telegram, and your discount ends up funding buyers who were never on your list.
Unique codes solve most of this. Each customer gets a different code, for example RA7K2Q9, that works once and only for that customer. If one appears on a deal site, you know exactly which contact leaked it and you can switch that single code off.
- Single use per code. Set a usage limit of one in your store settings.
- Bind to the customer. Restrict the code to the customer's email or account where your store supports it, or verify the phone number at checkout.
- Short expiry. 48 to 72 hours creates urgency and limits the time a leaked code is useful.
- Minimum order and maximum discount. Protects you from a ₹300 cap being applied to a ₹310 order.
- Exclusions. Keep already discounted products and gift cards out of the offer.
- Refund rules. Decide whether a code is reissued when an order is cancelled or returned.
Generic codes still have a place. Use them for public campaigns such as Instagram posts, and reserve unique codes for your WhatsApp list, where the extra effort pays off because every code is traceable.
Setting up a WhatsApp coupon template that gets approved
Any message that promotes an offer has to go out as a template when the customer has not messaged you in the last 24 hours, and coupon templates belong in the Marketing category. Submitting a discount message as Utility to pay less usually ends with Meta re-categorising or rejecting it. Our explainer on Marketing vs Utility WhatsApp message categories shows where the line sits.
Meta offers a copy-code button for Marketing templates, often available as the Coupon code template type when you create a template. The customer taps the button, the code is copied, and they paste it at checkout. The code is passed as a button parameter at send time, so one approved template can deliver thousands of different unique codes. Meta limits the code length, so keep codes short, roughly 15 characters or fewer.
A body that works well looks like this:
Hi {{1}}, your festive offer is here. Get {{2}} off your next order on our store. Use the code below before {{3}}. Tap Copy code, then shop now.
Here {{1}} is the first name, {{2}} is the offer such as ₹200 or 15%, and {{3}} is the expiry date. Add a header image of the product, a copy-code button and a URL button to your store. If you are new to placeholders, read our guide to WhatsApp template variables and personalisation before you submit, since badly labelled sample values are a common rejection reason.
Opt-in is mandatory. Meta requires that customers have agreed to receive messages from your business on WhatsApp before you send them marketing. Collect consent at checkout, on a website form or with a click-to-WhatsApp ad, record when and where it was given, and honour opt-outs immediately. Customer consent also matters under India's data protection rules, so keep that record.
Get a 1-minute BSP audit on WhatsApp
Drop your WhatsApp number — we line-item your current invoice against Meta India rates in under 60 seconds. India-hosted, DPDP-compliant.
When to send: Diwali, payday and EOSS timing
Timing can matter as much as the discount itself. Indian buying follows a calendar that is easy to plan around.
- Diwali and the festive season. Navratri, Dussehra, Dhanteras and Diwali (8 November 2026) form the biggest buying window of the year. Send a teaser a week out, the main code three to five days before the festival, and a last-chance reminder the day before. Everyone else is sending too, so a strong offer to a well-segmented list beats a generic blast.
- Marketplace festive sales. Large marketplace sales usually start in late September or early October. Match or pre-empt them with an early-access code for your best customers.
- Payday, 1st to 5th of the month. Salaried buyers spend more in the first week after salary credit. A payday code on the 1st or 2nd often outperforms the same code sent mid-month.
- End of season sale (EOSS). Apparel and footwear run EOSS in roughly June-July and December-January. Send clearance codes to past buyers of that category first.
Within the day, test lunch (12:30 to 2 pm) and evening (7:30 to 9:30 pm) IST, and avoid promotional sends late at night. Run a small segment first and scale the slot that gets the most redemptions, not just the most reads.
Frequency caps and Meta's marketing message limits
Sending more coupons does not always bring more orders. Meta limits how many marketing templates any one person receives from businesses over a period. When that limit is reached, the message is not delivered and your report shows error 131049. It is a pacing signal, not a bug, and retrying the same person minutes later will not help.
Keep your own caps below Meta's:
- One or two promotional messages per contact per week in normal months.
- Up to three during a festival or sale week, and only for contacts who opened or clicked recently.
- Stop sending offers to contacts who have ignored the last four or five.
- Suppress anyone who replied STOP or blocked you.
Segmentation is what makes these caps work. Send win-back codes only to lapsed buyers and first-order codes only to people who have never bought. Our guide to WhatsApp broadcast audience segmentation covers how to build those lists. No provider, including us, can promise that your number will never be restricted. High block rates, low-quality lists and irrelevant offers lower your quality rating, and good consent and relevance are the only reliable protection.
Tracking redemption end to end
A campaign you cannot measure is a guess. Use three layers together.
- UTM links. Add utm_source=whatsapp, utm_medium=broadcast and utm_campaign=diwali26_winback to the store URL in the template, so your analytics shows WhatsApp sessions and orders separately from ads.
- Unique codes per segment. Even if you do not issue one code per customer, give each segment its own code, for example WB-DIWALI for win-back and VIP-DIWALI for top buyers. Code usage then tells you which segment responded.
- Store discount reports. Shopify lets you create discount codes with usage limits and bulk-generate unique codes through its discount apps or API. WooCommerce coupons support usage limits per coupon and per user, plus allowed emails. Export redemptions after the campaign and match them to the delivered list.
Your real redemption rate is redeemed codes divided by delivered messages, not sent messages. Undelivered messages, including 131049 holds, should not count against the offer.
Coupons also pair naturally with recovery flows. A small code sent a few hours after a customer leaves the checkout often recovers orders that a plain reminder would not. See our WhatsApp abandoned cart recovery playbook for the timing and message sequence.
Cost math and a worked ROI example
RichAutomate is usage-only: ₹0 setup and ₹0 monthly. You choose between two billing models.
- SaaS Pay: ₹1.20 per marketing message and ₹0.30 per utility message, all-inclusive.
- Client Pay: ₹0.10 per message platform fee, with Meta's charges billed to your own Meta payment method.
| Campaign size (marketing messages) | SaaS Pay total | Client Pay platform fee | Client Pay Meta charges |
|---|---|---|---|
| 1,000 | ₹1,200 | ₹100 | Billed by Meta at its India marketing rate |
| 10,000 | ₹12,000 | ₹1,000 | Billed by Meta at its India marketing rate |
| 50,000 | ₹60,000 | ₹5,000 | Billed by Meta at its India marketing rate |
| 300 order confirmations (utility) | ₹90 | ₹30 | Billed by Meta at its utility rate |
Now the worked example. You send a win-back coupon to 10,000 opted-in customers on SaaS Pay. The offer is 15% off, and your gross margin is 40%.
- Messaging cost: 10,000 x ₹1.20 = ₹12,000.
- Orders: 3% redemption = 300 orders.
- Revenue: 300 x ₹800 AOV = ₹2,40,000.
- Gross profit before discount: 40% of ₹2,40,000 = ₹96,000.
- Discount cost: 15% of ₹800 = ₹120 per order, so 300 x ₹120 = ₹36,000.
- Order confirmations: 300 utility messages x ₹0.30 = ₹90.
- Net contribution: ₹96,000 - ₹36,000 - ₹12,000 - ₹90 = ₹47,910.
That is ₹20 of revenue for every ₹1 spent on messages, and about ₹1 of net contribution for every ₹1 spent on messages and discounts combined. Two cautions keep the math honest. First, some of those 300 customers might have bought anyway, so hold back a small control group of 5-10% who get no coupon and compare. Second, a 1% redemption rate gives 100 orders and ₹80,000 revenue, which leaves roughly ₹8,000 after costs, so offer strength and list quality decide whether the campaign pays. Check current figures on the RichAutomate pricing page before you plan a big send.
Mistakes to avoid
- Sending coupons without opt-in. Bought lists and scraped numbers lead to blocks, a poor quality rating and possible restrictions.
- Putting offers in Utility templates. It gets re-categorised or rejected and damages trust with Meta.
- One generic code for everyone. It leaks within hours and you cannot tell who used it.
- No expiry or minimum order. Open-ended codes train customers to wait for discounts and erode margin.
- Blasting the whole list daily in festive season. 131049 holds rise, block rates climb and later campaigns suffer.
- Measuring reads instead of redemptions. A 90% read rate means nothing if nobody uses the code.
- Ignoring replies. Customers asking "is this valid on COD?" are ready to buy; answer them fast.
- Discounting customers who would buy anyway. Use a control group and keep your best offers for lapsed or new buyers.
Get these right and coupons become one of the most profitable messages you send, because every code can be traced back to a customer and a rupee value.
Ready to run your first traceable coupon campaign? Start free with RichAutomate with ₹0 setup and ₹0 monthly, submit a copy-code Marketing template, and send unique offers to your opted-in customers this festive season.