Written by Valentina Llanos Pontaut
(Solutions Architect)
Manual unsubscribes were failing. Users who opted out of communications were still receiving messages across WhatsApp, email, and push — creating compliance risks and damaging trust. In this post, we’ll show how we solved that with multi-channel unsubscribe automation, using Braze’s APIs to build a scalable, centralized opt-out engine that eliminated manual errors and saved operations hours of time.
🚨 When “Stop” Doesn’t Stop
Both for WhatsApp and for email/push channels, the challenge was the same:
-
Teams handled unsubscribes manually inside Braze profiles.
-
As a result, some users were mistakenly resubscribed, received unwanted notifications, and lost trust.
-
We hypothesized that automating unsubscriptions via API and centralizing the process would reduce human error, protect user experience, and save operational time.
⚙️ Building the Auto-Unsubscribe Engine
We created a multi-channel automation to unsubscribe unwanted users through Braze’s users/track endpoint. The approach had three core components.
🎯 Step One: Who Needs to Be Blocked?
We used two methods for both WhatsApp and email/push:
-
User property flag: Adding a “blocked” property in the user profile. This method automates targeting, although it consumes a data point when updated.
-
CSV upload: Uploading a list of
external_id
s. This method avoids data point consumption, but it requires manual CSV uploads.
Therefore, each client can choose the method that best fits their workflow.
🔗 Step Two: Webhooks to the Rescue
-
Webhook campaign: Built in Braze using
users/track
endpoint. -
Headers:
Content-Type: application/json
Authorization: Bearer <REST API Key>
(must haveusers.track
permissions).
WhatsApp request body:
Email + Push request body:
Cluster endpoint:
https://rest.iad-0X.braze.com/users/track
(replace X with cluster number).
⏱ Step Three: Set It and Forget It
-
Schedule: Send as soon as the campaign launches.
-
Delivery Controls: Allow re-eligibility every 15 minutes. This ensures the system reprocesses edge cases where users reappear as subscribed.
-
Target audience: Segment of blocked or unwanted users (via property or CSV).
-
Important: Remove the control group in A/B Testing.
🌊 What Changed When Automation Took Over
-
Impact: The automation securely unsubscribed users across all channels. Manual intervention and accidental resubscriptions disappeared.
-
Efficiency: The operations team saved hours of manual work and minimized the chance of error.
-
Scalability: The same design now works for WhatsApp, email, and push. Moreover, it only requires minor payload adjustments.
-
Flexibility: The design can also automate subscriptions (opt-ins) or update user attributes whenever specific events occur.
🔮 Lessons for Next Time
Looking back, we see several improvements we could add:
-
Automating CSV ingestion so blocked user lists upload on a schedule.
-
Creating monitoring and alerts to flag users who might get mistakenly resubscribed.
-
Integrating event triggers so unsubscribes happen in real time when conditions arise (for example, fraud detection or churn signals).
🤝 From Pain Point to Playbook
Manual unsubscribes were risky and time-consuming. Automating them with Braze APIs brought consistency, security, and peace of mind.
Have you faced similar challenges with communication blocking? Or do you use another way to manage multi-channel unsubscribes? Let’s exchange ideas — we’d love to hear from you.