Staying inside WhatsApp limits
Scenario: You send campaigns from a WhatsApp line connected to Spun and you want that line to keep working. This page lists what WhatsApp publicly says it looks at, then every Spun control by its name in the product, with its default and how to turn it off.
Two things to keep in mind throughout:
- Spun cannot see WhatsApp's own scoring. Every number on this page is a Spun control or a Spun estimate from what is observable on your line. None of it is a WhatsApp score and none of it is a promise about bans.
- Every guard is optional. The defaults are cautious because a lost line costs more than a slower campaign, and a manager can relax any of them for a line in one place.
What WhatsApp scores
WhatsApp has published what it treats as abuse: bursts of messages sent faster than a person could type, the same text going to many people who never saved the sender, messages that get reported or blocked (weighted heavily on first contact), one-way accounts that send far more than they receive, numbers that go quiet and then blast, unofficial clients, and the reputation of the network a session connects from. The public research guides on spun.com cover each signal with sources:
- Why WhatsApp bans numbers
- WhatsApp spam bans
- Bulk messages without a ban
- Warming up a new number
- Network bans on WhatsApp Web
- The broadcast limit
- What to do if your number is banned
Every control below maps to one or more of those signals.
The platform rate limit (always on)
Spun caps every line at 8 messages per minute, 200 per hour and 1,000 per day. A line in its first week sends at 3 per minute (the new-line warm-up tier, which you can opt out of below). The server takes whichever is slower, your pace preset or this limit, so a fast preset is a request, not a guarantee.
This limit is not a guard you can switch off. Expert mode does not lift it.
Campaign controls
These live in the campaign composer (Sidebar > Campaigns > New Campaign) and in the Broadcast Panel.
Pace presets
| Preset | Gap between messages | Default |
|---|---|---|
| Conservative | 15-30 seconds | |
| Normal | 8-15 seconds | Yes |
| Aggressive | 3-8 seconds, shown with an "increases ban risk" warning |
The gap is random inside the range, so no two sends are the same distance apart. Choose the preset per campaign; there is nothing to switch off.
Quiet hours and the send window
Campaigns pause overnight and resume in the morning. The default quiet hours are 22:00 to 08:00 in your organization's time zone and are set per line by Spun; a running send shows "paused for quiet hours" while the window is closed. Each campaign also has its own Send window start and Send window end (default 08:00-22:00) that you can set narrower or wider inside the composer. Proactive bot campaigns also have a Skip Shabbat option in their delivery profile (off by default).
Daily limit
Optional, blank by default. A number typed into Daily limit in the composer caps how many recipients that campaign reaches per day; the rest continue the next day. Leave it blank for no campaign-level cap. Expert mode does not override a daily limit you set.
Audience filters
Narrow the audience before you send:
- In a segment campaign, Contact filter offers All contacts / Saved only / Unsaved only (saved means the person is in your phone's address book; unsaved first contacts are the ones WhatsApp weighs most heavily), plus a Labels filter.
- In Send to Multiple, the activity filter offers Any time / Last 7 days / Last 30 days / Last 90 days / Never contacted.
A warning also appears when the new campaign overlaps the last 7 days of sends to the same people. Filters are per campaign; nothing to switch off.
DONOTSEND and STOP words
Every organization has a system label called DONOTSEND. A contact with that label is left out of every campaign, bot, follow-up and forward. When someone replies STOP, "unsubscribe", "remove me", "not interested" or the equivalent in 11 languages (with an AI fallback for the rest), Spun applies the label automatically. Apply it by hand from the chat's label picker; remove it the same way if the person asks to hear from you again. The automatic detection cannot be switched off.
Merge fields
Optional. The Personalize: row above the message has two buttons, First name and Full name, that insert or . Each recipient gets their own name from the contact record and a Preview for line shows the result for the first recipient. Do not click the buttons and the message goes out as written.
Opt-out footer
Optional, on by default. The Add opt-out line button appends a short "reply STOP" line in the language of your message (English, Hebrew, Spanish, Portuguese, French, Arabic, German or Russian) so people unsubscribe instead of reporting you. The button reads Opt-out line added once it is in. A manager can replace the default wording, or turn the footer off for the line, under Opt-out footer in Sending preferences (see below).
Image variation
Optional, on by default. When one image goes to more than 20 recipients, each copy is made slightly different (a one to two pixel crop, a small change in compression, and different metadata) so identical media does not fingerprint the campaign. Turn it off under Image variation in Sending preferences.
Slight text variations
Optional, off by default. A toggle in the Send to Multiple dialog that rewrites each message body slightly so no two recipients get an identical text.
Split across lines
Optional, shown only when the organization has more than one WhatsApp line. The composer's line picker has a Split across lines selector with three strategies:
- Take turns: recipients alternate between the chosen lines
- By percentage: you set each line's share
- Match country: each recipient goes out from the line whose country matches their number, with a fallback line for the rest
Each line keeps its own pace, first-contact budget and quiet hours, and the campaign page shows progress per line. Leave the selector alone to send from one line.
Server-paced quick sends
Not a switch. Sends from the Broadcast Panel and from Send to Multiple run on the server as a quick campaign: they follow the same pace, rate limit, quiet hours and guards as a full campaign, they continue if you close the tab, and a Stop button ends the run at any time.
Campaign preflight
Optional, on by default. Before a campaign, a broadcast or a Send to Multiple starts, a Campaign preflight panel lists:
| Row | What it shows |
|---|---|
| Recipients | how many people will be messaged |
| First contacts | how many the line never wrote to before, against today's budget |
| Unsaved | how many are not in your address book |
| Identical body | whether every recipient gets the same text |
| Links | whether the message contains a link |
| Send window | when the send can run |
| Duration | how long the run will take at the chosen pace |
| Line age | how old the line is |
| Health | the line's Sending Health level |
Adjust returns you to the composer; Send anyway always works. The panel is advice and never blocks a send. It shrinks to a single "Preflight (expert mode)" line when Expert mode is on for the line.
Sending Health
Every line has a Sending Health score from 0 to 100, our estimate from observable behaviour. It is advisory only: it never blocks a send, it is not a WhatsApp score, and it is not a ban prediction.
| Level | Score |
|---|---|
| Healthy | 80 and above |
| Watch | 50-79 |
| At risk | under 50 |
Seven factors and their weights: Replies to your messages (20), Sending bursts (15), New-contact share (15), Unanswered messages (15), Single-tick messages (15), Line age (10), Disconnections (10). The score is recomputed every hour from the last 30 days.
Where you see it:
- Settings > WhatsApp > Health, the Sending Health card beside Link Stability, with a 30-day chart of sends, replies within 48 hours and first contacts, and a "What moves it" note
- A small chip on each line, and the line strip at the top of the Campaigns hub
- The Health row of the campaign preflight
- The daily summary, which lists lines whose level dropped since yesterday
Lines under 14 days old also get a New line assistant with the day's first-contact count and Keep In Touch label presets (7, 30 and 90 days). There is nothing to switch off; the score is informational. See Sending Health.
Sending preferences (per line)
Managers set these in Settings > WhatsApp > Health, in the Sending preferences card under the Sending Health card. Only organization managers see and change them; other members see a note that the sending preferences for the line are set by a manager. Each switch is per line. See Send preferences.
Daily first-contact budget
On by default. Caps how many people the line writes to for the first time in one day. Blank uses the line's age default: 50 per day while the line is under 30 days old, 150 after. Anyone over the budget is deferred to the next day, never dropped, and the campaign shows "N deferred to tomorrow". Type your own number, or switch the toggle off for no budget.
Auto-slow
On by default. After 40 sends in a campaign, if the 48-hour reply rate drops under 15% or the share of single-tick messages rises over 30%, the campaign steps one pace preset slower (Aggressive to Normal, Normal to Conservative) and shows why, for example "Slowed to conservative because reply rate 9% is under 15%". A second trigger adds "consider pausing". It never pauses a campaign by itself. Change either percentage, or switch it off.
Pause while restricted
On by default. When three first-contact sends in a row fail while messages to existing chats still deliver, Spun treats the line as restricted, shows "This line looks restricted", and defers new-contact sends to the next send window. The state clears on the next successful first-contact send or after 24 hours. With the switch off, the notice still appears but sends continue.
New-line warm-up tier
On by default. A new line sends at the slower warm-up rate of 3 messages per minute for its first week. Switch it off to opt out of the tier; the platform limit still applies.
Opt-out footer and Image variation
Both on by default; both described under Campaign controls above. The footer text box under the toggle holds a custom wording (leave it blank for the default).
Expert mode
Off by default. Turning it on lifts every guard on the line: the daily first-contact budget, auto-slow, the pause while restricted, the new-line warm-up tier, and the preflight prompts before a campaign. The platform sending rate limit and any daily limit you set on a campaign still apply. Sending Health keeps updating and stays advisory. While Expert mode is on, the other switches stay saved but are not applied, and an amber note says so.
Keeping the line in normal use
A number that only sends looks different from one that talks. Three features keep two-way traffic flowing:
- Keep In Touch: per-label thresholds (7, 30 and 90 days are the presets) surface contacts you have not spoken with recently, with a quick-send box. Set the threshold on any label; remove it to stop the reminders.
- Lead Games: prize-wheel campaigns where Require WhatsApp before spinning is on by default, so every entrant messages you first and the conversation starts from their side. Switch it off per campaign under Entry mode.
- Self Proxy: every WhatsApp connection runs through a computer you own, so the session reaches WhatsApp from your own home or office connection rather than a data centre address. WhatsApp does not publish how it weighs connection origin, so we make no claim about bans; what we can say is where your session connects from. It is required for linking a line and cannot be switched off. Setup: Self Proxy guide.
Quick reference
| Control | Where | Default | Switch off |
|---|---|---|---|
| Platform rate limit | server | 8/min, 200/hour, 1,000/day | no |
| Pace preset | composer | Normal (8-15 s) | choose another preset |
| Quiet hours | per line | 22:00-08:00 | no; set the campaign send window instead |
| Send window | composer | 08:00-22:00 | widen per campaign |
| Daily limit | composer | blank | leave blank |
| Contact and activity filters | composer | All contacts, Any time | leave at All |
| DONOTSEND / STOP words | automatic | on | no |
| Merge fields | composer | not inserted | do not click |
| Opt-out footer | composer button, Sending preferences | on | toggle off per line |
| Image variation | Sending preferences | on | toggle off per line |
| Slight text variations | Send to Multiple | off | leave off |
| Split across lines | composer line picker | none | leave unset |
| Campaign preflight | before every send | on | Expert mode hides it |
| Sending Health | Settings > WhatsApp > Health | informational | no |
| Daily first-contact budget | Sending preferences | on, 50/day under 30 days, 150 after | toggle off per line |
| Auto-slow | Sending preferences | on, 15% replies / 30% single tick | toggle off per line |
| Pause while restricted | Sending preferences | on | toggle off per line |
| New-line warm-up tier | Sending preferences | on, 3/min first week | toggle off per line |
| Expert mode | Sending preferences | off | toggle on lifts all guards above |
| Keep In Touch | label settings | none | remove the threshold |
| Lead Games entry mode | Lead Games campaign | Require WhatsApp before spinning | switch per campaign |
| Self Proxy | Settings > WhatsApp > Health | required | no |