
# Scaling WhatsApp Outreach Safely

A real-world playbook for going from 0 to 30,000+ messages a month without getting your numbers banned.


## What 30k a month looks like

Accounts running this playbook regularly cross **30,000 WhatsApp messages a month**. A typical split: roughly 23,000 outbound and 10,000 inbound across 400–500 contacts, with a WhatsApp Business API number kept on the side strictly as a backup and for kicking off cold outbound on fresh contacts.

Getting there is not a straight line. The most common failure mode is also the most expensive: connect a single WhatsApp Business number with real history, scale it linearly for 60+ days, and then — somewhere around **1,000 messages per day** — Meta bans it. No warning, no appeal, no recovery. The number is gone.

Almost every safeguard described in this guide exists because that pattern keeps repeating. The principles distilled from those bans:

- Never trust a single number with all the traffic.
- Use a routing layer so each new click goes to the number with the most room left.
- Treat brand-new numbers as fragile and ramp them slowly.
- Avoid the "official" Meta solutions that quietly carry account-wide risk.

If you are planning to send anything close to this volume, please read this whole page before connecting your first number. The fresh-number rule below is the single most expensive lesson on this list.

## The strategy in one paragraph

Connect **multiple WhatsApp Web numbers** instead of one. Each new number goes through a **60-day warm-up** that gradually unlocks more messages and more new contacts per day. A short-link router automatically directs new clicks to whichever connected number has the most room left, and **stops sending new contacts to a number once it crosses 50% of its daily cap** so existing chats can keep flowing. **Follow-ups are randomised and respect quiet hours** so automated detection can't pattern-match the schedule. For the actual outbound sends, the recommended pattern is to split the risk: **WhatsApp Business API for kicking off cold outbound on fresh contacts** (and as a backup when a Web number needs a break), with **WhatsApp Web carrying the bulk of inbound, follow-ups, and ongoing conversations**. That is the entire system.

***

## The fresh-number rule (read this first)

> **The most important rule:** Never connect a SIM that has never received a WhatsApp message. If you put a brand-new, never-touched number into the app and immediately send an outbound message, you will get a permanent ban. Often within minutes. There is no appeal.

This is the trap that gets almost everyone. The reasoning is simple — Meta uses inbound activity as one of the strongest "this is a real person" signals. A WhatsApp account with zero inbound history that starts blasting messages looks exactly like a spam farm because, statistically, that is what spam farms do.

The fix is easy:

1. Put the SIM in any phone with WhatsApp installed.
2. Text the number from your personal phone three to five times. Say anything.
3. Get a friend or family member to text it once or twice as well.
4. Let it sit overnight if you can.
5. **Then** connect it to the app via [WhatsApp Web](whatsapp-web.md).

A handful of real inbound messages is enough. You are not trying to "warm" the number yourself at this stage — you are just proving to Meta that the number exists and people talk to it. The platform handles the actual warm-up curve after that.

> **Heads up:** This rule applies even to numbers that are weeks old. If the SIM has been active on a phone but has never received a WhatsApp message, it is still a "fresh" number from WhatsApp's perspective. The clock starts the first time someone WhatsApps the number, not the first time the SIM is activated.

***

## How warm-up works

Every WhatsApp Web number you connect goes through an automatic **ramp**. The ramp tracks "qualifying days" — days on which the number actually sent at least 75% of its current daily cap. Idle days don't count. This means the platform can't be tricked into graduating a number that hasn't proven itself in real usage.

**Messages you type by hand on the phone count too.** They don't appear in the daily meters (those only track what goes through the platform), but they do count toward earning a qualifying day. That's deliberate: a number carrying real, human conversations is exactly the kind of number WhatsApp trusts, so that activity should move the warm-up along. A brand-new number sitting unused has no hand-typed traffic either, so it still stays throttled.

The formula is linear:

- **Daily message cap** = `50 + 8 × (day − 1)`, capped at **500 messages/day**.
- **Daily new-contact cap** = `floor((day − 1) × 5 / 6)` (rounded down to a whole number), capped at **50 new contacts/day**.

The cap is reached at **day 58** for messages and **day 61** for new contacts. Until then, the number is intentionally throttled.

