A campaign writes down one row per contact it addressed, before it sends anything, and then records what became of each one. A row marked Skipped means Lynomia Chat refused to send to that person. Nothing was attempted, no provider was called, and there is no error from WhatsApp — the decision was ours.
That is a different thing from Failed, which means WhatsApp was asked and refused.
Where to read it
Open Campaigns → WhatsApp and press View analytics on the campaign. The button appears on a WhatsApp campaign once its status is Processing, Completed or Cancelled; a campaign still waiting for its time has nothing to show yet.
The table at the bottom lists every contact the campaign addressed, with four columns — the contact, the status, the message text that was built for them, and the Reason. Filter it to Skipped to see only the refusals. The Skipped tile above the table is the same number.
The reasons
There are seventeen, and they are a fixed set — the Reason column never contains free text, a phone number or anything else about the person. They are stored and shown in English whatever language your dashboard is in.
Consent and the person
| Reason | What it means | What to do |
|---|---|---|
| Customer opted out | they withdrew consent for this class of message, usually by replying STOP | nothing. Only they can reverse it, by replying START. See messaging consent |
| No marketing consent on record | this is a promotional message and nobody has recorded that this person agreed | collect and record consent, or send a UTILITY template instead |
| The provider reported this number cannot receive | the number is suppressed | an administrator clears the suppression once the cause is fixed |
| Contact is blocked | the contact is blocked in Lynomia Chat | unblock them, or leave them out of the audience |
Your store
These four appear only on a campaign that belongs to a connected store.
| Reason | What it means | What to do |
|---|---|---|
| Customer opted out at this store | they refused this store's messages | nothing. The refusal is theirs |
| No marketing consent on record for this store | neither this store nor Lynomia Chat holds a marketing grant for them | collect consent at the store, or record it yourself |
| A customer of another of your stores | this contact is linked to a different store of yours and not to this one | send it from the right store, or build an account-wide campaign |
| The store integration is not active | the store was disabled, disconnected or needs reconnecting while the campaign was sending | reconnect the store — see commerce store needs reconnecting |
The campaign and the account
| Reason | What it means | What to do |
|---|---|---|
| The campaign was cancelled | somebody stopped the campaign; everyone still queued is marked with this | nothing — this is what stopping looks like |
| Sending is paused | campaign sending is switched off, for your account or for the whole installation | it is not a setting in your dashboard. Contact support |
| This plan's message allowance for the period is used up | your plan meters campaign messages and the period's allowance is spent | wait for the period to turn over, or change plan. The allowance counts attempts, not deliveries |
The contact's WhatsApp destination
| Reason | What it means | What to do |
|---|---|---|
| No WhatsApp destination | the contact has no phone number and no WhatsApp identity on this inbox | fix the contact's data. This is the commonest skip of all |
| Multiple WhatsApp identities | the contact has two WhatsApp identities on this inbox, so there is no single right destination | resolve the contact rather than let Lynomia Chat guess — see WhatsApp business-scoped contacts |
The template
| Reason | What it means | What to do |
|---|---|---|
| No approved template for this name and language | the template is no longer APPROVED in this inbox's synced list, or its language no longer matches | check it in the template manager. This one skips everybody, because it is a fact about the campaign |
| Template variables resolved to blank | a variable rendered empty for this contact — {{ contact.name }} on a contact with no name |
fill the data, or use a template without that variable |
| Campaign has no template parameters | the campaign was created without them | recreate the campaign |
| Authentication template not allowed for this recipient | an authentication template cannot be sent to this destination | authentication templates are not for campaigns. Use a utility or marketing template |
The campaign's own status
| On the card | What it means | What moves it on |
|---|---|---|
| Scheduled | waiting for its time | the scheduler, which looks for due campaigns every five minutes |
| Processing | sending now | the run finishing, or somebody stopping it |
| Completed | the run finished | nothing. It is terminal |
| Not sent — channel unavailable | it reached its send time while WhatsApp campaigns were unavailable for your account | nothing in the dashboard. See below |
| Cancelled | a person stopped it. The line beneath reads Stopped | nothing. It is terminal |
Two of these are worth more than a row.
Not sent — channel unavailable is a holding state, not a failure of the send. The campaign and its audience are untouched and nothing was sent. But restoring the capability does not resume it: the scheduler only picks up campaigns that are Scheduled, and there is no re-activate button. Your options are to stop it or delete it, and then create the campaign again. It exists as a state so that a campaign which could not be sent says so, instead of reading Scheduled while being retried silently for three days and then abandoned.
A scheduled time more than three days in the past is never picked up. A campaign whose moment passed while your account was unavailable is not sent late.
Stopping a campaign
Stop campaign is on the campaign's card, for every one-off campaign that is not already Completed or Cancelled.
- It is terminal. There is no un-stop, and a stopped campaign is never picked up again.
- A run already in flight stops at its next recipient. Messages already handed to WhatsApp cannot be recalled. Everyone still queued is marked Skipped with The campaign was cancelled.
- The results survive. Who was reached before you stopped it is exactly what you need afterwards, which is why stopping is not the same as deleting.
- Deleting the campaign deletes its results with it. If you want the record, stop it; do not delete it.
- A Completed campaign cannot be stopped. The dashboard answers Could not stop the campaign, because there is nothing left to stop and saying otherwise would misreport what happened.
- Stopping is an administrator action, like every other campaign action.
Pacing
A campaign sends at about ten messages a second for the whole account by default, so a large audience takes minutes rather than seconds, and two campaigns running at once share that ceiling. It is there to keep you comfortably inside your WhatsApp messaging tier rather than to find its edge.
Two things follow that you can act on. A campaign that has only just started will show most of its audience as Queued — that is pacing, not a fault. And stopping a long campaign early really does stop most of it, because the recipients at the end of the audience have not been reached yet.
Limits
- Per-recipient records are written for WhatsApp campaigns only. An SMS campaign applies exactly the same consent and blocking rules, and refuses exactly the same people, but writes nothing down — so there is no View analytics and no way to see who it skipped.
- A skip has no timestamp. Nothing was attempted, so there is no provider event to time. Only the row's creation time exists.
- The reasons are English. They are stored as fixed strings and shown as stored.
- A skipped row is final for that run. No later report from WhatsApp can move it, because WhatsApp was never asked.
- Nothing tells you who will be skipped before you send. The recipient count already excludes people who are blocked or have refused, but it cannot know about a missing phone number, a blank variable or a template that stops being approved. Check your audience in Contacts first.
- A campaign cannot be re-run. Sending again means creating another campaign, and the audience is resolved afresh when it goes.
Related
- Messaging consent
- WhatsApp campaigns
- Campaign performance
- Shared audiences
- The WhatsApp 24-hour window
- Find a failed WhatsApp message
If it does not work
Every recipient says No marketing consent on record. Meta classifies this template as something other than UTILITY, so the campaign is promotional, and nobody in your audience has a recorded marketing grant. Recording one needs a plan that includes Commerce — see messaging consent.
Every recipient says No approved template for this name and language. The template was APPROVED when you built the campaign and is not now, or the campaign's language no longer matches a synced template. Nothing was sent. Fix the template and create the campaign again.
The campaign has said Processing for hours and the queued count is not zero. The run stopped partway and it will not resume — a campaign already marked Processing is never picked up again, on purpose, because re-running it would message the people it already reached a second time. Read the recipient list, and create a new campaign for the contacts still showing as Queued.
My campaign card says Not sent — channel unavailable. It reached its send time while WhatsApp campaigns were unavailable for your account. Restoring that does not resume it; stop or delete the campaign and create it again.
The Skipped tile is large and almost every reason is No WhatsApp destination. Your audience is selecting contacts without phone numbers. Add phone number is present as a condition on the shared audience, and fix the contacts.
There is no View analytics button. The campaign is not a WhatsApp campaign, or it has not started sending — the button appears from Processing onwards.
View analytics opens but says no delivery data was recorded. The campaign ran before per-recipient results existed. There is nothing to recover for it.