Skip to main content

Documentation Index

Fetch the complete documentation index at: https://knowledge.flowella.io/llms.txt

Use this file to discover all available pages before exploring further.

Flowella blocks outbound sends to opted-out contacts automatically — but the block is per channel. If a contact tells you they’re still hearing from you after opting out, work through the checks below. For how the opt-out list works in general, see Opt-outs. For multi-channel context, see Multi-channel.

1. Confirm the opt-out actually registered

Open Contacts → Opt-outs and search for the contact’s phone number.
  • Listed, active: Flowella will block sends from the channel where they opted out.
  • Listed, revoked: A teammate cleared the opt-out, manually or via the API. Re-add it.
  • Not listed: The opt-out never registered. See section 2.

2. The opt-out keyword wasn’t recognised

By default, Flowella treats common keywords as opt-out triggers (for example STOP, UNSUBSCRIBE). The match is case-insensitive but typo-sensitive. If the contact wrote please stop messaging me rather than just STOP, no automatic opt-out fires. You can:
  • Manually add the contact to the opt-out list from the inbox or Contacts → Opt-outs.
  • Add a quick-reply button to your templates that explicitly says “Unsubscribe” and routes to your opt-out handling.

3. The contact opted out on a different channel

Opt-outs are recorded per WhatsApp channel because consent is given to a specific business sender. If the same contact is messaged from two channels in your org and only opted out on Channel A, sends from Channel B continue. Decide which model you want and apply consistently:
  • Strict: replicate the opt-out across every channel. You can do this with the API:
    curl -X POST https://app.flowella.io/api/v1/opt-outs \
      -H "Authorization: Bearer flo_…" \
      -H "Content-Type: application/json" \
      -d '{"action":"set","whatsappChannelId":"<id>","phone":"+44…"}'
    
    Repeat for each channel. See the opt-outs endpoint.
  • Per-brand: keep opt-outs separate. Make sure your privacy notice tells contacts that opting out of Brand A does not opt them out of Brand B.

4. A workflow re-enrols opted-out contacts

If a HubSpot workflow keeps trying to message the same opted-out person, the action will fail at the Flowella side (returning Contact opted out) — but the contact may still see the workflow attempt. Add a HubSpot enrolment criterion that excludes contacts whose WhatsApp opt-out property is true. Update that property whenever Flowella records an opt-out using a webhook subscriber or a periodic sync. Alternatively, subscribe to the optout.created webhook and write back to HubSpot in real time.

5. The contact never opted in cleanly to begin with

This is a policy issue rather than a bug, but worth flagging: WhatsApp requires explicit, unambiguous opt-in before any business-initiated message. If the contact says “I never agreed to this”, investigate how they ended up on your list. Add the opt-out, apologise, and review your collection process.

6. The block is working, but they still receive a final message in flight

Outbound sends are queued before the recipient list is finalised. A message that’s already in Meta’s send queue may still deliver in the seconds after an opt-out is recorded. This is rare and self-corrects within a minute.

Still seeing messages reach an opted-out contact?

Capture:
  • The contact’s phone number
  • The channel ID and name
  • The exact send time
…and contact support. We can audit the send path end-to-end.