In brief
- Groups several active numbers and picks which one sends each message.
- Optional, without a pool, keep using
instanceIdas you do today. - Each pool is official or unofficial; you cannot mix both.
- Useful for large campaigns and when you want protection if one number fails.
When to use
With no pool configured, the current
instanceId flow stays the same.One type per pool
This is the main rule:
The pool type is set by the first number you add (or at creation in the dashboard). Every new instance in that pool must be the same type.
- Need both modes? Create two pools (one official, one unofficial).
- Try to mix when adding →
SENDING_POOL_KIND_MISMATCH - Send through an inconsistent pool →
SENDING_POOL_KIND_MIXED
How it works in practice
- Create the pool in the dashboard and add active numbers of the same type
- Choose how to distribute (round robin, weight, or least used today)
- Send without
instanceId, the default pool orsendingPoolIdpicks the number per recipient - If one number fails too often, the circuit breaker pauses only that one; the others keep going
instanceId, the message goes from that number and the pool does not apply to that send.
Distribution modes
Main settings
Per number: weight, daily limit, own cooldown, and manual pause.
If more than 30% of a number’s messages fail within 10 minutes, it is paused only in that pool (does not disconnect WhatsApp). When it stabilizes, it resumes on its own.
Via API
Default pool (no number chosen)
Specific pool
Fixed number (ignores pool)
Do not send
instanceId and sendingPoolId together, the API returns 400.Best practices
- Enable cooldown on large sends (e.g. 30 s every 50 messages)
- Watch the dashboard if a number was paused by the circuit breaker
- See Anti-ban policy
Next steps
- Introduction: channel overview
- Quick Start: connect and send
- Connection modes: official × unofficial
- Anti-ban policy: pace and warm-up

