n8n Mailchimp Integration: Sync Webhook Leads to Email Lists in Minutes
An n8n Mailchimp integration lets you automate audience management without paying per-contact fees or dealing with Zapier's task limits. Whether you're capturing leads from a landing page, syncing customer data from Shopify, or tagging subscribers based on behavior, n8n's native Mailchimp node handles the connection directly. In this guide, you'll build three practical Mailchimp automations — a webhook-to-list sync, a Google Sheets audience importer, and a behavioral tagging workflow — all running on your own n8nautomation.cloud instance for $7/month with no execution caps.
Why Automate Mailchimp with n8n Instead of Native Integrations
Mailchimp's built-in integrations cover the basics — connecting a form builder, syncing an ecommerce platform, or embedding a signup widget. But once you need conditional logic, multi-step data transformation, or connections between Mailchimp and tools that don't have a native Mailchimp integration, you hit a wall.
n8n solves this by acting as the middleware between Mailchimp and everything else. With the n8n Mailchimp node, you can:
- Subscribe members with custom merge tags and interests.
- Update existing members based on external behavior (page visits, purchases, form submissions).
- Add and remove tags dynamically based on scoring or lifecycle stage.
- Unsubscribe or delete members when they hit a suppression rule in your CRM.
- Trigger campaigns or automations when a segment condition is met.
And because n8n runs on a managed instance, you get unlimited workflow executions, full data privacy (data stays on your instance), and no per-transaction fees from a middleware vendor.
Tip: Mailchimp's API treats the email_address field as the unique identifier. If you try to add a member whose email already exists in the list, the operation fails by default. Use the Upsert operation mode in the n8n Mailchimp node to update existing subscribers instead of throwing an error.
Workflow 1: Automatically Add Webhook Leads to a Mailchimp List
If you're collecting leads through a custom form, a landing page builder like Carrd or Unbounce, or a CRM webhook, you need those contacts in Mailchimp immediately — not after a manual CSV export. Here's how to build a webhook-to-Mailchimp sync that runs in real time.
- Add a Webhook trigger node.
- Set the HTTP Method to POST.
- Enable Respond to Webhook so the form or tool gets a 200 confirmation.
- Copy the generated webhook URL — this is where your form builder will send data.
- Add a Set node to normalize field names.
- Map incoming field names (e.g.,
email,full_name) to Mailchimp's expected format (email_address,merge_fields.FNAME,merge_fields.LNAME). - If your form sends a single
namefield, add a Code node to split it into first and last name:
- Map incoming field names (e.g.,
const input = $input.first().json;
const nameParts = (input.name || '').split(' ');
return [{
email_address: input.email,
merge_fields: {
FNAME: nameParts[0] || '',
LNAME: nameParts.slice(1).join(' ') || ''
},
status: 'subscribed'
}];
- Add a Mailchimp node.
- Select operation: Add Member to List.
- Choose your Mailchimp audience list from the dropdown.
- Set Email Type to
html(ortextif your campaigns are plain-text). - Enable Allow List Members to Be Created.
- Set Update Existing Members to
true— this handles repeat submissions gracefully.
- Add a Mailchimp Tag node (optional).
- Tag the new subscriber with
webhook-leadso you can track which source they came from. - If your webhook payload includes a
sourcefield (e.g.,landing-page-a), pass it as a dynamic tag.
- Tag the new subscriber with
- Add a Slack node for logging (optional).
- Send a notification to your #marketing channel with the subscriber's email and tag.
- This gives your team visibility without checking Mailchimp's activity log.
Once the workflow is active, every form submission triggers this pipeline. The subscriber lands in Mailchimp within seconds, tagged by source, ready for your next campaign.
status field in your n8n Mailchimp node to subscribed instead of pending. Make sure your privacy policy covers this — bypassing opt-in where it's legally required can get your Mailchimp account suspended.Workflow 2: Sync a Google Sheet to a Mailchimp Audience
Marketing teams often maintain lead lists in Google Sheets — event attendees, webinar registrants, content downloaders. Instead of exporting a CSV and importing it through Mailchimp's dashboard every week, build a scheduled sync that reconciles the sheet with your audience automatically.
- Add a Schedule Trigger node.
- Set it to run every hour or daily at 9:00 AM, depending on how frequently your sheet updates.
- Add a Google Sheets node.
- Select operation: Read Rows from Sheet.
- Specify the sheet ID and range (e.g.,
Sheet1!A:E). - Your columns should include: Email, First Name, Last Name, Tags, Status.
- Add a Filter node.
- Remove rows where the Email column is empty.
- Remove rows where the Status column equals
synced(prevents re-processing).
- Add a Mailchimp node.
- Select operation: Add Member to List.
- Map the sheet columns to Mailchimp merge fields.
- Enable Update Existing Members.
- Add a Mailchimp Tag node.
- Parse the Tags column — if it contains comma-separated tags (e.g.,
webinar-june, marketing), use a Code node to split them into an array, then apply each tag via the Mailchimp Tag node.
- Parse the Tags column — if it contains comma-separated tags (e.g.,
- Add a Google Sheets Update node.
- Change the Status column to
syncedfor processed rows and add a timestamp. - This keeps your sheet clean and prevents re-syncing on the next trigger.
- Change the Status column to
This workflow handles bulk imports cleanly. If your sheet has 500 rows, n8n processes them in sequence — no manual intervention, no CSV export, no Mailchimp dashboard clicks.
Workflow 3: Behavioral Tagging Based on External Events
One of the most powerful uses of an n8n Mailchimp integration is behavioral tagging — updating a subscriber's tags and segments based on actions they take outside Mailchimp. For example, if a user completes a course in your LMS, you can tag them in Mailchimp as course-graduate and move them into a new automation.
Here's the workflow structure:
- Add a Webhook trigger node.
- Your external system (LMS, membership site, payment processor) sends a POST request whenever a user completes an action.
- The payload should include
emailandevent_type.
- Add an IF node to route by event type.
- Condition 1:
event_type === 'course_completed'→ tag ascourse-graduateand add to a specific Mailchimp automation. - Condition 2:
event_type === 'high_value_purchase'→ tag asvip-customerand update merge fieldLTVwith the purchase value. - Condition 3:
event_type === 'churned'→ remove from active campaigns and add to a re-engagement sequence.
- Condition 1:
- Add Mailchimp nodes on each branch.
- Use the Update Member operation to add tags and set merge fields.
- Use the Add Note operation (via HTTP Request node to Mailchimp API) to log the event in the subscriber's activity timeline.
- Add a Mailchimp Campaign Trigger (optional).
- For VIP customers, you can use Mailchimp's Automation API to enroll the subscriber in a specific email sequence.
- Use the HTTP Request node to POST to
/automations/{workflow_id}/emails/{email_id}/queue.
This workflow turns Mailchimp from a static email platform into a dynamic, event-driven marketing engine. Every user action becomes a trigger that updates their profile, adjusts their segment, and moves them through your nurture flow — all in real time.
Handling Mailchimp API Rate Limits in n8n Workflows
Mailchimp's API rate limits vary by plan. Free accounts get 10 requests per second. Paid plans get higher limits but still cap out. If your n8n Mailchimp integration processes hundreds of subscribers in a single execution, you need to handle rate limiting explicitly.
- Add a Split In Batches node before the Mailchimp node. Set batch size to 10 and add a 200ms delay between batches. This keeps you well under the 10 req/sec limit on free plans.
- Check error output — the Mailchimp node's error branch captures 429 (Rate Limit Exceeded) responses. Connect an IF node to the error output and retry after a 5-second wait using a Wait node.
- Log failures — send failed operations to a Google Sheet or Slack channel for manual review. This prevents silent data loss.
Tip: If your Mailchimp list has more than 10,000 members and you're doing a full sync, consider using Mailchimp's batch API endpoint (POST /3.0/batches) instead of individual member operations. n8n's HTTP Request node can handle this — you send a JSON payload with all operations in a single request. Mailchimp processes it asynchronously and you poll for the result.
Managing Mailchimp API Credentials Securely in n8n
When setting up your n8n Mailchimp integration, you'll need an API key from Mailchimp. Here's how to generate and store it securely.
- Generate your Mailchimp API key.
- In Mailchimp, go to Account → Extras → API Keys.
- Click Create a Key and give it a descriptive name like
n8n-integration. - Copy the key immediately — Mailchimp only shows it once.
- Add the credential to n8n.
- In the n8n editor, go to Credentials → Mailchimp.
- Paste your API key in the API Key field.
- Your Mailchimp data center (the
us1,us2, etc., suffix in your API key) is auto-detected by n8n.
- Restrict the API key in Mailchimp.
- If your Mailchimp plan supports it, restrict the API key to specific IP addresses — your n8n instance's outbound IP.
- This prevents the key from being used if it's ever leaked.
On a managed platform like n8nautomation.cloud, your credentials are encrypted at rest and never exposed in workflow exports. When you migrate workflows using the built-in migration tool, credentials are deliberately excluded — you re-authenticate on the new instance. This keeps your Mailchimp API key secure even when moving between instances.
Testing Your Mailchimp Workflow Before Going Live
Mailchimp charges based on audience size. A buggy workflow that accidentally creates duplicate subscribers or sends test data to your live list wastes both time and money. Test your n8n Mailchimp integration using a dedicated test list.
- Create a test audience in Mailchimp — name it something obvious like
[TEST] n8n Integrationso no one mistakes it for production data. - Use n8n's manual execution mode — run the workflow once with a single test contact before activating the trigger.
- Check the execution output — n8n shows each node's input and output data. Verify that merge fields, tags, and status values are correct before scheduling the workflow.
- Monitor the logs — n8nautomation.cloud provides a built-in logs viewer in the dashboard so you can review execution history, error messages, and response times for every workflow run.
Once the test passes, switch the Mailchimp node to your production audience list and activate the workflow. The same pipeline that worked on test data will work on live data — just with real subscribers instead of dummy contacts.