On this page

Opt-in and consent in VGraple CRM is enforced automatically, not something you manage by hand for every contact: a recognised keyword updates status instantly, sends a confirmation, and cancels any running automation for that person immediately. This walkthrough covers the exact keywords, what each transition does behind the scenes, and how Meta's own marketing-stopped signal is honoured on top of it.
Opt-in and consent: first 5 of 7 steps
- 1Understand what happens when a contact sends
- 2Know that running automation stops instantly, too
- 3See the automatic confirmation
- 4Check a contact's status from its detail
- 5Understand how a contact opts back in
Before you start
- No setup is required to activate opt-in and consent handling; it runs on every message received on your WhatsApp number automatically, on every plan.
- Understand the difference between opting out of business-initiated messaging and blocking a business entirely: opting out stops broadcasts, sequences and automated templates, but a human agent can still answer a question the contact asks directly, within Meta's 24-hour service window.
- If you plan to import a contact list and mark it opted in, read the consent attestation requirement in importing contacts from CSV first, since marking a list opted in without genuine consent risks a policy violation on your WhatsApp number.
- Know that WhatsApp's keyword list is separate from Instagram and Messenger's; if your business also uses Instagram DMs or Messenger, the recognised words differ slightly there.
Steps
- Understand what happens when a contact sends an opt-out keyword. No setup step is needed here; the moment an inbound WhatsApp message's full text matches stop, stopall, unsubscribe, cancel, end, quit, optout, opt out or opt-out (case-insensitively), the contact is marked opted out immediately.

Know that running automation stops instantly, too. Any flow execution currently running or waiting for that contact's input is cancelled the same moment, so a sequence sitting in a wait step never wakes up and keeps sending after the opt-out.
See the automatic confirmation. The contact receives "You have been unsubscribed and will no longer receive messages from us. Reply START to opt back in at any time," sent once, automatically, with no configuration needed.
Check a contact's status from its detail view. Open any contact in Contacts to see its current opted-in status, and whether Meta's own marketing_stopped signal has additionally been set, both shown independently since they come from different sources.
Understand how a contact opts back in. Sending start, unstop, subscribe, optin, opt in or the reverse of opt-out reactivates them, but only if they are currently opted out; these words do nothing to a normal, already opted-in contact.
See the resubscribe confirmation. "You are subscribed again and will receive messages from us. Reply STOP at any time to unsubscribe," sent automatically on the actual transition back to opted in.
Check how a broadcast handles opted-out contacts. Build an audience that includes an opted-out contact if you like, since a segment does not automatically exclude them from being matched; the exclusion happens at send time, where they are suppressed and never billed rather than blocking the whole campaign.
What you will see
An opted-out contact shows a clear status indicator on its detail view, along with the date the opt-out happened. Any broadcast, sequence enrolment or automation attempt targeting that contact shows it as suppressed rather than sent, with the reason visible in the campaign's recipient breakdown. If Meta's own marketing_stopped signal fired independently of a typed keyword, that shows as its own separate flag, since the two are tracked and honoured independently.
Settings and options
| Setting or field | What it does | Default |
|---|---|---|
| WhatsApp opt-out keywords | stop, stopall, unsubscribe, cancel, end, quit, optout, opt out, opt-out | Always active, not configurable |
| WhatsApp opt-in keywords | start, unstop, subscribe, optin, opt in, opt-out's reverse form | Always active, not configurable |
| Instagram and Messenger keywords | STOP, UNSUBSCRIBE, CANCELAR (opt-out); their reverse (opt-in) | A separate, narrower set, always active |
| marketing_stopped_at | Meta's own in-app "stop marketing messages" signal | Honoured automatically on marketing sends |
| Opted-in status on import | Whether imported contacts are marked eligible for marketing sends | Off, gated behind a consent attestation checkbox |
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| A contact says they never got the opt-out confirmation | The keyword sent did not exactly match the recognised list, most commonly extra words in the same message | Check the exact message text; the match is on the whole trimmed message, not a substring inside a longer sentence |
| A sequence kept messaging a contact who opted out | This should not happen, since opt-out cancels every running flow execution immediately; check whether the opt-out was actually registered | Confirm the contact's status shows opted out with a timestamp; if it does and messages still went out, contact support with the conversation reference |
| A contact opted out but still appears eligible in a broadcast audience count | Segments do not automatically exclude opted-out contacts from matching; suppression happens at send time | Expected behaviour; check the campaign's recipient breakdown after sending to confirm they were suppressed, not actually sent to |
| Sending "start" as a normal contact triggered nothing | Correct, expected behaviour: opt-in keywords are only honoured on a contact that is currently opted out | No fix needed; this is intentional so common words do not accidentally trigger anything for regular contacts |
| Marketing messages still went out after a customer tapped "stop marketing messages" in WhatsApp itself | Meta's marketing_stopped webhook can take a short time to propagate, or the send was already queued before the signal arrived | Wait a short period and recheck; this signal is honoured automatically once received, with no manual step needed |
| A CSV import will not let me mark contacts opted in | The consent attestation checkbox was not ticked | See importing contacts from CSV for the exact consent requirement before marking a batch opted in |
Why does opting out cancel a running sequence immediately rather than letting it finish?
A sequence sitting in a wait step, paused for a day or a few hours before its next message, would otherwise wake up and keep sending after a contact has already asked to stop, which is a direct violation of WhatsApp's Business Policy requirement that an opt-out be honoured immediately. VGraple CRM cancels every flow execution in a running or waiting-for-input state for that contact the same moment the opt-out registers, rather than letting an already-scheduled step complete first. This is stricter than simply excluding the contact from future broadcasts, since it also stops an automation that is already mid-flight.
Why are WhatsApp's keywords broader than Instagram and Messenger's?
WhatsApp's consent handling has been part of VGraple CRM longer than Instagram and Messenger support, and its keyword list intentionally includes words like "cancel," "end" and "quit" that are plausible things to say about an order or an appointment, not only a subscription. Instagram and Messenger use a narrower set, STOP, UNSUBSCRIBE and the Spanish CANCELAR, matched as an exact whole-message instruction rather than including broader words, specifically so a sentence like "we can start on Monday" is never misread as a consent instruction on those channels. The two systems were deliberately kept separate rather than merged into one shared list, since widening Instagram and Messenger to match WhatsApp's broader set would be a real behaviour change, not a harmless cleanup.
Example
A customer messages "please cancel my order" on WhatsApp. Because "cancel" is in WhatsApp's opt-out list, this is treated as a consent instruction and the contact is marked opted out, receiving the standard unsubscribe confirmation, which is a known tradeoff of the broader WhatsApp keyword list worth being aware of if your business regularly receives cancellation requests as free text.
Once you understand how consent is enforced, review managing contacts, custom fields and segments to see opted-in status alongside every other contact field, or importing contacts from CSV before bringing in a list you plan to message.