WhatsApp campaigns

Last updated on Oct 05, 2026

The WhatsApp campaigns page

With WhatsApp campaigns you send an approved template to many contacts at once: everyone with a label, a contact segment, or a CSV list of numbers. HellouOne sends at the pace Meta allows for your number, respects everyone who opted out, and shows you who received, read and replied.

Campaigns are created and managed by an administrator and must be included in your plan. You'll find them under Campaigns → WhatsApp.

Before you start

  • You need a connected WhatsApp Cloud API inbox.
  • You need an approved template in the marketing or utility category on that inbox.
  • If you'll send to a label or a segment, check that those contacts have a phone number.

Create a campaign

  1. Press New campaign.
  2. Under Basics, give it a Campaign name and choose the WhatsApp inbox.
  3. Under Template, choose the Approved template. You'll see the Message preview. If the template has an image, video or document header, paste the Header media link (a public HTTPS link).
  4. Under Variables, give every template variable a value. The Source can be a Contact field, a Custom attribute, a CSV column or Fixed text. Use Fallback for contacts that don't have that value.
  5. Under Audience, choose Contacts with any of these labels and/or a Contact segment. Press Count recipients to see how many Will receive and how many are left out (No phone number, Blocked, Opted out; if you only send to contacts who opted in, Opted out includes those with no recorded opt-in).
  6. Under Schedule and pacing, choose when and how it sends (see below).
  7. Press Save draft.

The campaign is saved as a Draft: nothing is sent until you press Start. While it's a draft you can Edit everything.

Send to a list of numbers (CSV)

After saving the draft, open the campaign and use Import recipients from CSV. The file has one row per recipient and a phone column named phone (phone_number, mobile, whatsapp, telefono, teléfono, celular, movil, móvil, numero or número also work). Every other column can be used as a variable. For numbers without a +, first set the Default country code for CSV numbers (for example MX), found under Schedule and pacing, and save the draft before importing; if you leave it empty, the country of the inbox's number is used. When it finishes you'll see how many were imported, how many were duplicates and how many were invalid.

Schedule and pacing

  • Start at (optional): schedule the campaign for a date and time. Empty = it starts as soon as you press Start.
  • Send only between … and …, On these days and Timezone: the campaign only sends inside that window. Outside it, it waits and carries on the next day.
  • Messages per second: the sending pace. It never goes above what Meta allows for your number.
  • Daily cap (optional): the most unique contacts per day for this campaign. Once it is reached, the campaign carries on the next day. Days change at 00:00 UTC.

