One API call with a phone number and a message is all you send. QueueWA takes it from there — queues the job, works through it in order, and hands it off to WhatsApp or email until it's confirmed delivered, retrying on its own when a send fails.
Your backend sends a message and a phone number (or email address) to the API. QueueWA validates it and hands back a job ID right away — it doesn't wait for the send to finish.
The job is placed on a queue and picked up by a worker in order. If a send fails — number unreachable, provider timeout — it's automatically re-queued for another attempt.
The worker sends it out over WhatsApp or email and updates the job's status. You can poll for status or receive a webhook the moment it's delivered — or fails for good.
channel field and everything
else about the request stays the same.Give it a phone number and a message body. The worker sends it through your connected WhatsApp sender and tracks queued → sending → delivered, with retries on transient failures.
Give it an email address instead — the same job moves through the same queue, just routed to your email sender. One integration covers both channels.
Failed sends go back on the queue with backoff, instead of silently dropping.
WhatsApp and email jobs share the same queue, worker pool, and status model.
Watch jobs move from queued to delivered in real time, and retry failures by hand.
Get notified the moment a job is delivered or fails for good — no polling required.
Sends are paced to stay within your WhatsApp and email provider limits automatically.
Retry the same request safely — QueueWA won't double-send a job it already queued.
Send your first message and watch it move from queued to delivered on the dashboard.