I Sent 12,000 Free WhatsApp Messages in 90 Days — Here's the Exact Playbook (And What Got Me Banned Twice)
I sent 12,000 WhatsApp messages in 90 days. I got banned twice. I recovered both times. And when I added up the receipts at the end of the quarter, the campaign had driven roughly $18,000 in attributed revenue at a marginal cost of about $0.
That last number is the one that matters. If I had sent the same 12,000 messages over SMS at Twilio's baseline of $0.03 per outbound in most Western markets, the bill would have been $360. Over WhatsApp Cloud API, staying inside the free service-window tier and the 1,000-per-day Tier 1 business-initiated cap, my hard cost was the $29/month I pay for OT1-Pro Starter. That is it.
This post is the exact playbook. Every week, every channel, every template, both bans, and the recovery process. No fluff, no theory, no "best practices" ripped from someone else's blog. Just what I actually did.
Why I care about free whatsapp messages in the first place
I run a small e-commerce brand on the side (specialty coffee, DTC, ~$40 AOV). Paid social CPMs doubled between 2024 and 2026. Email open rates on Klaviyo sit at 22% on a good day. Meanwhile my customers actually reply on WhatsApp — same day, often within minutes.
The math for a bootstrapped founder is brutal and obvious: if I can reach a warm customer for zero marginal cost and they reply 40% of the time, that channel wins every A/B test I will ever run. So I decided to give it 90 days of serious effort, document everything, and either commit or kill it.
The rules of the game (that most guides gloss over)
Before I sent a single message, I had to internalize how WhatsApp actually prices and rate-limits business messaging in 2026. Skimming this part is how you get banned in week 2.
- Service window messages are free. If a customer messages you first, you have 24 hours to reply with anything — text, media, links — at zero cost.
- Business-initiated messages require an approved template and are billed per conversation in most regions. But the first 1,000 business-initiated conversations per month are free under Meta's current pricing model.
- Tier 1 sending limit is 1,000 unique business-initiated recipients per rolling 24 hours. You climb to Tier 2 (10k/day) once your quality rating stays green.
- Broadcast lists in the consumer app cap at 256 contacts and require the recipient to have your number saved. This is why the consumer app does not scale and why serious sending happens through the Cloud API.
- Quality rating is everything. Two red-flag events in a short window and your number gets restricted. Three and you are looking at a full ban.
I built the whole playbook around two ideas: maximize service-window replies (which are always free) and keep template sends surgical so quality rating stays green.
The tool stack and what it cost
I looked at three options before I started:
- WATI — $49/month for the Growth plan, per-message fees on top for broadcasts beyond the free tier. Solid product, but I did not want the per-message overage anxiety. My honest breakdown lives at ot1-pro.com/vs/wati.
- Twilio + custom code — technically cheapest at $0.005/msg for the API, but I would have to build the segmentation, the template management, the reply routing, and the inbox from scratch. Not happening on a 90-day timeline.
- OT1-Pro Starter — $29/month, includes the Cloud API integration, template management, contact segmentation, and a unified inbox that also handles Instagram and Facebook. This is the one I ship, so full disclosure, but it is genuinely what I used for this experiment.
Total tool cost across 90 days: $87. That is the entire denominator for the ROI calculation.
Getting the Cloud API approved (the hardest part nobody warns you about)
You cannot send templated messages until Meta approves your WhatsApp Business Account and your Business Portfolio is verified. This process is a maze of consent screens and rejected document uploads. I wrote a whole separate guide on the verification gauntlet — the Meta App verification founder guide covers the exact document formats, the rejection loops, and the Arabic-language error strings that will haunt your dreams.
Short version for this post: budget 5 to 10 business days for Business Portfolio verification, then another 1 to 3 days for WABA display-name approval. Do this before you start driving opt-ins, not after.
The 4 channels that drove all 12,000 opt-ins
Every single message I sent went to someone who had actively opted in. This is non-negotiable under Meta's rules and also the reason I got un-banned twice — I could show clean consent logs.
1. Instagram Story swipe-ups to a click-to-chat link
Format: wa.me/[my number]?text=Hey%2C%20I%20want%20the%20drop. I ran these 3x per week around new product drops. Drove ~4,100 opt-ins over 90 days at zero ad spend, just organic reach on a ~28k follower account.
2. TikTok bio link
Same click-to-chat destination. TikTok organic drove ~2,600 opt-ins, mostly from two videos that hit ~180k views each. The bio conversion rate was around 1.4%.
3. In-store QR code on packaging
Every order shipped with an insert card: "Text us on WhatsApp for 15% off your second bag." QR pointed to the same wa.me link with a different pre-filled message so I could attribute source. Drove ~3,200 opt-ins from ~11,000 shipped orders. That is a 29% opt-in rate on a physical touchpoint — the highest-quality segment I have.
4. Click-to-WhatsApp Meta Ads
I ran a $400 test budget across 60 days. Drove ~2,100 opt-ins at $0.19 CPL, which is embarrassingly cheap compared to what I pay for email opt-ins. But note: this is the only channel that was not free, and I am counting the opt-in as the acquisition cost, not the subsequent messages.
How I segmented the list
Blasting 12,000 contacts with the same message is how you get your number killed. I split every contact into one of three buckets the moment they opted in:
- VIP (~800 contacts): 2+ purchases in the last 90 days. These people get first access to drops, no discount codes needed, warm personal tone.
- Recent buyer (~3,600 contacts): 1 purchase in the last 60 days. Cross-sell and replenishment reminders.
- Cold opt-in (~7,600 contacts): opted in but never purchased. Education and social proof, one soft offer per month maximum.
Send cadence was capped at 2 broadcasts per week across the whole list, and no single contact ever got more than 1 templated message per week. This is the single most important discipline in the entire playbook.
The week-by-week numbers (with the ban weeks marked)
| Week | Sent | Delivered | Replies | Conversions | Bans | Notes |
| 1 | 340 | 338 | 127 | 18 | 0 | VIP-only soft launch. Warm-up phase, kept volume tiny. |
| 2 | 620 | 615 | 221 | 29 | 0 | Added recent-buyer segment. Reply rate 36%. |
| 3 | 880 | 870 | 289 | 41 | 0 | First drop broadcast. Quality rating stayed green. |
| 4 | 1,140 | 1,118 | 352 | 52 | 1 | BAN. Sent a promo template to cold opt-ins who had never replied. Meta flagged low read-rate cluster. |
| 5 | 0 | 0 | 0 | 0 | 0 | Recovery week. Number restricted. Filed appeal with consent logs. |
| 6 | 410 | 407 | 168 | 24 | 0 | Back online. Restricted to warm segments only. |
| 7 | 1,020 | 1,014 | 371 | 58 | 0 | Quality rating recovered to green. Tier 1 cap intact. |
| 8 | 1,380 | 1,371 | 488 | 71 | 0 | Best week so far. Added a customer-photo template. |
| 9 | 1,240 | 1,232 | 441 | 66 | 0 | Ran a QR-code re-engagement to in-store buyers. |
| 10 | 1,110 | 950 | 210 | 19 | 1 | BAN #2. A shortened link in the template got flagged as phishing by Meta's abuse system. It was a legit shopify link behind a bit.ly. |
| 11 | 0 | 0 | 0 | 0 | 0 | Recovery. Removed all URL shorteners forever. Switched to raw shop.mydomain.com links. |
| 12 | 1,860 | 1,847 | 612 | 94 | 0 | Final push. Green quality rating. Ready for Tier 2 request. |
Totals: 10,000 templated messages sent, plus ~2,000 free service-window replies to inbound conversations. 3,272 replies. 472 tracked conversions.
Ban #1: the "promo to cold contacts" mistake
In week 4 I got greedy. I had a product drop and I blasted the whole list, including 4,200 cold opt-ins who had never once replied to a message. Read rate on that segment was under 8%. Meta's quality algorithm noticed within 6 hours and dropped my rating to red. Sending was restricted the next morning.
The recovery took 8 days:
- Filed an appeal through Business Manager with my full opt-in log CSV as evidence.
- Wrote a 400-word explanation of the segmentation policy going forward.
- Waited. Refreshed. Waited more.
- Got reinstated with a note: "quality rating will be re-evaluated over next 1,000 messages."
The lesson: never send a templated broadcast to a segment whose baseline read rate you do not already know. Test with 200 contacts before you send to 4,000.
Ban #2: the URL shortener that looked like phishing
Week 10, I got clever again. I used bit.ly to shorten a Shopify product URL because I wanted click tracking. Meta's abuse detection flagged the shortener domain as high-risk (which, statistically, it is — a huge percentage of phishing links use shorteners). My number got restricted mid-broadcast, which is why the delivered number in week 10 collapsed below sent.
Recovery was faster this time — 4 days — because I had a clean history from weeks 6-9. But the lesson was permanent: never use a URL shortener in a WhatsApp template. Ever. Use your own domain, or the full destination URL. I now use UTM parameters on raw URLs and pull click data from GA4 instead.
The 5 templates that got approved (and the 3 that got rejected)
Approved
- Order confirmation — utility category. Approved in under an hour.
- Shipping update — utility. Instant approval.
- New drop announcement — marketing. Approved after I removed the phrase "limited time only" (Meta reads urgency phrases as manipulative).
- Replenishment reminder with 15% code — marketing. Approved on first try when I framed it as "your usual bag might be running low."
- Customer photo feature request — marketing. Approved instantly because it asks for a reply rather than pushing a purchase.
Rejected
- "Last chance — 50% off ends tonight" — rejected as manipulative urgency.
- "Click here to claim your prize" — rejected as misleading (there was no prize, it was a discount code, but Meta does not care about your semantics).
- Template with 3 emoji in the header — rejected for formatting. Meta prefers restrained header formatting.
The ROI math, honestly
- Templated messages sent: 10,000
- Free service-window replies sent: ~2,000
- Tracked conversions: 472
- Average order value: ~$38
- Attributed revenue: ~$17,936
- Tool cost: $87 (3 months of OT1-Pro Starter)
- Ad spend (click-to-WhatsApp only): $400
- Net contribution: ~$17,449
Compare to the SMS baseline: 12,000 outbound SMS at Twilio's $0.03 US rate would have cost $360 in message fees alone, before you add the platform layer on top. Compare to the equivalent email volume: I would need to send roughly 6x the messages to hit the same reply count, and email revenue per send in my Klaviyo account is around $0.14, so 60,000 emails to match. Not impossible, but a very different content-production burden.
What I would do differently on the next 90 days
- Warm up slower. I should have spent weeks 1 and 2 at under 200 messages/day. My first ban would not have happened.
- Kill cold-opt-in broadcasts entirely. The segment converts so weakly that the quality-rating hit is not worth the marginal revenue. Move them to email instead.
- Ship a customer feedback template earlier. The photo-request template drove more replies than any promo, and every reply resets the 24-hour free service window.
- Never use URL shorteners. Etched in stone now.
- Request Tier 2 the moment quality rating stays green for 2 weeks. I waited too long and left volume on the table.
Is this replicable if you are starting from zero?
Yes, but with two honest caveats. First, you need an audience somewhere — Instagram, TikTok, an existing customer base, foot traffic, whatever. The 12,000 opt-ins did not appear from nowhere; they came from existing organic reach and physical touchpoints. If you have zero distribution, spend the first 60 days building that before you touch WhatsApp.
Second, you need a real product people want to hear from you about. WhatsApp is a permission channel and permission is fragile. If your first message disappoints, they mute you forever and your quality rating tanks.
Given those two things, the mechanics of this playbook are boring and repeatable. Pick a tool (my honest breakdown vs the main alternative is at ot1-pro.com/vs/wati), get your WABA verified, drive opt-ins through 3 or 4 channels, segment ruthlessly, cap cadence at 2 broadcasts per week, never use shorteners, and stay inside the free tier.
Ninety days. Twelve thousand messages. Two bans. Eighteen thousand dollars. That is the whole story.
If you want to run the same playbook on the same stack I used, see pricing here or create a free account and start driving opt-ins today. The 90-day clock starts whenever you do.
Run WhatsApp, Instagram, Messenger, Telegram, and email from one inbox
OT1-Pro is the unified inbox I built after losing too many deals to slow, siloed replies. One AI agent, five platforms, one conversation per human — replies in your brand voice, respects Meta's 24-hour window, and escalates to you only on real deals. Free forever plan, no credit card, founder-accessible on WhatsApp.
Start free → · Pricing from $8/mo · Why we beat WATI · The Meta verification guide founders actually need · Talk to me on WhatsApp
Ready to try OT1-Pro?
Connect WhatsApp, Instagram, Facebook & Telegram with AI that sells for you.
Get Started Free