The moment it happens
Flag unsubscribes and hard bounces in Slack
Each time a contact unsubscribes or an address hard-bounces, Slack shows who and what happened.
- Runs
- The moment it happens
- Apps
- Brevo
- AI
- Not needed
- Access
- read+write
Send this to your assistant
Create a ClickRuntime automation: whenever someone unsubscribes or hard-bounces in Brevo, post the email and the event type to #email-health in Slack.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Every email list loses people, and two kinds of loss matter more than the rest. An unsubscribe is a customer telling you something about your emails, and a hard bounce is an address that no longer works and will damage your sender reputation if you keep mailing it. In Brevo both are handled automatically, which is helpful, but it also means nobody on your team ever sees them.
ClickRuntime creates a webhook in Brevo for these events. When someone unsubscribes or an address hard-bounces, Brevo calls it and a message goes to Slack with the contact and the event type. The post appears as the event happens, so you see each one in context.
Newsletter owners, account managers and customer success teams that want to react to individual churn signals use it.
What you get out of it
Unhappy readers can be asked why
A single unsubscribe from a key customer can be a warning sign. A personal note the same day might save the relationship or at least teach you what went wrong.
Dead addresses are noticed promptly
A hard bounce on a client's address means they changed jobs or their domain failed. Calling them or finding the new contact keeps the relationship from going dark. One call or message can reconnect a valuable account.
Sender reputation is protected
A sudden wave of hard bounces suggests a bad list import. Seeing it in minutes lets you stop a campaign before mailbox providers start treating your domain as spam. A bad import caught after fifty bounces is much better than one caught after five thousand.
Campaign problems show up sooner
If unsubscribes jump after a particular email, the channel makes that obvious. You can review the content or frequency before the next send. Unsubscribe spikes teach you what readers dislike, and acting on that lowers future list losses.
Customer records stay accurate
Account managers can update the CRM when someone leaves or an email dies. Your records reflect reality instead of drifting out of date. Sales and success teams then work from contact details that are still valid, rather than chasing addresses that went dead months ago.
How it works
What happens, step by step
When a contact unsubscribes or an email address hard-bounces, Brevo tells ClickRuntime straight away.
The automation ignores every other kind of email event.
It posts what happened and the email address to your #email-health Slack channel, such as "Hard bounce: old-address@northwind.example".
Before it runs live
- Connect Brevo
- Paste your automation's link into the other app's webhook settings
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Act only on the items that match your own rules, and skip the rest
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Brevo steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_event, notify
LABELS = {"unsubscribed": "Unsubscribed", "hard_bounce": "Hard bounce"}
@on_event
def handle(event):
body = event.json
kind = body.get("event")
if kind not in LABELS:
return {"skipped": kind}
notify.slack(f"{LABELS[kind]}: {body['email']}", channel="#email-health")
return {"posted": kind}FAQ
Common questions
What is the difference between a soft and hard bounce?
Does Brevo remove the contact automatically?
How do I get the webhook created in Brevo?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
File new leads into a Brevo list
Each lead your CRM sends is checked, created or updated in Brevo and added to the right list.
See how it worksPost new Brevo contacts to Slack
Within 15 minutes of joining, each new contact shows up in Slack with their email and list.
See how it worksGet a Monday report on Brevo campaigns
One email lists every campaign sent last week with opens, clicks and unsubscribes.
See how it worksKeep exploring
Set up “Flag unsubscribes and hard bounces in Slack” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.