Broadcast lists, opt-in vs opt-out, and why "just import contacts" gets you banned
Every WhatsApp marketing conversation starts here: you cannot cold-message strangers. Meta's WhatsApp Business Policy requires explicit customer opt-in. Restaurants that ignore this get one of three consequences: soft rate-limiting (your messages stop delivering), account restriction (24-72 hour block), or permanent number ban.
What counts as valid opt-in
- Customer messages you first — the strongest form. Anyone who WhatsApped your business number opted in by definition.
- Explicit tick-box during ordering — "Save my number for updates" checkbox on QR menu, ordering flow, or checkout page. Must be un-ticked by default and paired with a link to your privacy policy.
- Wi-Fi capture with disclosed opt-in — a Wi-Fi landing page that reads "By continuing, I agree to receive restaurant updates on WhatsApp".
- Physical opt-in card at the table, with signature.
- Aggregator order enclosure card — QR asking to save 10% off next order via WhatsApp; the scan opens WhatsApp and counts as customer-initiated.
What does NOT count
- Uploading your reservation-list phone numbers.
- Scraping numbers from Zomato reviews.
- Buying "restaurant customer lists" from data brokers.
- Assuming a customer opted in because they ordered on Swiggy 6 months ago.
Broadcast list vs WhatsApp Business API campaigns
| Capability | WhatsApp Business App broadcast | WhatsApp Business API (Go4WhatsApp) |
|---|---|---|
| Recipient cap | 256 per broadcast | Tier 2 = 10K/day; Tier 3 = 100K/day |
| Requires recipient to have your number saved | Yes | No |
| Template messages | Not supported | Yes, with dynamic variables |
| Delivered / read / replied tracking | Basic only | Full per-recipient webhook events |
| Automated opt-out management | Manual | Keyword "STOP" auto-unsubs |
| Segmentation | One list at a time | Tags, cohorts, past-order data |
| Compliance audit trail | None | Consent + message log per contact |
For a restaurant with more than ~150 opted-in customers, the WhatsApp Business App broadcast route is a dead-end. Every serious marketing motion runs on the API — which is what the Online eMenu Ordering Suite provisions via our sister BSP Go4WhatsApp.
Template vs session messages — the 24-hour rule
Once you have opt-ins, every message you send falls into one of two buckets. Understanding this determines your monthly bill.
Session messages
- Sent inside the 24-hour customer service window (opened when the customer sends you a message).
- Can be freeform text, image, video, document, interactive list, catalog card.
- Meta cost: free. Every additional message inside the same 24-hour window is included.
Template messages
- Pre-approved message shells with variables like
{{1}},{{2}}for personalisation. - The only way to message a customer outside the 24-hour window.
- Templates are submitted to Meta for review; approval typically 3-24 hours, one-time per template.
- Billed by Meta as a full conversation the moment you send them. Categories: marketing, utility, authentication (see next section for pricing).
Rule of thumb: transactional flows use utility templates or stay inside the session; marketing broadcasts use marketing templates. Never send a marketing offer in a utility template — Meta will reclassify it and you'll be billed at the higher marketing rate anyway, plus a template-quality strike.
Meta's 2026 per-conversation pricing (INR + AED)
| Category | What it's for | India (₹) | UAE (AED) | Saudi (SAR) |
|---|---|---|---|---|
| Service | Any reply inside the 24-hour window | Free | Free | Free |
| Utility | Order confirmed, out for delivery, receipt, appointment reminder | ~₹0.30 | ~AED 0.03 | ~SAR 0.03 |
| Authentication | OTP, verification code | ~₹0.30 | ~AED 0.03 | ~SAR 0.03 |
| Marketing | Promotional broadcasts, offers, birthday, re-engagement | ~₹0.85 | ~AED 0.09 | ~SAR 0.09 |
These are Meta's list rates as of July 2026 for verified Indian, UAE and KSA business numbers. Numbers move ±10% at Meta's discretion; check your Go4WhatsApp dashboard for the invoiced rate.
The 6 highest-ROI restaurant campaign patterns
These are the six patterns that generate the bulk of ROI for the ~1,200 restaurants running WhatsApp marketing on the Ordering Suite. Ranked by typical revenue-per-message across our operator base:
1. Cart-abandonment win-back
Trigger: customer opened the WhatsApp catalog, added items, didn't send the cart within 20 minutes. Automated template: "Your cart is waiting — complete now and get free delivery." Typical performance: 60-80% open, 15-25% recovery. Costs ₹0.85 per template; recovers a ~₹500 order at 20% rate = ₹100 revenue per ₹0.85 sent.
2. Birthday campaign
Trigger: customer's birthday from their profile (collected during order or opt-in). Template fires 3 days before with a personalised gift. Typical performance: 85-95% open, 8-12% conversion. Emotional resonance is high — this is often the top-performing campaign for dine-in restaurants.
3. VIP-tier exclusive drop
Trigger: top 10-20% of customers by order frequency or lifetime value. Template: "Only for our regulars — new dessert menu available before public launch." Typical performance: 90-98% open, 20-30% conversion. Small list, huge conversion. Perfect for chef's specials, seasonal menus, tasting events.
4. 30/60/90-day re-engagement
Trigger: customer hasn't ordered in 30 days (soft nudge), 60 days (10% offer), or 90 days (last-shot 15% offer + explanation). Typical performance: 70-85% open, 4-7% conversion at 30 days, 3-5% at 60, 2-4% at 90. Segmenting the offer strength by lapse duration is what makes this profitable.
5. Welcome flow (day 0, day 3, day 7)
Trigger: opt-in event. Day 0 — "welcome, here's our story"; Day 3 — "here's what regulars order"; Day 7 — "first-order 15% off inside 24 hours". Typical performance: 75-90% open, 10-18% first-order conversion within 7 days. This is the highest-leverage new-customer motion in the entire toolkit.
6. Referral / bring-a-friend
Trigger: manual or after 3+ successful orders. Template: "Get ₹150 off your next order for every friend you refer — reply FRIEND to get your code." Typical performance: 60-75% open, 8-15% activation when incentive is meaningful. Compounds because referred friends themselves become opt-ins.
Campaign patterns to skip in 2026
- Daily specials broadcast to entire list — high frequency, low relevance, causes opt-outs. Rebuild as a "reply LUNCH for today's special" opt-in journey instead.
- "We're open" reminders — customers already know. Wastes a marketing conversation.
- Untargeted festival greetings — nice sentiment, zero ROI. Send only if you attach a specific offer.
Worked example: 500-customer birthday campaign (INR)
Curry House (Mumbai, single-outlet dine-in + delivery, 500 opted-in customers). Running a birthday campaign that fires 3 days before each customer's birthday. Assume, over one month, 41 customers hit their birthday (500 × 30/365 ≈ 41). Campaign: "Happy birthday Rohan! Come dine with us this week, dessert on us."
Birthday campaign — one month, 41 customers
| Messages sent (marketing template) | 41 |
| Cost per template (Meta pass-through) | ₹0.85 |
| Total Meta cost | ₹34.85 |
| Open rate (typical for birthday) | 90% |
| Conversions (orders placed) | 41 × 8% = 3.3 ≈ 3 orders |
| Average order value (Curry House data) | ₹380 |
| Free dessert cost (₹80 each) | ₹240 |
| Gross revenue | ₹1,140 |
| Less: free dessert cost + template cost | -₹274.85 |
| Net contribution (one month) | +₹865.15 |
| Return on ad spend (ROAS) | 33× on Meta spend |
The absolute rupee number is modest — 3 orders, ₹865 profit. But scale is the point: this same campaign runs on autopilot for 12 months and generates ~40 birthday orders/year with essentially zero marginal work. Add cart-abandonment + welcome flow + 30-day re-engagement to the same list, and the compounded monthly revenue lift is ₹8,000-₹15,000 for a 500-customer restaurant.
Same campaign, AED math (Dubai single-outlet)
Birthday campaign — Dubai · 500 customers · one month
| Messages sent (marketing template) | 41 |
| Cost per template (Meta pass-through UAE) | AED 0.09 |
| Total Meta cost | AED 3.69 |
| Open rate | 90% |
| Conversions (orders) | 3 |
| Average order value (Dubai casual dining) | AED 65 |
| Free dessert cost (AED 12 each) | AED 36 |
| Gross revenue | AED 195 |
| Less: dessert cost + Meta cost | -AED 39.69 |
| Net contribution (one month) | +AED 155.31 |
| ROAS | 42× on Meta spend |
ROAS is actually higher in AED terms because average order values in Dubai casual dining (AED 65) are proportionally larger relative to a AED 0.09 template than ₹380 is relative to a ₹0.85 template. The birthday campaign is one of the most consistent AED-per-message ROI wins we see across GCC operators.
Worked example: cart-abandonment win-back
Cart-abandonment fires the moment a customer opens your WhatsApp catalog, adds items, but doesn't send the cart within 20 minutes. This is a utility-borderline flow — most operators send it as a marketing template to be safe, because it's promotional in tone. Assume 200 abandoned carts per month for a busy restaurant.
Cart-abandonment — one month, 200 abandonments
| Messages sent | 200 |
| Cost per (marketing template) | ₹0.85 |
| Total Meta cost | ₹170 |
| Recovery rate (typical) | 18% |
| Recovered orders | 36 |
| Average recovered order value | ₹520 |
| Gross recovered revenue | ₹18,720 |
| Less: Meta cost | -₹170 |
| Net recovered revenue (one month) | +₹18,550 |
| ROAS | 109× on Meta spend |
Cart-abandonment is the single highest-ROI WhatsApp motion in restaurants. It fires only on real intent signal (someone actually loaded the cart), and it costs pennies. If you have to pick one campaign to launch on day one, this is it.
Per-message cost vs Swiggy/Zomato marketing spend
Here's the comparison every restaurant owner really wants to see: WhatsApp marketing vs paid Swiggy/Zomato slots.
| Channel | Cost per order acquired | Take on order value | Effective margin cost |
|---|---|---|---|
| WhatsApp marketing (Ordering Suite) | ₹7-17 | 0% | ₹7-17 per order |
| Swiggy Ads (promoted listing) | ₹40-120 | 22-27% | ₹40-120 + ₹110-160 commission per ₹500 order |
| Zomato Ads (visibility boost) | ₹35-100 | 21-27% | Same math as Swiggy |
| Google local ads (India) | ₹80-200 | 0% | ₹80-200 per order (still 5-10× WhatsApp) |
| Instagram Reels boost | ₹40-90 per site click | 0% | ₹40-90 per click, ~10-15% site conversion = ₹350-600 per order |
Even at the most conservative WhatsApp numbers (₹17 per order acquired), the channel is 7-10× cheaper than Swiggy/Zomato ads per acquired order, before you factor in the 22-27% aggregator commission on the order value itself. See the full commission math in our Swiggy/Zomato true-cost breakdown.
See the WhatsApp campaign flow inside the Ordering Suite
Real screenshots of the broadcast composer, template library, opt-in dashboard and the live order queue orders flow into.
Take the product tourHow to collect 500 opt-ins in 90 days
Every restaurant we onboard asks the same practical question: "how do I get to 500 opt-ins fast?" The 90-day sequence below is what most Ordering Suite customers use.
| Method | Opt-ins/month | Effort | Notes |
|---|---|---|---|
| QR menu with opt-in ask at end of order | ~80-150 | Low (one-time setup) | Highest-volume channel |
| Wi-Fi capture page | ~40-80 | Low | Only if you offer Wi-Fi |
| Aggregator delivery card (10% off next order via WhatsApp) | ~40-100 | Medium (print + insert) | Highest LTV opt-ins |
| Take-away receipt QR | ~30-60 | Low | Auto-print from POS |
| Google Business Profile "WhatsApp" button | ~15-40 | Low | Free, low effort |
| Instagram bio + reels CTA | ~20-50 | Medium | Depends on social presence |
Add these together and a typical single-outlet operator hits 250-400 new opt-ins per month. In 90 days, that's 500+ comfortably. Once you cross 500, campaigns start compounding — which is when your marketing spend on Swiggy/Zomato ads becomes genuinely optional.
What we'd do if we had 500 opt-ins tomorrow
If we handed a restaurant 500 fresh WhatsApp opt-ins and asked "what campaigns turn this into money", the priority order is:
- Week 1 — cart-abandonment (automated). Highest ROI, fires only on real intent.
- Week 2 — welcome flow (day 0 / day 3 / day 7). Every new opt-in enters automatically.
- Week 3 — birthday campaign. Set once, runs forever.
- Week 4 — 30-day re-engagement. Kicks in as your list ages.
- Month 2 — VIP-tier exclusive drops. Requires order-history data to segment.
- Month 3 — referral loop. Now you have enough happy customers to advocate.
Total setup time: about 6 hours of configuration inside the Ordering Suite. Ongoing operational overhead: near zero — the campaigns fire from triggers, not manual work. The result: 30-60% of your monthly delivery revenue starts flowing through WhatsApp instead of aggregators. That's the entire WhatsApp marketing pitch, honestly.
Frequently Asked Questions
Is WhatsApp marketing legal for restaurants?
Yes, provided the customer opted in and you use pre-approved template messages via WhatsApp Business API. Cold-messaging strangers violates Meta's policy and can shut down your number. TRAI DND doesn't apply if the customer opted in via WhatsApp.
What are the highest-ROI WhatsApp campaigns?
Cart-abandonment (109× ROAS), birthday (33-42×), VIP drops, 30-day re-engagement, welcome flow, referrals. Skip generic "we're open" broadcasts and untargeted daily specials.
What's the per-message cost in 2026?
Marketing conversations: ~₹0.85 (India), AED 0.09 (UAE), SAR 0.09 (Saudi). Utility: ~₹0.30 / AED 0.03. Service (inside 24h window): free. Bundled at pass-through rates in the Ordering Suite ₹199/month plan.
What conversion rates should I expect?
Open rate 85-98%, click-through 20-40%, order conversion 5-12% on segmented campaigns. Bad campaigns hit 2-4%; great ones 15-25%.
How big does my list need to be?
Meaningful ROI starts at ~200 opt-ins. Between 200-500 you can run birthday + cart-abandon. Above 500 unlocks segmentation and compounds.
WhatsApp vs Swiggy/Zomato ads?
WhatsApp is 7-10× cheaper per acquired order than Swiggy/Zomato ads, before the 22-27% commission Swiggy/Zomato also charge on the order.
Broadcast list vs WhatsApp Business API?
App broadcasts are capped at 256 contacts and require your number to be saved. API campaigns via Go4WhatsApp are uncapped, support templates, delivery tracking, and auto-opt-out management.
How do I collect 500 opt-ins?
QR menu opt-in ask (80-150/mo) + Wi-Fi capture (40-80) + aggregator delivery card (40-100) + take-away receipts (30-60) + Google Business Profile button (15-40). Typically 250-400/month, hits 500 in 90 days.