🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Google Sheets to Mailchimp, clean imports every time

Lisa Granqvist Partner Workflow Automation Expert

Your lead list is “somewhere” in Google Sheets, and your Mailchimp audience is “kind of” up to date. Then a campaign goes out and you notice it: duplicates, weirdly formatted names, and new signups that never made it into the list.

This Sheets Mailchimp import problem hits marketing managers first. But founders running their own newsletters and agency teams maintaining client lists feel it too, because manual imports always break at the worst time.

This workflow pulls contacts from Google Sheets, cleans and formats them, pushes them into Mailchimp, and leaves you with a clear import summary so you know what happened.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Google Sheets to Mailchimp, clean imports every time

The Problem: Messy spreadsheet leads create messy email lists

Google Sheets is where leads go to “wait,” especially if they come from a form, an event list, a partner referral, or a VA doing manual entry. Then someone exports a CSV, imports it into Mailchimp, and hopes the columns line up. They rarely do. Full names get dumped into the wrong field, phone numbers vanish, and duplicates creep in when you re-import a “latest” sheet next week. It’s not just time wasted. It’s confidence lost, because you stop trusting your own audience count.

The friction compounds. Here’s where it usually breaks down.

  • You end up reformatting columns by hand because one sheet uses “Email,” another uses “Email address.”
  • Full names like “Mary Jane Watson” don’t split cleanly, so personalization looks sloppy in campaigns.
  • Duplicate imports force you to clean your audience later, which is honestly the worst kind of busywork.
  • No one can tell what actually imported, so you’re stuck spot-checking rows and guessing.

The Solution: Auto-import Google Sheets contacts into Mailchimp (cleanly)

This n8n workflow turns your Google Sheet into a reliable “source of truth” for Mailchimp imports. You start the workflow manually (or schedule it to run automatically), and it retrieves all rows from your chosen sheet. Next, it maps your sheet’s columns into consistent fields, then prepares a subscriber payload that Mailchimp understands. That’s where the cleanup happens: full names get split into first and last name, emails are placed correctly, and phone numbers can be included as merge fields. Finally, the workflow attempts to add each contact to your Mailchimp audience and produces an import report so you can see what worked, what skipped, and what needs attention.

The workflow begins when you launch it in n8n (or on a schedule). It pulls rows from Google Sheets, formats each subscriber, then pushes them to Mailchimp. At the end, you get a simple summary you can use for QA or client reporting.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you collect about 200 new leads a week from a Google Form feeding into Sheets. Manually, someone exports CSV, cleans name fields, checks for obvious duplicates, then imports into Mailchimp, which is easily about 60 minutes (sometimes more when the sheet is messy). With this workflow, you run it (or let it run daily), then spend about 10 minutes reviewing the import summary and fixing the handful of rows that were missing an email or had a strange name format. You get most of that hour back, every week.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Sheets for the lead spreadsheet source.
  • Mailchimp to add contacts to your audience.
  • Mailchimp API key (optional) (get it from Mailchimp: Account → Extras → API keys)

Skill level: Beginner. You’ll connect accounts, paste a sheet ID, and choose the right audience in Mailchimp.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

Manual or scheduled start. You trigger the workflow in n8n using the manual launch, or you swap it to a Schedule Trigger so it runs every morning before you check email.

Pull rows from Google Sheets. n8n retrieves the records from your chosen spreadsheet and worksheet. This is why your column names matter, because the workflow expects a consistent structure (like “Names” and “Email address”).

Clean and prepare subscriber data. The workflow maps fields and formats each contact for Mailchimp, including splitting a full name into first and last name and attaching a phone number as a merge field if you have it.

Add to your Mailchimp audience and summarize. Each contact is sent to Mailchimp, and the workflow continues even when a specific row fails. At the end, it builds an import report so you can see counts and any obvious problems.

You can easily modify which columns get mapped and which merge fields are sent to Mailchimp based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Manual Trigger

This workflow starts manually so you can test the full import process on demand.

  1. Add the Manual Launch Trigger node as your workflow trigger.
  2. Leave all settings at default, since this node requires no configuration.
  3. Connect Manual Launch Trigger to Retrieve Sheet Records to begin the flow.

Step 2: Connect Google Sheets

Pull subscriber records from your Google Sheet before mapping and transforming them.

  1. Select the Retrieve Sheet Records node.
  2. Set Document to the Google Sheet ID: YOUR_GOOGLE_SHEET_ID.
  3. Set Sheet Name to YOUR_SHEET_NAME.
  4. Credential Required: Connect your Google Sheets credentials.
  5. Connect Retrieve Sheet Records to Map Sheet Fields.
⚠️ Common Pitfall: If the sheet name or ID is incorrect, Retrieve Sheet Records will return no rows and downstream nodes will have empty data.

Step 3: Set Up Field Mapping and Payload Preparation