Under Basics, once you pick the inbox, Number health appears: the Messaging tier Meta gave your number (with Meta's code, for example TIER_2K), how many Unique contacts per day it allows (50, 250, 1,000, 2,000, 10,000, 100,000 or Unlimited) and its Quality (for example GREEN). That limit belongs to the number, not the campaign: every campaign sending from it shares it, and it resets at 00:00 UTC. When a campaign reaches the day's limit (the number's or its own Daily cap), it carries on by itself the next day. If Meta asks to slow down, the campaign does and shows when it resumes.

Start, pause and cancel

  1. Open the campaign and press Check template: it confirms the template and variables are ready and shows, for a few sample contacts, the value each variable will take.
  2. Press Start and confirm. The campaign goes through Preparing (building the recipient list) and then Sending. If you scheduled it, it stays Scheduled until the chosen time.
  3. Pause stops sending right away; Resume picks up where it left off.
  4. Cancel campaign ends it: recipients who haven't received the message yet won't receive it. Those who already did keep their history.

When nobody is left to send to, the campaign becomes Completed. If the template is not ready before the start, Start does not launch it and the campaign stays a Draft until you fix it. Once sending, the campaign stops as Failed when Meta rejects the template or your number loses access; the page shows the reason as Meta gives it. It also becomes Failed at the start if the chosen segment is no longer valid (for example, because an attribute it used was changed or deleted).

Results

Progress shows how many Recipients the campaign has and how many were Sent, Delivered, Read, Failed, Skipped and how many are still Waiting.

The Recipients table lists every contact with its status, attempts and error. A skipped recipient says why:

  • Skipped: opted out: the contact opted out before the send or, if you only send to contacts who opted in, has no recorded opt-in.
  • Skipped: Meta frequency cap: Meta limits how many marketing messages one person receives; it doesn't count as a failure.
  • Skipped: missing variable: the contact had no value for a variable and there was no fallback.
  • Skipped: region restricted: Meta doesn't allow that marketing send to that region.
  • Skipped: no WhatsApp identity: no contact could be found or created for that number in the inbox. A number that doesn't use WhatsApp shows as Failed.

When a contact replies, the reply opens a conversation in the campaign's inbox and is assigned like any other.

Opt-outs and consent

In Settings (next to New campaign) you choose Who can receive campaigns:

  • Everyone except contacts who opted out (recommended to start with).
  • Only contacts who opted in: every contact without a recorded opt-in is skipped, including CSV numbers that are not contacts yet, so record opt-ins before your first campaign.

Blocked contacts never receive campaigns.

Automatic opt-outs. A contact is opted out when they reply with only an opt-out word, for example STOP, UNSUBSCRIBE, BAJA or CANCELAR, or when they press Meta's button to stop receiving promotions. Writing START, SUBSCRIBE or ALTA opts them back in. The words only count when they are the whole message: "please don't stop sending me these" opts nobody out.

There is no screen to record opt-ins by hand. An opt-in is recorded:

  • when the contact writes START, SUBSCRIBE or ALTA;
  • when a Facebook lead answers "yes" to their form's consent question, if that form sends WhatsApp and the lead passes the sending checks (under 24 hours and a valid phone);
  • from your own system, through the API: one contact at a time, or in bulk (up to 500 per call, administrators only).

Detect opt-outs written in the customer's own words

Many customers don't write "STOP" but something like "please stop sending me messages". With Detect opt-outs written in the customer's own words (in Settings), HellouOne reads the replies of contacts you sent a campaign to in the last 30 days when no opt-out word matched. Options:

  • Off.
  • Shadow: classify and record only: nothing changes in the conversations; it shows what would be detected.
  • Review: label the conversation for a person: adds baja-por-revisar or alta-por-revisar and a person decides.
  • On: record clear opt-outs, label the rest: a clear opt-out is recorded and the conversation gets baja-automatica; unclear ones (for example, someone who wants to cancel an order, not the messages) get baja-por-revisar.

Opt-ins are never recorded automatically: if someone seems to want messages again, the conversation gets alta-por-revisar and a person confirms it with the customer (for example, by asking them to write START).

This option needs AI classifications in your plan. If the platform is running them at a lower level than the one you chose, you'll see a note: your choice is saved and takes effect once it's raised.

Reply qualification

With Qualify replies to campaigns (in Settings → Reply qualification), every reply to a campaign gets a stage:

  • Hot: asks to talk to someone or wants to buy now.
  • Warm: interested, but hasn't decided.
  • Cold: not interested for now.
  • Needs review: the reply is ambiguous, a complaint or a possible opt-out; a person should look at it.
  • Opted out: the contact asked to stop receiving messages.
  • Not scored: qualification did not run for that reply (for example, it is off).

It needs AI classifications in your plan. The options are Off, Shadow: calculate stages only (you see stages on the campaign, nothing is labelled or assigned) and On: label and route hot leads. When on, the conversation gets the label lead-caliente, lead-tibio, lead-frio, lead-revisar or lead-baja.

Where a hot lead goes. The first time a lead turns hot it can go to a Team, an Agent or both (the agent is kept only if they belong to that team), with the Priority you choose. If an AI agent answers the inbox, its handover is used instead: set the AI agent area that receives the lead and, if you like, turn on Tell the customer an advisor will follow up. If you leave everything empty: on an inbox answered by an AI agent, the lead is handed over to the AI agent's default area; on an inbox answered by people, the conversation gets a private [Lead] note with the summary and moves from pending to open, with no change to team, agent or priority (an automation rule can route it on the lead stage).

Where you see it. On the campaign page, the Replies and leads card shows how many Replied, how many are Qualified (hot and warm), how many are Hot and how many Needs review. In Recipients, the Lead column shows each one's stage, and the Lead filter lets you see, for example, only the hot ones so you call them first.

Qualification never changes anyone's consent and never sends messages by itself. Voice notes, stickers or emoji-only replies are not qualified.

Ask LIA

LIA can tell you how each campaign is going: how many messages were delivered, read or failed and why, how many replied and how many hot leads there are. For example: "How is the September campaign doing?" or "Why did messages fail in the last campaign?". If a campaign should stop, LIA can propose pausing it and you approve the proposal. Creating, starting, resuming or cancelling campaigns is always done by a person.

Other campaign types

The Ongoing tab

The same Campaigns menu has two more types, inherited from website chat:

  • Ongoing: proactive messages from your website widget. They show to visitors who meet a condition (for example, 30 seconds on the pricing page) and open a conversation if they reply. They need a website inbox.
  • One Off: a single scheduled send to a list of contacts through an SMS inbox.

For WhatsApp always use the WhatsApp tab, which respects Meta's limits and opt-outs.