How to Add New Subscribers to Brevo (Sendinblue) with n8n — listIds Explained
How to Add New Subscribers to Brevo (Sendinblue) with n8n — listIds Explained Use this guide to add new subscribers to Brevo (formerly Sendinblue) from n8n with a single webhook. In short: capture the signup event in n8n, send the contact data to the Brevo/Sendinblue node, and pass the listIds…

How to Add New Subscribers to Brevo (Sendinblue) with n8n — listIds Explained
Use this guide to add new subscribers to Brevo (formerly Sendinblue) from n8n with a single webhook. In short: capture the signup event in n8n, send the contact data to the Brevo/Sendinblue node, and pass the listIds field (an array of list IDs) so the contact is added to one or more lists immediately.
This page includes a copy‑ready n8n node example, common listIds pitfalls, troubleshooting tips, and quick tests you can run in under 10 minutes to fix low search visibility for queries like n8n Brevo listids and n8n Brevo node listIds.
How the n8n → Brevo flow works (quick overview)
At a high level the workflow is: a signup trigger → capture subscriber fields → map required properties (email, name) → call Brevo node to create or update contact → include listIds to place the contact on one or more lists.
Trigger: form, webhook, or CRM event
Format: ensure email is normalized (lowercase, trimmed)
Brevo node: resource = contact, operation = create/update
listIds: send as an array of integers (e.g., [2, 5]) or per-node accepted format
Step-by-step: Build the “Add subscriber” workflow in n8n
1. Trigger: Webhook or Form
Create an n8n webhook node that listens for new signups. Use your form provider (Typeform, Webflow, Stripe Checkout, or your own frontend) to POST the subscriber payload to this webhook.
2. Normalize fields
Add a Set or Function node to normalize email and prepare payload keys the Brevo node expects (email, attributes, listIds). This prevents duplicates caused by case differences or whitespace.
3. Brevo / Sendinblue node: create or update contact
Use the Brevo (Sendinblue) node in n8n. Choose resource contact and operation createOrUpdate (or create/update depending on your node version). Map email and attributes, and set listIds to the list IDs you want the user added to.
Example: if your onboarding list has ID 2 and a newsletter list is 5, pass both so the new user is added to both lists.
{
"nodes": [
{
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"parameters": { "path": "signup-webhook", "httpMethod": "POST" }
},
{
"name": "Set",
"type": "n8n-nodes-base.set",
"parameters": {
"values": {
"email": "={{ $json["email"].toLowerCase().trim() }}",
"FIRSTNAME": "={{ $json["firstName"] || $json["name"] }}",
"listIds": [2, 5]
}
}
},
{
"name": "Brevo",
"type": "n8n-nodes-builtin.brevo",
"parameters": {
"resource": "contact",
"operation": "createOrUpdate",
"email": "={{ $json.email }}",
"attributes": { "FIRSTNAME": "={{ $json.FIRSTNAME }}" },
"listIds": "={{ $json.listIds }}"
}
}
],
"connections": { "Webhook": { "main": [[{ "node": "Set" }]] }, "Set": { "main": [[{ "node": "Brevo" }]] } }
}
How to pass multiple list IDs (common question)
Most Brevo/Sendinblue APIs expect listIds as an array of integers (e.g., [2,5]). Some n8n node versions accept a comma-separated string (“2,5”). Always check the node UI. If in doubt, send an array — it is the API-native format and prevents parsing issues.
Troubleshooting: Why listIds may not work
Wrong data type: listIds sent as string when the node expects an array — convert with a Set node.
Invalid IDs: verify the list exists in Brevo and use numeric IDs (not names).
Authentication errors: check API key, OAuth scopes, and that the credential is stored securely in n8n.
Duplicate contacts: use createOrUpdate to avoid duplicates and enable deduping by email.
Testing and verification
After wiring the workflow, test with a sandbox email and inspect the Brevo dashboard to confirm the contact appears in the target list(s). Use n8n’s execution log to review the request/response payloads and identify mapping errors or API responses with error details.
Best practices to improve deliverability and avoid failures
Authenticate sending domain (SPF, DKIM) in Brevo before mass sends.
Normalize and validate emails at capture time to reduce bounces.
Use rate limiting / delays if you batch-add many subscribers to avoid API throttling.
Log API responses and create alerts for failed contact creations.
Internal links and further reading
Related guides to help extend this workflow:
FAQ
What is the Brevo “listIds” parameter?
listIds tells Brevo which contact list(s) to add the subscriber to. It is typically an array of numeric list IDs (for example, [2,5]). Use the Brevo dashboard to confirm the correct list IDs before sending.
How do I pass multiple list IDs in n8n?
Pass an array like [2,5] from a Set node or JSON body. If a node expects a string, use a comma-separated value “2,5” — but prefer arrays where possible to avoid parsing issues.
Why isn’t my contact added to the list?
Check the API response in n8n execution logs. Common causes include invalid list ID, missing email, or authentication errors. Confirm credentials and the Brevo list configuration.
Quick checklist before you deploy
Validate email format at capture
Use createOrUpdate to dedupe by email
Pass listIds as an array of integers
Test with a sandbox contact and verify in Brevo dashboard
Monitor n8n execution logs for API errors
If you want, I can save this as a draft on the post and include a short meta title and description optimized for queries like n8n brevo listids. Ready for me to save the draft to Post ID 2983?
More in Use Cases
Automate Facebook Posting to Bolotatto with n8n — Practical Guide
Stop manually copying Facebook posts into Bolotatto. This guide shows how to use n8n to capture page posts, transform content, and deliver structured payloads to Bolotatto webhook endpoints for reliable publishing.
Automate Social Media Posting with n8n in 2025
How to use n8n to automate social posts in 2025 — triggers, AI captions, channel delivery, troubleshooting, and ROI for stores, creators and teams.
Automate Shopify Product Launches for E-Commerce Teams, Marketers & Creators
Managing product launches shouldn’t mean endless copy-paste Every time a product goes live in Shopify, most merchants scramble: log into X (Twitter), draft a caption, paste into Telegram, maybe upload to Instagram. It’s repetitive, inconsistent, and easy to miss. A new product might sit for…

