The moment it happens
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.
- Runs
- The moment it happens
- Apps
- Brevo
- AI
- Not needed
- Access
- read+write
Send this to your assistant
Create a ClickRuntime automation: give me a link my CRM can post new leads to. Check each email, create or update the contact in Brevo, add them to my 'Prospects' list, and email me a daily count.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A marketing team collects leads from many places at once: a landing page form, a webinar signup, a partner export, a chat widget. Each source ends up in a different spreadsheet or inbox, and someone has to retype the addresses into Brevo and pick the right list. Leads wait for days, some are mistyped, and the welcome email that should have gone out within minutes never does.
As soon as a lead arrives at the webhook, ClickRuntime checks that the email address is valid, creates the contact in Brevo or updates it if it already exists, and adds it to the list IDs you specify. When the batch is processed, you receive an email with a count of how many were added.
It works for agencies, event teams and small businesses that gather leads from several tools.
What you get out of it
Leads receive a welcome while interest is high
A contact created within moments can enter an automated welcome sequence the same hour. Interest fades fast, so that early touch is when replies and sign-ups are most likely. Fast welcome emails make a visible difference to reply rates.
Typos and junk are filtered first
Checking that the email is valid before creating the contact keeps obviously broken addresses out of Brevo. Your bounce rate and sender reputation stay in better shape. Lists built from clean data also cost less to send to, since many plans price by contact count.
The right list gets every contact
Because the list IDs are set in the workflow, leads from a webinar and leads from a partner never get mixed up. Each campaign reaches the audience it was meant for.
No retyping or spreadsheet shuffling
Nobody copies addresses between files and forgets half of them. Hours of weekly data entry disappear, and so does the risk of copying the wrong column. The weekly cleanup of messy sheets stops being a chore.
Existing contacts are updated, not duplicated
Creating or updating avoids a second record for someone who signs up twice. Brevo stays tidy, and your subscriber count reflects real people. Segments and automations then work from reliable data, avoiding the confusion of two records for one person.
How it works
What happens, step by step
When your CRM sends a new lead to your ClickRuntime link, the automation runs straight away.
It checks the email address looks valid and skips the lead if it doesn't.
It creates the contact in Brevo, or updates them if they already exist, with their name, and adds them to your Prospects list.
At the end of the day you get an email with how many contacts were added or updated.
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
import re
from datetime import date
from clickruntime import on_event, on_trigger, credentials, http, state, notify, log
PROSPECTS_LIST_ID = 7
@on_event
def handle(event):
lead = event.json
email = (lead.get("email") or "").strip().lower()
if not re.fullmatch(r"[^@\s]+@[^@\s]+\.[^@\s]+", email):
log.warning("skipped invalid email", {"email": email})
return {"added": False}
http.post("https://api.brevo.com/v3/contacts", headers={"api-key": credentials.secret("BREVO_API_KEY")},
json={"email": email, "attributes": {"FIRSTNAME": lead.get("first_name"), "LASTNAME": lead.get("last_name")},
"listIds": [PROSPECTS_LIST_ID], "updateEnabled": True}).raise_for_status()
state.increment_metric("leads_added", ttl_days=30)
return {"added": email}
@on_trigger
def daily_count(event):
today = state.query_metric("leads_added", bucket="day", from_time=f"{date.today()}T00:00:00Z")
total = sum(p["value"] for p in today) if today else 0
notify.email_me("Leads added to Brevo today", f"{total} contacts were added or updated in Prospects.")
return {"total": total}FAQ
Common questions
What happens if a contact already exists in Brevo?
Does it check that people consented to marketing email?
Can leads from different sources go to different lists?
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
Flag unsubscribes and hard bounces in Slack
Each time a contact unsubscribes or an address hard-bounces, Slack shows who and what happened.
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 “File new leads into a Brevo list” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.