Skip to Content
Explanation

How WhatsApp sending works

Updated Markdown
On this page

Nothing leaves the moment you click: every outgoing message enters a queue, and one job sends from it at a human pace, line by line, because a number that sends too fast risks being blocked.

From the queue to the phone

A new message is Queued on a line: the company's default line while it is connected, otherwise the first connected line of the company; a template sent on a schedule uses its own Account. Automatic messages queue even when no line is connected, and move to a line of the same company as soon as one connects.

The job WhatsApp: Dispatch Outbox sends them one at a time per line, by priority, then by planned time. It runs every minute and is woken as soon as a message is queued; a reply typed in Discuss leaves at once when the pace allows. The message turns Sending during the call, Sent when the line accepts it, then Delivered, Read and Replied as WhatsApp reports back. Follow your messages shows each status.

Lanes

Each message travels in a lane that sets its pace:

Lane Carries Gap between two messages Per hour
Interactive Discuss replies, the Send dialog with one recipient 3 to 6 seconds 120
Notification Templates sent on an event or a schedule 5 to 12 seconds 150
Bulk The Send dialog with several recipients, every Marketing template 12 to 30 seconds, a 12-minute break every 40 messages 200

The first two show the recipient a typing indicator before the message. A fourth lane, the fastest, is kept for verification codes.

Pacing

Above the lanes, each line respects ceilings of its own: at least 6 seconds between any two messages, 12 a minute, 300 an hour. The notification and bulk lanes also each have a daily cap, counted separately: the line's Rate Limit Daily (1,000 by default), reached step by step while the line warms up, 40 on the first day and 30 more each day. When Rate Limit Daily is 0, the cap follows the line's age instead: 150 for a line under 10 days old, 400 under 30 days and 800 after. A number never contacted before, without a contact record or an earlier exchange, counts against a smaller daily cap; past it, the message waits six hours. When the same text goes to several people within an hour, an invisible character or a final space keeps the copies from being identical; Authentication templates and those with Forbid Variation are sent word for word.

These limits, the line's trust tier and the optional quiet hours of the bulk lane show on the line's form in developer mode.

Retries

When the line refuses a message, the reason decides:

  • the number is not on WhatsApp: Bounced, never retried;
  • a network error or a timeout: Delivery Uncertain (below);
  • any other failure: back to Queued, tried again after about 30 seconds, then 1 and 2 minutes. A fourth failure makes it Dead Letter.

A rate limit pauses the line for 30 minutes. Retry sends a failed message again by hand.

Expiry

A template's Queue Time-to-Live (min) sets how long its messages may wait. With -1, the value of business documents, they wait forever. Otherwise a message still queued that many minutes after its planned time turns Expired and is never sent late: a hearing reminder that misses its hour is worse than none. The ready-made reminders use it: 45 minutes for Calendar: Reminder, 90 for Cases: Hearing Reminder (1 hour before), 12 hours for the daily lists.

Quarantine

When a line looks blocked, sending from it stops. That happens when account errors are confirmed by a live test of the line (24 hours, then 48, 96 and up to 7 days for repeats), or after 4 disconnections within 15 minutes (one hour). The line's chatter records an alert and each user notified by the line receives a warning activity. Every hour a job releases the line once it answers or its time is up; it then warms up again from 40 messages a day. Messages wait Queued meanwhile.

Lighter brakes work the same way: more than 35% failures over at least 10 attempts in an hour pauses the line 15 minutes, and 14 days without sending restart the warm-up.

Uncertain delivery

A timeout during the call leaves the doubt: the message may have left. It turns Delivery Uncertain, and every 10 minutes a job asks the line whether it holds it. Found, it becomes Sent; not found, it is queued again; when the line cannot answer, the job asks again later, waiting longer each time. After 8 unanswered checks it becomes Dead Letter and is never resent alone: a duplicate cannot be taken back. A message left Sending by a server stop turns uncertain after 5 minutes.

Consent and suppressed recipients

Just before sending, without using a slot, the blacklist and consent are checked: a listed number, or a marketing message without consent, turns Suppressed. An automatic message on an event to a listed number is not created at all. A message to an archived contact is suppressed at once. Consent and blacklist explains both.

What sending does not do

  • It does not send a template's header, footer or buttons.
  • It does not read the Max Retries and Default Priority settings (WhatsApp settings).
  • It does not resend a Dead Letter, Bounced or Suppressed message by itself.

WhatsApp automations lists the jobs named here.

Was this page helpful?

Thank you for your feedback.