The unsubscribe was finished before the first campaign.
A promotional messaging system for a multi-branch operator, built so the way out worked before the first message was ever sent.
- Client
- A consent-first messaging system
- Practice
- AI Automation
- Published
- 24 August 2026
Everybody builds the send. Almost nobody builds the leaving.
The order in which promotional messaging usually gets built is the same everywhere. The send goes first, because the send is the part somebody asked for. The list comes with it. The unsubscribe arrives later, once a customer has complained, and it arrives as a link at the bottom of a message that somebody adds by hand and occasionally forgets.
On a channel people keep on their phone and answer with their thumbs, that order is the wrong way round. A customer who wants to be left alone will not go hunting for a preferences page. They will reply with one word, and if that word is not understood they will decide the business is one that does not listen. The cost is not a regulatory one first. It is that you have taught your best customers that replying to you does nothing.
- 01The way out is usually built after the way in, and after the first complaint
- 02People opt out by replying one word, not by finding a settings screen
- 03A promise about how often you will message somebody rests on whoever remembers it
Build the exit first, then earn the right to send.
Nothing was sent until leaving worked. The opt-out is a tapable button on every promotional message, and the words on it are the same four syllables in four different places: on the button in the messaging platform, in a constant in the code that reads the reply, in a test that pins that constant to the exact string, and in the sentence of the public privacy notice that tells customers how to stop.
Change the label in the dashboard and forget the code, and every opt-out breaks in silence. No error is raised anywhere. The first symptom is a complaint.
That is the failure this design is built around, and it is why the wording is held by a test rather than by a convention. Four copies of a phrase kept in step by care will drift the first time somebody edits the one they can see. Four copies with an assertion across them cannot drift without the build going red.
Tapping is not the only way people leave, so seven typed phrases are accepted as well: stop, unsubscribe, remove, remove me, opt out, and the obvious variants. The matching is exact rather than fuzzy on purpose, and the test that proves it uses the sentence that separates the two: please don’t stop sending offers is not an opt-out, and must never be read as one.
Two decisions on this path are worth naming because both were made against the easier option. The first version of the matcher stripped only trailing punctuation, and testing showed that a message reading STOP followed by a folded-hands emoji, and a quoted “STOP”, both fell through as ordinary messages. A real request to be left alone was being missed. It was widened to strip decoration from both ends while leaving the middle untouched, which is what keeps the match exact.
The second: the local languages spoken by much of this customer base were deliberately not added to the list. Nobody on the build could write those phrases with confidence, and a guessed phrase on a compliance path is worse than an honest gap, because it looks like coverage and is not. The button works in every language regardless. The gap is written down instead of papered over.
How often anyone may be messaged is a promise made in public, so it is enforced by the database at the point a campaign is queued rather than by the screen that queues it. A month means a calendar month in local time, because that is what a customer reading the promise understands it to mean.
Small numbers, and the right ones.
Fourteen campaigns and thirty-three messages have gone through this system. That is a small number and it is the honest one. This is not a page about reach.
The number that matters is zero: the count of promotional messages sent before the opt-out existed, was tested, and was published in a notice the recipient could reach. Twenty-two test files cover this area of the system, and the one that guards the wording carries twenty-three assertions, including the single line that pins the exact words a customer taps.
You can check this one. Reply to a promotional message with one word and see what happens. That is the whole claim.
For an owner, the practical value is not the compliance position, though that follows. It is that the channel keeps working. Customers who did not want the offers are gone from the list quietly and on their own terms, which is why the ones still on it are worth messaging.
- TypeScript
- Supabase
- Zod