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.
The first day after linking (always on)
Right after you link a number, WhatsApp is most sensitive to a new device that suddenly fetches everything. Spun paces the first day of every new link so the line looks like a person opening WhatsApp Web for the first time:
- Right away: new messages, your chats and their history, and status updates. These are never delayed.
- After about 10 minutes: profile photos, a few at a time with random gaps, starting with the chats on screen.
- As your phone delivers them: contact names.
- Within 24 hours: everything else.
- Checking numbers on WhatsApp and adding many people to a group at once count as bulk activity even when you start them yourself, so during the first day part of such a request may wait and then continue on its own. A number check shows a notice that says how long.
Reconnecting a number that has been working normally in Spun is shorter: about a 2-minute pause and caught up within the hour. A number that is new to Spun, or that WhatsApp logged out or restricted in the last 30 days, gets the full first day. Keep your phone online during this time, because contact names come from your phone.
Like the platform rate limit, this pacing is part of connecting, not a sending guard: there is no switch for it and Expert mode does not lift it. It never holds back a message you send, by hand or in a campaign; sending follows the controls below. The Link sync card in Settings > WhatsApp > Health shows the current stage. Full timeline: What loads when after connecting.
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. The Human cadence switches below are the exception: they keep working in Expert mode.
Human cadence
On by default, every switch. Five behaviours make automated messages (chatbot and auto-reply answers, autopilot, chat flows, campaigns, drips, notifications and scheduled messages) look the way a person's do. They only change the shape and timing of an automated send, never whether it goes out: if a step fails, the message is still sent. Messages you send by hand from the inbox get no added wait.
The switches sit in a Human cadence section of the Sending preferences card, which is shown only while Expert mode is on for the line. Turning Expert mode on or off does not change them: Expert mode lifts the guards above, and these are behaviours, not guards. To turn one off, switch Expert mode on, switch the behaviour off, click Save, and turn Expert mode off again if you want the guards back; the Human cadence switches stay as saved.
| Switch | What it does | Default | Switch off |
|---|---|---|---|
| Show typing before automated messages | the chat shows typing (recording for a voice note) for a moment scaled to the message, about 1 to 8 seconds; skipped for groups and statuses | on | toggle off per line |
| Mark a message read before replying to it | a bot reply first marks the message it answers as read; replies only, never campaigns or notifications, and not when anyone in the organization has turned off sending read receipts | on | toggle off per line |
| Appear online while sending | the line shows online while automated messages go out, then returns to offline by itself when idle | on | toggle off per line |
| Vary the gap between automated messages | a random pause of a few seconds between consecutive automated messages on the line; it is a minimum, so a campaign whose pace preset already waits longer gets no extra pause | on | toggle off per line |
| Send scheduled messages a little late, never early | a scheduled message leaves up to 3 minutes after its time, never before | on | toggle off per line, for example when a message must leave on the exact minute |
See Human cadence.
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.
- Where your session connects from: Spun never links a line straight from a data centre address. By default the session reaches WhatsApp through a Spun connection in the country you confirm before the QR code, or a temporary residential connection there where there is no Spun connection (how it works); with Self Proxy it runs through a computer you own, from your own home or office connection. 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. Self Proxy setup: Self Proxy guide.
Quick reference
| Control | Where | Default | Switch off |
|---|---|---|---|
| Platform rate limit | server | 8/min, 200/hour, 1,000/day | no |
| First-day link pacing | automatic after each new link | photos from about 10 min, everything within 24 h (1 h on a reconnect) | 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 |
| Human cadence (5 switches) | Sending preferences, shown in Expert mode | all on | toggle each off per line; Expert mode does not change them |
| Keep In Touch | label settings | none | remove the threshold |
| Lead Games entry mode | Lead Games campaign | Require WhatsApp before spinning | switch per campaign |
| Connection origin | connect screen, Settings > WhatsApp > Health | managed connection in your confirmed country | switch to Self Proxy; never a data centre link |