Connect by JBRH Open Connect

STOP and opt-out keywords

A recipient can end messaging by replying with a single word — STOP is the one everybody knows, and several others are treated the same way. Honouring it means stopping immediately, at most confirming once, and remembering it permanently. Connect handles inbound opt-out on SMS and records it as a suppression that outlives the conversation it arrived in.

Status
Available What this means
Audience
both
Channels
smswhatsapp
In the app
#/dlt
Last verified
Product version
6.3.2

The words, and the ones people actually send#

The recognised opt-out set is small and stable: STOP, STOPALL, UNSUBSCRIBE, CANCEL, END and QUIT. Alongside it are HELP and INFO for assistance, and START, UNSTOP or YES to resume. Operators in different countries publish their own versions of this list and they overlap heavily.

What arrives in practice is messier, and a matcher that only accepts the canonical form fails people who have done everything right.

  • Case is arbitrary. stop, Stop and STOP are one word.
  • Punctuation and whitespace attach themselves. STOP. and stop are opt-outs.
  • People add politeness. please stop and STOP sending these are unmistakable to a human and are worth treating as unmistakable in code.
  • People use the wrong word. REMOVE, unsubscribe me, do not contact are not always in the standard set and mean exactly the same thing.

What honouring one actually requires#

  1. Stop immediately, not at the end of the current run.

    Result The next scheduled message is the one that causes the complaint. An opt-out that takes effect tomorrow has not taken effect.

  2. Send at most one confirmation, and nothing else.

    Result A single acknowledgement is expected and accepted. A second message explaining how sorry you are to see them go is a message they told you not to send.

  3. Record it against the person, with its origin and its time.

    Result Months later somebody will ask why this contact is suppressed, and the answer needs to be a record rather than a guess.

  4. Decide the scope deliberately, and write the decision down.

    Result Protocol scope is narrow — this identity, on this channel. Human intent is usually broad. Treating a STOP as applying only to the exact sender identity is technically defensible and reads as evasion.

Does Connect use STOP keywords?#

Used, and available on the inbound side of SMS today. Inbound messages are de-duplicated, attached to the right relationship, and a STOP becomes a suppression recorded like any other. WhatsApp opt-out is honoured and recorded the same way, so a single mechanism covers both channels rather than two lists that can disagree.

Blocking is deliberately not a column on a contact record. It is a memory row held against the person and tagged block:<channel> — the directive reader looks only at the tag list, never at the prose. Holding it as memory is what makes a block survive across channels and across conversations that have not happened yet, instead of applying to one thread.

Two properties follow from that, and both are deliberate. A suppression is checked at the send boundary every outbound message passes through, so there is no path that skips it. And the in-app Assistant, whose rights are narrower than a person's, cannot clear a do-not-contact entry — removing one is a human decision with a human recorded against it.

Where two opt-out lists quietly diverge#

On many SMS routes the operator itself intercepts an opt-out and blocks traffic from that sender identity to that number, without necessarily telling the sender. The result is a person who is opted out at the network and absent from your own suppression list — so your system keeps trying, every attempt is discarded upstream, and your delivery figures quietly rot.

Where the opt-out is heldSymptom when only one holds itWhat to do
The operator onlyMessages report as sent and never arrive; no bounce, no complaint, no clueTreat repeated non-delivery to one number as evidence and suppress locally
Your system onlyThe person is respected, but a different sender identity or route may still reach themSuppress against the person, not the sender identity
BothThe intended stateKeep the local record as the authority you can explain

The lesson generalises past SMS: a suppression you cannot see is a suppression you cannot honour deliberately, and the only list you can reason about is the one you keep yourself.

Opting back in#

Resuming has to be the recipient's action, never an inference. A reply of START or YES to the same identity is the recognised route, and a conversation that happens to continue afterwards is not consent to resume broadcasts. A suppression that was cleared should record who cleared it and on what basis, exactly as the original opt-out recorded its own origin.

Where an opt-out came from a do-not-contact decision rather than a protocol keyword, it is not cleared casually at all — that entry exists precisely because somebody decided the relationship should not be reopened by an automated system.

Questions#

Does a STOP on SMS stop email too?

By protocol it applies to the identity and channel it was sent on. By intention it rarely does — most people who send it mean all of it. Connect holds a block as a directive against the person, tagged per channel, so the scope is an explicit decision rather than an accident of where the word arrived.

Should the confirmation message be sent at all?

One is expected and is generally the right thing: it tells the person the instruction landed. What matters is that it is the last message, and that it does not attempt to change their mind.

Can the Assistant remove someone from the suppression list?

No. Its rights are deliberately narrower than a person's, and clearing a do-not-contact entry is outside them. A person can, and the decision is recorded against them.