Note what that formula means on **day 1: the new-contact cap is 0**. A number you connected today can reply to anyone who writes to it, but it cannot open a conversation with someone it has never chatted with — a first-touch send (a campaign message, an automation's *Send WhatsApp Web message* step, an API send) fails with `Daily limit of 0 new contacts reached`. That is the platform's ramp, not a block from WhatsApp, and it lifts on its own as the number earns qualifying days. If the number already has real history, use **Raise daily limit** (below) instead of waiting; and if the number is only meant to *receive* something — a manager's phone getting booking reports, say — don't connect it as a channel at all, just address the message to it from the number that is already warm.

A few example points on the curve:

| Qualifying day | Daily messages | New contacts/day |
| -------------- | -------------- | ---------------- |
| 1              | 50             | 0                |
| 7              | 98             | 5                |
| 14             | 154            | 10               |
| 21             | 210            | 16               |
| 33             | 306            | 26               |
| 45             | 402            | 36               |
| 58             | 500            | 47               |
| 61             | 500            | 50               |

So at day 33 on a number with real usage, you can send around 300 messages and start roughly 26 new conversations per day. At day 58, you're at the auto-ramp ceiling: 500 messages, 47 new contacts.

### The "I already know this number has history" override

Sometimes you connect a number that **already** has months of organic WhatsApp use behind it — your personal number, a number you've been using for support, a number that has 6 months of two-way chats. Starting that number on day 1 of the ramp is silly. On the **Channels** page (**Settings → Channels → Channels**), the WhatsApp Web number's **Send Limits & Warm-up** meters have a **Raise daily limit** action that opens a panel with a warm-up day slider. If you set the slider to day 33 on a number with real history, the platform treats it like a number that has already done 33 days of warm-up — so the caps lift immediately to the day-33 level: around 306 messages and 26 new contacts a day (see the ramp table under [How warm-up works](#how-warm-up-works)).


Use this slider honestly. If the number does **not** have history, leave it alone. The ramp exists because Meta does the same math on their side. Skipping it on a number that doesn't deserve it puts you right back at the 1,000-messages-per-day cliff.

### The beyond-the-ramp manual override

After a number has completed the full 58-day ramp, the same panel has a second override that lets you push the daily message cap **above** 500 — up to 5,000. It starts at 750 messages/day and goes up from there in 250-message steps.

There is no official Meta number for what's safe here. The ceiling is trial-and-error: keep the slider conservative, watch for "restricted" status (see [What "restricted" actually means](#what-restricted-actually-means)), and back off the moment you see it. **750–1,250 messages/day** on a fully-ramped number with good signal is a workable range that many high-volume accounts settle into — but every account has its own risk profile, and your number is not the same as anyone else's.

::: tip
**Tip:** The beyond-ramp override is **only** available on numbers that have actually finished the 58-day ramp. The platform won't let a fresh number skip the warm-up by setting an override on day 1. This is deliberate.
:::


### Watching what a number actually sends

Every connected channel — and every individual WhatsApp number — carries its own **Send volume** graph on the same Channels page: a small line showing messages sent per day over the last 30 days, with the total beside it. For a WhatsApp Web number the graph sits directly under that number's row, next to its Send Limits &#38; Warm-up meters, so you can sanity-check that the number's real daily output is climbing gradually rather than spiking — the exact shape the warm-up is designed to produce. Hover the graph to see any single day's count, and click its header to expand it into the full performance view — sent, delivered, read, replies and new contacts, day by day, for just that channel or number (the same chart the dashboard shows for your whole account). The graph appears once the channel or number has sent at least one message in the last 30 days.


***

## Setting up multiple numbers

Once your first number is warming up, **connect at least one more**. Two numbers is a minimum for any real outbound volume; four is comfortable for ~30k/month.

You connect each new number from the **WhatsApp Web** card on **Settings → Channels → Channels** — same pairing flow, same fresh-number rule for each one. Each number shows its own connection status, current ramp day, today's usage, and a per-number **Automated Follow-ups** toggle (more on that below).


The "why" is simple risk distribution. If one number gets restricted, the other numbers absorb the traffic with no interruption to your outreach. If you only have one number, one ban means a zero-traffic day while you scramble to provision a replacement.

::: tip
**Tip:** Stagger when you connect new numbers. If you put four brand-new numbers on the platform on the same day, they all hit the day-1 cap (50 messages each = 200 total), and they all graduate together. Connecting them a week or two apart keeps your "highest-tier" number always producing while the next one warms up.
:::


### How many phones do you actually need?

Four numbers does **not** mean four phones. A single modern phone can hold **three WhatsApp numbers** with no unusual setup:

- **Two numbers in the regular WhatsApp app.** WhatsApp supports two accounts logged in at once and lets you switch between them (Android since 2023, iPhone since 2026).
- **One number in the WhatsApp Business app.** It's a separate app with its own account, so it sits alongside the two above.

The real constraint is SIMs, not apps: **each number still needs its own SIM or eSIM**, so a dual-SIM or eSIM-capable handset is what makes this practical. Four numbers therefore fits comfortably on two phones.

Two phones is also the better answer than one. Every number on a phone shares that phone's fate — if it's lost, wiped, or factory-reset, every account on it unlinks at once, which is exactly the concentration of risk this whole guide exists to avoid.

A few things we do **not** recommend:

- **WhatsApp cloning apps.** They do let you stack more accounts on one device, but they're outside what WhatsApp officially supports and they add ban risk to numbers you're trying to keep safe.
- **Emulators and remote/virtual device setups.** Stick with normal phones and real SIMs.

### The phones don't need babysitting

A common worry is having to re-pair sessions every couple of weeks. You don't. The session runs on our servers, so a paired phone can sit in a drawer, asleep or switched off, while messages keep flowing.

The only requirement is that **the phone comes online at least once every 14 days** — WhatsApp unlinks every linked device if it doesn't. Opening WhatsApp on the phone for a moment is enough, and there's no new QR scan involved.

If you find yourself reconnecting more often than that, it's usually one of two other things:

- **The passkey step** WhatsApp sometimes adds during pairing — see [Trouble Connecting? Use the Browser Extension](whatsapp-web.md#trouble-connecting-use-the-browser-extension).
- **web.whatsapp.com left open in a browser** with the same number, which runs a competing session and quietly knocks ours offline.

***

## Short-link routing

The way clicks get spread across multiple numbers is via the short-link system. When you send a broadcast that includes a link, the platform creates a single short URL pointing at all your connected numbers, not at one specific number. Every click hits the redirector, which then picks the best number for **that** click and redirects the user (a standard, instant web redirect known as a "302") to `wa.me/<that-number>`.

The picker logic, in plain English:

1. **Drop any number that is offline, banned, or in "forbidden" state.** No point sending a click to a number that can't reply.
2. **Among the still-routable WhatsApp Web numbers, prefer the one furthest below 50% of its daily cap.** It compares percentages (not absolute remaining) so a 500/day number at 20% used doesn't keep stealing traffic from a 250/day number at 10%.
3. **If every WhatsApp Web number is at or above 50% used, fall back to a WhatsApp Business API number if you have one connected.** Business API has no tracked cap on our side because Meta enforces its own limits server-side.
4. **If there's no Business API either, pick the least-loaded WhatsApp Web number as overflow** rather than dropping the click.

That 50% cutoff is deliberate. The daily cap counts **all** outbound messages, not just first-touches. Every new contact you start today keeps replying tomorrow and the day after, and those follow-ups also draw down the same daily cap. If we routed new clicks all the way to 100%, your existing chats would blow through the limit. The 50% cutoff leaves the second half of the cap for ongoing conversations.

See Short Links in Settings for how to set them up.


***

## Outgoing broadcast pacing

When you launch an **Outgoing** Broadcast (or classic outgoing campaign) with WhatsApp Web as the channel, the platform spaces every send by a random **30–90 seconds**, independently per contact. A 34-contact send rolls out over roughly 25 minutes instead of all at once. A 100-contact send over about an hour.

This is enforced — there is no toggle. Sending dozens of first-touch messages in a burst from a single number is the fastest way to get that number restricted, and the per-send pacing closes that hole regardless of send size or how fresh the number is.

If you **pause** a send mid-flight, every pending message is cancelled. When you **resume**, the remaining contacts roll forward at the same 30–90s cadence starting from when you resume — not from the original launch time. So if you pause 12 contacts in and resume three days later, the remaining 22 go out over the next ~25 minutes from that moment.

Sends via the official WhatsApp Business API are unchanged — Twilio-managed numbers don't have the same per-number ban risk as paired WhatsApp Web numbers, so they keep the previous batch-based behaviour.

***

## Automatic send guard

Some accidents don't look like an accident until it's too late. The clearest example: a broadcast that has been sitting idle for months gets paused and resumed, and instead of picking up where it left off it starts firing its **opening message** at people you have been chatting with all along. From the outside that looks exactly like a bot spamming a contact list — and it is one of the fastest ways to lose a number.

The platform now watches for this on every send, and stops it.

**What trips it**

- Your opening message starts going out to people who are **already in conversation with you** through that same broadcast or campaign. An opening message is meant for someone you haven't spoken to yet, so sending it to people mid-conversation is a strong sign something is wrong.
- A **sudden burst far above your own usual pace** — many more opening messages in an hour than that account has ever sent in an hour. This one only alerts us; it doesn't stop your sending, because a first launch is legitimately busier than an account's history.

**What happens**

- Sending pauses immediately. Nothing further goes out from that broadcast or campaign, and any messages that were queued up behind it are cancelled.
- You get a notification telling you what was paused and why.
- Our team is alerted at the same time, so we can look at it with you if you want a second pair of eyes.

**How to continue**

1. Open the paused broadcast or campaign.
2. Check the contact list and the opening message — in particular, whether the people about to receive it are people you have already spoken to.
3. If it all looks right, click **Resume**.

Resuming is your confirmation that you meant it: the guard stands down for that broadcast for the next **24 hours**, so it can't pause you again in a loop. After 24 hours it starts watching again.

If it wasn't intended, fix the contact list before you resume — the guard has done its job, and the number it was about to burn is still fine.

***

## Follow-ups are what gets you banned

The single most preventable cause of bans is reckless follow-ups. Specifically:

- **Round-time scheduling.** Years ago, if a follow-up said "6 hours later", every contact got it at exactly the 6-hour mark. Every follow-up landed at the same minute, on the second. Automated abuse detection systems live for patterns like this — five messages out of one number, all at the same wall-clock minute, every day, screams bot. **The platform now adds up to 15 minutes of forward jitter** to every scheduled message, so the wall-clock pattern is no longer identical between sends.
- **Middle-of-the-night sends.** Even when the AI is set to work 24/7, a follow-up that lands at 3 AM in the contact's local time gets you reported. Repeated 3 AM follow-ups across many contacts gets you banned.
- **Sunday batch-sends in the US.** Federal TCPA (a US law restricting unsolicited texts) expectations and Florida's FTSA (a similar Florida state law) make Sunday outreach to US numbers a recipe for complaints and account-level damage.

### Quiet hours

1. Open **Settings → Profile**.
2. Scroll to the **Follow-up timing** section.
3. Turn on **Respect quiet hours**.


The window is **08:00 to 20:00 in the contact's local time**:

- A follow-up scheduled to land before 08:00 contact-local is bumped forward to 08:00 (plus a few minutes of jitter).
- A follow-up scheduled to land at or after 20:00 is bumped to the next day at 08:00.
- The platform resolves each contact's timezone from their phone number, so this works even if you don't have explicit timezone data on every contact.

Right below it, **US strict mode (no Sunday sends)** adds a full-day Sunday block on top of the daily 08:00–20:00 window for US contacts. If you're doing any meaningful volume in the US, turn this on too.

### Per-number follow-up kill switch

On the **Channels** page, each connected WhatsApp Web number has an **Automated Follow-ups** toggle. This is independent of your Broadcast/Agent-level follow-up settings — when this is off, **no follow-ups** of any kind will go out from that specific number, regardless of what your outreach settings say.

**On a fresh number (anything under ~30 ramp days), turn follow-ups off entirely.** Fresh numbers should send the initial outbound only. Follow-ups are what tip a low-trust number into the "this is a bot" classification. Once the number is fully ramped and stable, you can flip the switch back on.

***

## What "restricted" actually means

If you hit Meta's invisible threshold, the number isn't always immediately banned. Sometimes it gets **restricted** first — a sort of yellow card. The behavior:

- **Existing chats still work.** You can reply to anyone who has already messaged you. The number is fully functional for warm conversations.
- **New chats are blocked.** Any attempt to send the first message to a brand-new contact silently fails.

This is critical for understanding **where the risk actually is**. Cold outreach — first messages to people who have never messaged you — is the single highest-risk activity on WhatsApp. Once a conversation is established, you can send hundreds of messages back and forth with almost no risk. The platform's smart routing already accounts for this with the 50% headroom rule, but you need to internalise it too: **first messages are expensive, replies are cheap.**

If you see a number go restricted, do not panic. Stop pushing new contacts to it, let it ride out the restriction on existing chats, and shift cold outreach to your other numbers in the meantime.

***

## Splitting risk: WhatsApp Web vs WhatsApp Business API

Once you're at any meaningful volume, the strongly recommended setup is to run two channels in parallel:

- **[WhatsApp Web](whatsapp-web.md)** carries the bulk of the work — inbound traffic, follow-ups, and every ongoing conversation. Web numbers look like real people to recipients (typing indicators, "online" status, profile pictures), which matters a lot during the prospect-becoming-a-customer phase.
- **[WhatsApp Business API](whatsapp-business.md)** sits on the side as a **backup** and is used to **kick off cold outbound on brand-new contacts** — the very first touch only. Business API enforcement is server-side, so when you hit a limit it's an error, not a ban.

The hand-off works like this. The first cold message to a brand-new contact goes out via Business API. The moment that contact replies — or the moment you want to follow up — the conversation moves over to a WhatsApp Web number and stays there. Web does the heavy lifting on volume; the API number stays lightly loaded so it's always available as a fallback when a Web number needs to cool down or sit out a restriction.

This isn't a hard rule — plenty of accounts run pure Web — but it is the safest way to scale past ~10k/month outbound.

***

## The coexistence myth

Meta has a feature called **coexistence** that they market as the official solution for using a single number across both the Business App and Business API at the same time. It is widely recommended elsewhere — and the platform deliberately does not lean on it.

> **Heads up:** Coexistence does **not** lift the underlying messaging limits. The same per-number caps still apply. And when Meta decides a coexistence number is misbehaving, the consequences can extend to **your entire Meta Business account**, not just the offending number — meaning ad accounts, page access, and other numbers under the same Business Manager. Multiple users have reported exactly this on Reddit and the Meta community forums.

The multi-number strategy described in this guide gets you past coexistence's limits **without** any of that account-wide exposure. If a Web number goes down, only that number is affected — your other numbers, your Business API channel, and your Meta Business account itself are untouched. That's the entire point of the architecture.

***

## Database reactivation — start with 100

A **database reactivation** is the act of re-engaging dormant leads — historical contacts pulled from a CRM, an old export, a list that hasn't been touched in months or years. It is one of the highest-risk outbound patterns on WhatsApp, and it does not matter which channel is used: this rule applies equally to **WhatsApp Web and WhatsApp Business API**.

**Never blast the full list at once.** Even on WhatsApp Business API, where Meta enforces limits server-side rather than banning the number, a bad opener sent to thousands of dormant contacts at once will tank the number's quality rating and burn the reactivation opportunity in one shot.

The pattern that works:

1. **Start with 100 contacts.** No more, on the first send.
2. **Wait 24 hours and watch the reply rate.**
3. **A near-zero reply rate is not silence — it is the signal that recipients are reporting the message as spam.** Dormant contacts who don't recognise the sender, or who see an opener that reads like a broadcast, hit "report" instead of "reply". Stop the send. Rewrite the opening line. Try a different angle — a question, a reference to the original context they signed up under, a softer re-introduction.

   **We now do this for you.** Once a send has gone out to at least 100 contacts, if fewer than 5% of them reply, we pause it automatically and email you. Your remaining contacts stay untouched, so you can fix the opener and resume without burning the rest of the list. Below 100 contacts we only send the warning email and keep the send running — a handful of quiet contacts isn't enough to judge an opener on.
4. **Send another 100 with the new opener.** Measure again.
5. **Iterate until the reply rate looks healthy**, then scale up gradually — 250, then 500, then larger waves — never the whole list in a single push.

The 100-contact starting batch is small enough that a bad opener doesn't permanently damage the sending number, but large enough that the reply rate is a real signal rather than noise.

***

## TL;DR — the playbook

A checklist of every rule from this article. Print this. Tape it to your monitor.

- [ ] **Never** connect a SIM that has never received a WhatsApp message. Text it 3–5 times from your personal phone first.
- [ ] Connect **at least two** WhatsApp Web numbers. Four is comfortable for ~30k/month.
- [ ] **Stagger** new-number connections by 1–2 weeks so they don't all graduate the ramp on the same day.
- [ ] Let the **60-day ramp** run untouched on numbers that don't have prior history. Don't use the ramp-day override slider unless the number really does have organic history.
- [ ] **Disable follow-ups** on any number under ~30 ramp days. Initial outbound only.
- [ ] Turn on **Respect quiet hours** in Settings → Profile → Follow-up timing. Add **US strict mode** if you have US traffic.
- [ ] Use **short links** for any send that delivers a link, so traffic auto-routes across all your numbers.
- [ ] Trust the **50% routing cutoff** — when a Web number hits 50% used, it stops getting new contacts, but existing chats keep flowing.
- [ ] Once numbers are fully ramped, use the **beyond-ramp manual override** conservatively (start at 750/day, watch carefully).
- [ ] If a number goes **restricted**, stop pushing new contacts to it. Existing chats still work — let it ride out.
- [ ] **Split risk**: WhatsApp Web carries the volume (inbound, follow-ups, ongoing chats); keep a WhatsApp Business API number on the side as a backup and to kick off the first cold message to brand-new contacts.
- [ ] **Database reactivation:** start with 100 contacts, measure reply rate, iterate the opener — never blast the whole list. We pause the send for you if the reply rate stays under 5% across 100+ contacts.
- [ ] **Do not** use Meta's coexistence feature. It doesn't lift limits and it puts your whole Meta Business account at risk.

***

## Need a hand?

Email [<span data-t="supportEmail">hi@youraiconnector.com</span>](mailto:hi@youraiconnector.com) and we'll help you walk through your specific setup.
