# Why WhatsApp held back some of your messages

> A SkedX Flow WhatsApp campaign shows its results in three groups: delivered (reached the phone), held back by WhatsApp (WhatsApp decided not to deliver — not a fault in SkedX, the template or the campaign; never charged; shown grey), and failed (something SkedX or the business can fix; shown red, with its fix). Every WhatsApp platform receives the same reasons. #131049 “held back to protect engagement”: the person has had too many marketing messages recently from all businesses together; try again after at least a day. #131026 “message undeliverable”: the number is not on WhatsApp, cannot receive it, has not accepted WhatsApp’s latest terms or uses a very old app. #130472 “part of an experiment”: WhatsApp is not showing marketing to a small group of people for now. #131050: the person turned off marketing from the business. #130403: the BUSINESS blocked this person on WhatsApp (for example in the WhatsApp Business app). #131048: WhatsApp is limiting the business’s own number; Flow pauses the campaign. After a refusal about the person, Flow keeps them out of the business’s next template sends automatically (campaigns, automations, the API): not on WhatsApp for 30 days (until they message the business after a second refusal); marketing turned off — marketing only, 90 days; experiment — marketing only, 60 days; blocked — until the business tries them again. A hold ends early when the person messages the business or a message reaches them; it can be lifted by hand from the contact’s Reachability (Try them again). People kept out are taken off the campaign’s cost before sending and are never charged. People held back for too many marketing messages (#131049) are tried again once, 24 hours after the send, by themselves (on for every new campaign; Don’t retry turns it off; a short wallet makes it wait for a top-up). Not on WhatsApp is shown as its own group on the campaign, not as held back. When most of “All Subscribers” has not written to the business in 90 days, the Audience step offers one click to send only to the people who have (“Messaged you recently”). In a chat, a message WhatsApp held back reads “Held back by WhatsApp” in grey with the reason and a link here, never “Not delivered” in red; an automation whose question WhatsApp held back stops as held back — not failed, no “send failed” email — and a template send to someone Flow keeps out is skipped.

Product: SkedX Flow · Topic: WhatsApp templates · Draft — steps not yet re-verified in the live product

Some people in a campaign are not reached, and the campaign page tells you why. Most reasons are WhatsApp deciding not to deliver — not a mistake in your campaign — and you are never charged for them. This page says what each one means, what Flow does about it for you, and what you can do.

## Step 1: See what happened — every group named

Open the campaign in **Bulk Messaging**. The line at the top names every group — delivered, will be tried again tomorrow, not on WhatsApp, not shown marketing, blocked by you, failed and not sent — and each part opens those people. **Held back by WhatsApp** has its own grey, dashed tile: WhatsApp’s passing decisions, not charged. **Not on WhatsApp** has its own tile too: numbers that can’t receive WhatsApp, left out of your next sends. Below them, each reason is listed with its count and **What this means**.
Open it directly: https://flow.skode.ai/bulk-messaging/

## Step 2: See who, person by person

Under **People in this campaign**, press **Not on WhatsApp** — or **Held back by WhatsApp** for the others. Each person shows their own grey pill — never the red Failed one — and the reason in one line, with **What this means**. A number that looks a digit short or long says so. Red **Failed** is kept for what you or SkedX can fix.

## Step 3: “Held back to protect engagement” (#131049) — too many marketing messages