Normalize sheet fields and convert them into a Mailchimp-ready subscriber payload.

  1. Open Map Sheet Fields and add three assignments:
  2. Set Names to ={{ $json.Names }}.
  3. Set Email address to ={{ $json['Email address'] }}.
  4. Set Phone Number to ={{ $json['Phone Number'] }}.
  5. Open Prepare Subscriber Payload and paste the JavaScript exactly as provided:
  6. Set JavaScript Code to const subscribers = [];\n\nfor (const item of $input.all()) {\n subscribers.push({\n json: {\n email_address: item.json[\"Email address\"],\n status: \"subscribed\",\n merge_fields: {\n FNAME: item.json.Names.split(' ')[0] || '',\n LNAME: item.json.Names.split(' ').slice(1).join(' ') || '',\n PHONE: item.json[\"Phone Number\"] || ''\n }\n }\n });\n}\n\nreturn subscribers;.
  7. Ensure Map Sheet Fields connects to Prepare Subscriber Payload.

Step 4: Configure Mailchimp Import and Reporting

Send each transformed subscriber to Mailchimp and then build a summary report.

  1. Open Append to Mailchimp List and set List to YOUR_MAILCHIMP_LIST_ID.
  2. Set Email to ={{ $node['Prepare Subscriber Payload'].json.email_address }}.
  3. Set Status to subscribed.
  4. Add merge fields:
  5. FNAME={{ $json.merge_fields.FNAME }}, LNAME={{ $json.merge_fields.LNAME }}, PHONE={{ $json.merge_fields.PHONE }}.
  6. Credential Required: Connect your Mailchimp credentials.
  7. Open Build Import Report and set importSummary to 📊 **MailChimp Import Summary**\n\n**Import Date:** {{ DateTime.now().toFormat('yyyy-MM-dd HH:mm:ss') }}\n**Total Processed:** {{ $items().length }} contacts\n\n**Email:** {{ $json.email_address }}\n**Status:** {{ $json.status || 'Processed' }}\n\n**Source:** Google Sheets Import.
  8. Connect Prepare Subscriber PayloadAppend to Mailchimp ListBuild Import Report.
⚠️ Common Pitfall: Replace YOUR_MAILCHIMP_LIST_ID with a real list ID or Mailchimp will reject the request.

Step 5: Test and Activate Your Workflow

Validate the data flow before enabling it for ongoing use.

  1. Click Execute Workflow to run Manual Launch Trigger and process your current sheet rows.
  2. Confirm that Append to Mailchimp List creates or updates subscribers in your Mailchimp audience.
  3. Check Build Import Report output to verify the summary text and processed count.
  4. Once verified, toggle the workflow to Active for production use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Google Sheets permissions can be sneaky. If the workflow suddenly can’t read your sheet, check the Google Sheets OAuth connection inside n8n credentials first.
  • Mailchimp rejects subscribers for small reasons (like an invalid email format). Check the execution data on the Mailchimp node to see the exact error message, then fix the matching row in Sheets.
  • Name parsing is never perfect when people enter “Dr. Sam (Marketing)” or add extra spaces. If you care about pristine personalization, tweak the “Prepare Subscriber Payload” code once and reuse it.

Frequently Asked Questions

How long does it take to set up this Sheets Mailchimp import automation?

About 30 minutes if your Google Sheet and Mailchimp audience are ready.

Do I need coding skills to automate Sheets to Mailchimp imports?

No. You’ll connect accounts and paste in your Sheet ID and tab name. The included formatting already handles common name and field cleanup.

Is n8n free to use for this Sheets Mailchimp import workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in Mailchimp costs (your plan) and normal API usage, which is usually negligible for simple subscriber adds.

Where can I host n8n to run this Sheets Mailchimp import automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

Can I customize this Sheets Mailchimp import workflow for extra fields like company or city?

Yes, and it’s a common tweak. Add the columns to your Google Sheet, then update the “Map Sheet Fields” set node and the “Prepare Subscriber Payload” code node to include those fields. In Mailchimp, create matching merge fields in your audience settings, then map them in the “Append to Mailchimp List” node. After that, your import summary will reflect the expanded payload.

Why is my Mailchimp connection failing in this workflow?

Usually it’s an expired or incorrect API key, or the wrong audience/list ID was pasted into the Mailchimp node. It can also happen when Mailchimp blocks a row due to an invalid email address format, which you’ll see in the node’s execution output. Fix the credential or the bad row, then re-run the workflow.

How many contacts can this Sheets Mailchimp import automation handle?

Thousands per run is normal, as long as your n8n plan and Mailchimp account can handle the volume.

Is this Sheets Mailchimp import automation better than using Zapier or Make?

Often, yes, because this workflow is built for bulk imports, data cleanup, and a post-run summary, not just “one row in, one contact out.” n8n also makes it easier to add logic like skipping bad rows, continuing on errors, and shaping payloads without paying extra for every branch. Zapier or Make can be great if your needs are extremely simple or you want a very guided setup, but bulk jobs can get pricey fast. With n8n, you can self-host for unlimited executions, which matters if you import frequently. If you’re torn, Talk to an automation expert and we’ll sanity-check the best option for your list size and workflow.

Once this is running, your list stops being a fragile spreadsheet project and starts behaving like infrastructure. Set it up, review the summary, and get back to the work that actually moves revenue.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal