WhatsApp Marketing

Who receives it — audience, consent & frequency limits

How opt-in, suppression, and frequency caps decide the recipient list.

View as Markdown

Every WhatsApp campaign builds its recipient list through the same set of rules: consent, the suppression list, frequency limits, and de-duplication. This is why the number sent is often lower than your segment size — and that's by design, to protect your number's health.

A contact must have opted in to WhatsApp before you can send them a marketing template. A contact opts in when they:

  • message your number first (inbound messages auto-opt-in);
  • are imported with a WhatsApp opt-in column set to yes;
  • are marked opted-in in bulk on /admin/clients, or via the one-click attestation in the campaign wizard.

An explicit opt-out always wins — an inbound message won't re-opt-in someone who previously sent STOP.

STOP and START

If a recipient replies STOP (or similar), HexaFloww immediately opts them out and adds them to the WhatsApp suppression list. START opts them back in. These are checked before auto-replies and AI, so an opt-out is always honoured.

Suppression list

The suppression list (/admin/suppression) is a global do-not-send registry, per channel. Any number on the WhatsApp suppression list is excluded from every send, no exceptions. See Consent, opt-in & the suppression list.

Frequency limits

To avoid fatiguing your audience, HexaFloww enforces self-imposed limits on marketing messages (utility and authentication are exempt). Set them at /admin/whatsapp/settings/compliance:

  • Minimum gap between marketing messages to the same contact — default 24 hours.
  • Maximum per week — default 3.

Contacts over either limit appear as Frequency-capped by you in the wizard's skip breakdown. For a deliberate extra send, the wizard has an include anyway checkbox that overrides your own caps (it still reports how many were overridden).

Meta's own cap

Separately, Meta enforces its own per-user marketing limit. When Meta rejects a send for this reason, that contact gets a 7-day cooldown and shows as Meta capped. This one cannot be overridden — bypassing it just reproduces the same error.

De-duplication

If the same phone number appears more than once in your audience (for example two contact records), only one message is sent and the rest show as Duplicate numbers.