WhatsApp limits how many **marketing** messages one person receives in a day from **all** businesses together. This person had reached it, so WhatsApp did not deliver yours. WhatsApp does not publish the number or how long it lasts. **Not charged.** What to do: wait at least a day before sending them marketing again — sending sooner gets the same answer. Order updates and replies are not affected. Flow can do it for you — see [Try them again](#try-again).

## Step 4: “Message undeliverable” (#131026) — not on WhatsApp, or cannot receive it

WhatsApp could not deliver to this number: it is not on WhatsApp, cannot receive it, has not accepted WhatsApp’s latest terms, or the app is very old. WhatsApp does not say which, and no one can check a number before sending to it. **Not charged.** On the campaign these people have their own box, **Not on WhatsApp**, not “held back”, and Flow leaves them out of every WhatsApp send from now on — campaigns, automations and the inbox. 30 days later it tries once more, in case they joined. **See them** or **Export the list** to check the numbers; **Reach them by SMS** when SMS is set up for your account. Each of them is marked on their contact too — see [A contact is marked Not on WhatsApp](https://skode.ai/help/flow/contacts/a-contact-is-marked-not-on-whatsapp/).

## Step 5: “Part of an experiment” (#130472) — WhatsApp is not showing them marketing

WhatsApp keeps a small group of people who do not receive marketing messages for now, as an experiment. There is no end date and no way to opt out, and sending again gets the same answer. **Not charged.** What Flow does: keeps them out of your **marketing** for 60 days, or until they message you; order updates still go. What to do: reach them another way, or wait for them to message you — then you can reply on WhatsApp.

## Step 6: “Stopped marketing” (#131050) — they turned off your marketing

The person chose, in WhatsApp, not to receive marketing messages from your business. **Not charged.** What Flow does: keeps them out of your **marketing** for 90 days, then tries once more; messages they ask for, like order updates and replies, still go. If they send START, marketing is back on at once.

## Step 7: “The business has blocked this person” (#130403) — you blocked them

Your business blocked this person on WhatsApp — for example in your WhatsApp Business app. WhatsApp will not deliver anything to someone you have blocked. **Not charged.** What Flow does: keeps them out of your template messages until you choose to try them again. What to do: if the block was a mistake, unblock them in the WhatsApp Business app, then open the contact in Flow and press **Try them again** under Reachability.

## Step 8: “Restrictions on this number” (#131048) — about your number, not the person

WhatsApp is limiting how many messages your number may send right now, usually after many messages were blocked or reported as spam. This one is about **your** number. Flow pauses the campaign so it does not keep failing. What to do: wait a few hours before resuming, and send to people who know your business — people who messaged you recently get your messages far more often.

## Step 9: Tried again tomorrow, by itself — only the ones held back for too many marketing messages

Flow does this by itself. Every WhatsApp campaign tries the people held back for too many marketing messages once more, 24 hours after the send — the campaign page says when. Only those people, once, never anyone who got it, charged only for the ones it sends. Don’t want it? Press **Don’t retry**, or untick **Try again tomorrow** on the Sending step. If your wallet is short at that time, the retry waits, says how much to add, and carries on by itself after a top-up. Afterwards the page says what it reached: “Retry done — 250 more delivered”. Someone held back again is not tried a third time.

## Step 10: In a chat and in automations

In the inbox, a message WhatsApp held back says **Held back by WhatsApp** in grey under the bubble — not “Not delivered” in red — and the note under it gives the reason in plain words with **What this means**, which opens that reason here. In an automation, a question WhatsApp held back stops that run as held back by WhatsApp: it is not counted as a failed run and no “send failed” email goes out. A template an automation sends to someone Flow keeps out is skipped, with the reason in the run.

## Common questions

### Is this a problem with SkedX?

No. These are WhatsApp’s own answers, the same for every WhatsApp platform. Flow shows them next to each person, grey, so you can see who was reached and who was not.

### Am I charged for these messages?

No. A message WhatsApp refused is refunded to your wallet, and people Flow keeps out are taken off the cost before you send.

### Why does the cost step say some people are kept out?

WhatsApp refused them before — you blocked them, they are not on WhatsApp, or they turned off your marketing. Flow leaves them out so you do not pay for messages WhatsApp will refuse again. People not on WhatsApp have their own line, “Not on WhatsApp — left out, not charged”; the others read “WhatsApp refused them before (blocked, marketing off) — kept out, not charged”.

### How do I send to someone Flow is keeping out?

Open the contact. Under **Reachability** it says “WhatsApp refused them before”; press **Try them again**. If WhatsApp refuses again, they go back on hold. A hold also ends by itself when they message you.

### Why so many on one campaign?

Campaigns sent to everyone in your contacts — including people who have not talked to you for a long time — get far more of these, especially “too many marketing messages”. People who messaged you recently get your messages much more often. When most of your contacts have not written to you in 90 days, the Audience step says so and offers **Send to those N instead** — one click picks **Messaged you recently**, and **Send to all subscribers instead** takes you back.

### Do these pause my campaign or use up my daily limit?

No. Held-back messages do not count toward the check that pauses a campaign, and only messages that went out count toward your number’s daily limit.

## Useful links
- Bulk Messaging in Flow — see a campaign’s results: https://flow.skode.ai/bulk-messaging/

Videos and screenshots © 2026 SkedX, with sample data only. Share and link to them freely; copying the SkedX product or its design is not allowed. Terms: https://skode.ai/terms/

## Related guides
- Send a WhatsApp campaign to many contacts: https://skode.ai/help/flow/templates/send-a-whatsapp-campaign-to-many-contacts/
- Get a WhatsApp template approved: https://skode.ai/help/flow/templates/get-a-whatsapp-template-approved/
- Flow API errors, and how to fix each one: https://skode.ai/help/flow/developers/flow-api-errors/
- What you see in a Flow conversation: every message as your customer saw it: https://skode.ai/help/flow/inbox/what-you-see-in-a-flow-conversation/
- A contact is marked Not on WhatsApp: https://skode.ai/help/flow/contacts/a-contact-is-marked-not-on-whatsapp/
- Reply to a Flow chat from Circle: read who sent what, answer, make a task: https://skode.ai/help/crm/inbox/reply-to-a-flow-chat-from-circle/

Source: https://skode.ai/help/flow/templates/why-whatsapp-held-back-some-messages/