Services keyboard_arrow_down
Products keyboard_arrow_down
Insights keyboard_arrow_down
Services keyboard_arrow_down
Products keyboard_arrow_down
Insights keyboard_arrow_down
EN


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_ids. 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 have users.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.