Introduction

A client who no longer wants your broadcasts has two ways out: the one you give them, or the Block and Report buttons in WhatsApp. The second one is expensive. Repeated negative feedback lowers your quality rating, and Meta pauses templates that keep collecting it, so a template you rely on can stop working for every client because a few of them had no polite way to leave.

Data protection laws point the same way. Under the GDPR a client may object to direct marketing at any time, and once they have, you must stop sending it.

This document shows how to give clients a one-tap way out, and how Alaaqat stops messaging them afterwards.

What "unsubscribed" means

Every contact has an Unsubscribed On property, in the Contact Conversations property group. While it holds a date, the business no longer starts conversations with that contact.

What stops:

  • Broadcasts. The contact is removed from the recipients. They are not counted in the recipient total shown before you send, and they do not consume your message quota.
  • Workflow messages. A Send Canned Response action does nothing for that contact.
  • Sending a template to them individually. The contact's WhatsApp icon reports that the contact has unsubscribed instead of sending.

What does not stop:

  • The contact writing to you. Their messages arrive in the inbox as usual.
  • Your team replying. An agent can still answer inside a conversation the client started. Answering someone who wrote to you is not the same as starting a conversation with them.
  • WhatsApp verification codes (OTP). A one-time password is a code the client just asked for, not marketing.

{info} Unsubscribed is not Blocked. Blocking a contact stops their incoming messages from reaching your inbox. Unsubscribing stops your automated outgoing messages. The two are set separately, and one does not imply the other.

Step 1: Add an opt-out button to your template

Add a Quick reply button to the template you broadcast with. From Conversations > WhatsApp Broadcast, create the template, then in the Buttons section press + Add a Button and choose Quick Reply.



Unsubscribe1-EN

Type the label the client will see — for example Stop promotions or Unsubscribe — into the value field. The preview on the right shows the button exactly as it will arrive on the client's phone.



Unsubscribe2-EN

Points to keep in mind:

  • The label is limited to 25 characters, and quick reply buttons must be grouped together, either before or after all other buttons. See the Templates document for the full list of template rules.
  • The button label is the value the workflow matches on. Write it down exactly as you typed it, including capital letters and spaces — you will need it in the next step.
  • The template must be approved by Meta again after you edit it. If you later change the button label, the workflow will stop matching until you update it too, so prefer to settle on a label once.
  • A template published in more than one language sends a different label per language. Each label needs its own branch in the workflow, or its own workflow.

Step 2: Build the unsubscribe workflow

Create a workflow with the following three pieces:

Event Message received The workflow starts when the client taps the button, which reaches you as a message.
Condition Message auto ID equals The value is the button label from step 1, for example Stop promotions.
Action Unsubscribe Contact Stamps Unsubscribed On with the moment the client tapped.

From the Conditions tab, add Message auto ID equals and type the button label into the box under it.



Unsubscribe3-EN

Unsubscribe Contact is in the Actions tab, next to the other contact actions.



Unsubscribe4-EN

Connect Unsubscribe Contact to the true branch of the condition. The false branch is every other message the client sends, so either leave it empty or continue it with your usual auto-reply.

{info} Message auto ID is the same condition used for interactive list and reply buttons, described in the Interactive Messages document. For a template quick reply button, the auto ID is simply the button label.

Use the Unsubscribe Contact action rather than Update Contact on the Unsubscribed On property. Update Contact writes a value you type while building the workflow, so every client who ever taps the button would be recorded with the date you built it. Unsubscribe Contact records the moment the client actually objected, which is the date you need if the objection is ever questioned.

Step 3: Confirm the opt-out

Tapping a button and getting nothing back reads as "it did not work", and the client blocks you anyway. Add a Send Canned Response action that says the request was received, for example:

You have been unsubscribed and will not receive further promotional messages from us. You can still write to us here any time.

Put the canned response before the Unsubscribe Contact action. Automated messages to an unsubscribed contact are stopped, so a confirmation placed after the unsubscribe may never leave.

The confirmation is free: the client's tap opens a 24-hour window, and a reply inside that window is a free-form message, not a template.

Unsubscribing a contact by hand

Clients also ask verbally — in the chat, over the phone, or by email. To record that, open the contact and set the Unsubscribed On property to the date of the request. It sits in the Contact Conversations group, next to Blocked from Messages; searching the contact's properties for "unsub" is the quickest way to reach it, and the pencil opens a date picker.



Unsubscribe6-EN

Use the real date of the objection, not today's, when the client asked earlier and you are catching up.

Resubscribing a contact

If a client asks to receive your messages again, empty the Unsubscribed On property on the contact. From that moment they are a broadcast recipient again.

Only do this when the client asked for it. Clearing an objection to send another campaign is exactly what the property exists to prevent.

Final workflow

The finished workflow reads:

Message receivedMessage auto ID equals Stop promotionstrueSend Canned Response (confirmation) → Unsubscribe Contact



Unsubscribe5-EN

From the next broadcast on, that client is no longer in the recipient list, and you never pay to send them a message they did not want.