Skip to Content
WhatsApp Agent Docs
OpenWA reference

Ban-risk practices

Why a linked WhatsApp account can be restricted, and the mitigations built into the platform.

No guarantee

WhatsApp does not permit unofficial automation. No setting here removes the risk of a restriction or ban. Treat the linked number as expendable and keep it separate from any number you cannot lose.

What you should do

  • Use a dedicated number for each workspace, not a personal or main business line.
  • Message only customers who contacted you or opted in. The platform never cold-messages.
  • Keep volume low and conversational. Do not use the number for bulk sends.
  • Tell customers up front that an assistant answers (the first reply carries the AI disclosure).
  • Size the gateway for the number of accounts: OPENWA_MEM_LIMIT defaults to 2 GB, and each whatsapp-web.js account needs roughly 300 to 500 MB.

What the platform does

MitigationBehavior
Lowest-risk enginewhatsapp-web.js drives a real WhatsApp Web client in Chromium.
Reply-onlyNo templates, broadcasts or cold outreach exist in the product.
Read receipt and typingThe engine marks each inbound message read and, in private chats, shows typing while the answer is prepared.
Human-paced sendingBefore sending, the engine shows typing (or recording for voice notes) for about 25 ms per character, clamped to 1.2 to 7 seconds, with random jitter.
Groups off by defaultEnabled per assistant. The assistant answers only when addressed by a reply to its message or a trigger word, and shows no typing indicator while a group message is pending.
Staff takeoverA message sent from the phone itself flips the conversation to human mode so the assistant never talks over a person.
Local block onlyBlocking a contact in the admin only makes the assistant ignore them. It does not block on WhatsApp, because mass blocking from a linked device is a ban signal.

Watching for trouble

session.restriction events are stored in channel_event. A session.disconnected event with a reason such as banned or logged out marks the connection disconnected and queued replies are discarded as "channel inactive". See Operations.

On this page