Intermediate~20 min setupMarketing & E-commerceVerified April 2026
Mailchimp logo
WooCommerce logo

How to Add WooCommerce Customers to Mailchimp Audience with N8n

Auto-tag new customers in Mailchimp with product categories and order value tiers when WooCommerce orders complete.

Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.

Best for

Stores processing 50+ orders/day who need custom tagging logic and data control

Not ideal for

Small stores under 20 orders/month or teams that avoid coding

Sync type

real-time

Use case type

sync

Real-World Example

💡

A 25-person outdoor gear e-commerce company uses this to segment customers by product categories (hiking, camping, climbing) and order values above $150. Before automation, their marketing team manually exported WooCommerce orders weekly and imported them to Mailchimp, missing time-sensitive post-purchase email opportunities for 3-7 days. Now customers get targeted gear recommendations within minutes of purchase.

What Will This Cost?

Drag the slider to your expected monthly volume.

/mo
505005K50K

Each platform counts differently — Zapier: 1 task per trigger. Make: 1 operation per module per record. n8n: 1 execution per run.

Prices shown for annual billing. Based on published pricing as of April 2026.

Estimated ROI

1000

min saved/mo

$583

labor value/mo

Free

no platform cost

Based on ~2 min manual effort per operation at $35/hr fully loaded labor cost.

Implementation

Skip the setup

Import this workflow directly into n8n

Copy the pre-built n8n blueprint and paste it straight into n8n. All modules, filters, and field mappings are already configured — you just need to connect your accounts.

Before You Start

Make sure you have everything ready.

WooCommerce store with admin access to add webhooks
Mailchimp account with API key generated
N8n instance running (cloud or self-hosted)
SSL certificate on your N8n instance for webhook security
Test products and orders in WooCommerce for validation

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Customer Emailbilling.email
First Namebilling.first_name
Last Namebilling.last_name
Order Totaltotal
Order Statusstatus
Line Itemsline_items
1 optional field▸ show
Customer IDcustomer_id

Step-by-Step Setup

1

Workflows > + New Workflow

Create New N8n Workflow

Start a blank workflow in N8n to handle WooCommerce webhook data. This will be triggered every time an order status changes to 'completed'.

  1. 1Click 'New Workflow' from the N8n dashboard
  2. 2Name it 'WooCommerce to Mailchimp Customer Sync'
  3. 3Click 'Save' to create the workflow
What you should see: You should see a blank canvas with a single 'Start' node in the center.
2

Trigger Nodes > Webhook

Add Webhook Trigger Node

Configure the webhook trigger to receive WooCommerce order completion events. This creates the endpoint URL that WooCommerce will ping.

  1. 1Click the + button next to the Start node
  2. 2Search for 'Webhook' and select it
  3. 3Set HTTP Method to 'POST'
  4. 4Copy the Production URL shown in the node
What you should see: The webhook node displays a unique URL ending in /webhook/[random-string].
Common mistake — Don't use the Test URL in production — it expires after 2 hours
n8n
+
click +
search apps
Mailchimp
MA
Mailchimp
Add Webhook Trigger Node
Mailchimp
MA
module added
3

WooCommerce > Settings > Advanced > Webhooks

Configure WooCommerce Webhook

Set up WooCommerce to send order data to your N8n webhook when orders are marked complete.

  1. 1Go to WooCommerce > Settings > Advanced > Webhooks
  2. 2Click 'Add webhook'
  3. 3Set Topic to 'Order updated'
  4. 4Paste your N8n webhook URL in Delivery URL
  5. 5Set Status to 'Active' and save
What you should see: WooCommerce shows a green 'Active' status next to your new webhook entry.
Common mistake — Test with a real order — WooCommerce sample data doesn't trigger webhooks
4

Logic > IF

Add Order Status Filter

Filter webhooks to only process completed orders. WooCommerce sends updates for every status change, but you only want 'completed' orders.

  1. 1Add an IF node after the webhook
  2. 2Set condition to 'String equals'
  3. 3Set Value 1 to '{{ $json.status }}'
  4. 4Set Value 2 to 'completed'
What you should see: The IF node shows two output paths: 'true' and 'false'.
Common mistake — Use 'completed' not 'processing' — processing orders haven't been paid yet
Mailchimp
MA
trigger
filter
Status
matches criteria?
yes — passes through
no — skipped
WooCommerce
WO
notified
5

Data Transformation > Set

Extract Customer Data

Pull customer email, name, and order details from the webhook payload. This data will be sent to Mailchimp for audience segmentation.

  1. 1Add a Set node after the IF 'true' path
  2. 2Add field 'email' with value '{{ $json.billing.email }}'
  3. 3Add field 'firstName' with value '{{ $json.billing.first_name }}'
  4. 4Add field 'lastName' with value '{{ $json.billing.last_name }}'
  5. 5Add field 'orderTotal' with value '{{ $json.total }}'
What you should see: The Set node shows 5 mapped fields with the correct JSON paths.
6

Data Transformation > Set

Calculate Order Value Tier

Categorize customers by order value to create targeted segments in Mailchimp. This enables different email campaigns for high-value vs low-value customers.

  1. 1Add another Set node after the first Set node
  2. 2Add field 'valueTier' with expression '{{ $json.orderTotal > 100 ? "high-value" : "standard" }}'
  3. 3Test the expression with sample data
  4. 4Verify the tier calculation works correctly
What you should see: The valueTier field shows either 'high-value' or 'standard' based on the order total.
Common mistake — Use number comparison, not string — wrap orderTotal in parseFloat() if needed
7

Code > Function

Extract Product Categories

Get product category names from the order line items. These become tags in Mailchimp for product-based email segmentation.

  1. 1Add a Function node after the Set node
  2. 2Paste code to loop through line_items array
  3. 3Extract category names from each product
  4. 4Return comma-separated category string
What you should see: The Function node outputs a categories field with values like 'electronics,accessories'.
Common mistake — WooCommerce category data is nested deep — check the webhook payload structure first
8

Marketing > Mailchimp

Connect to Mailchimp

Add your Mailchimp credentials to N8n. You'll need an API key from your Mailchimp account settings.

  1. 1Add a Mailchimp node to the workflow
  2. 2Click 'Create New' next to Credentials
  3. 3Enter your Mailchimp API key
  4. 4Click 'Test' to verify connection
  5. 5Select 'Add/Update Contact' operation
What you should see: Green checkmark appears next to credentials, confirming successful connection.
Common mistake — Use a Mailchimp API key, not your login password — generate one from Account > Extras > API Keys
9

Mailchimp Node > Parameters

Configure Audience Selection

Choose which Mailchimp audience receives the new customers. Map the customer data to the correct fields in Mailchimp.

  1. 1Select your target audience from the dropdown
  2. 2Set Email Address to '{{ $json.email }}'
  3. 3Set Status to 'subscribed'
  4. 4Enable 'Update Existing' to handle repeat customers
  5. 5Map First Name and Last Name fields
What you should see: The Mailchimp node shows your audience name and all required fields mapped.
Common mistake — Don't set status to 'pending' — customers who bought already opted in
10

Mailchimp Node > Tags

Add Customer Tags

Apply tags based on order value tier and product categories. This allows targeted email campaigns in Mailchimp.

  1. 1Scroll to Tags section in the Mailchimp node
  2. 2Add tag for value tier: '{{ $json.valueTier }}'
  3. 3Add tag for categories: '{{ $json.categories }}'
  4. 4Enable 'Replace Tags' to avoid tag accumulation
What you should see: Tags section shows two tag mappings using the data from previous nodes.
Common mistake — Split category strings into individual tags — Mailchimp treats comma-separated values as one tag
11

Workflow > Execute

Test the Complete Workflow

Run an end-to-end test with real order data to verify the integration works correctly before going live.

  1. 1Click 'Execute Workflow' button
  2. 2Place a test order in WooCommerce
  3. 3Mark the order as 'completed'
  4. 4Check each node's output data
  5. 5Verify the customer appears in Mailchimp with correct tags
What you should see: All nodes show green checkmarks and the customer appears in your Mailchimp audience with proper tags.
Common mistake — Test with a real email address you control — you'll receive Mailchimp confirmation emails
n8n
▶ Run once
executed
Mailchimp
WooCommerce
WooCommerce
🔔 notification
received
12

Workflow Settings > Active

Activate Production Mode

Enable the workflow to run automatically for all future completed orders. Set up error handling for failed API calls.

  1. 1Toggle the workflow to 'Active' status
  2. 2Add error handling to the Mailchimp node
  3. 3Set retry count to 3 attempts
  4. 4Configure failure notifications if needed
  5. 5Save all changes
What you should see: Workflow status shows 'Active' with a green indicator in the top bar.
Common mistake — Monitor executions for the first few days — Mailchimp rate limits can cause failures at high volumes

Drop this into an n8n Code node.

JavaScript — Code Node// Extract unique categories from WooCommerce line items
▸ Show code
// Extract unique categories from WooCommerce line items
const items = $json.line_items || [];
const categories = new Set();

... expand to see full code

// Extract unique categories from WooCommerce line items
const items = $json.line_items || [];
const categories = new Set();

for (const item of items) {
  if (item.meta_data) {
    const categoryMeta = item.meta_data.find(m => m.key === '_product_cat');
    if (categoryMeta) {
      categories.add(categoryMeta.value);
    }
  }
}

return { categories: Array.from(categories).join(',') };

Scaling Beyond 500+ orders/day+ Records

If your volume exceeds 500+ orders/day records, apply these adjustments.

1

Implement Batch Processing

Group orders into batches of 50 and use Mailchimp's batch operations API. This reduces API calls from 500+ per day to 10-20 batch requests and avoids rate limiting.

2

Add Redis Caching

Cache product category lookups in Redis to avoid repeated WooCommerce API calls. Categories rarely change, so a 24-hour cache TTL prevents redundant API requests for popular products.

3

Use Webhook Queuing

Add a queue system between WooCommerce webhooks and N8n processing. High order volumes can overwhelm N8n's webhook processing and cause timeouts or lost orders.

Going live

Production Checklist

Before you turn this on for real, confirm each item.

Troubleshooting

Common errors and how to fix them.

Frequently Asked Questions

Common questions about this workflow.

Analysis

VerdictWhy n8n for this workflow

Use N8n for this if you process 50+ orders per day and want granular control over customer tagging logic. The Function node lets you write custom category extraction code that handles WooCommerce's messy product data structure. N8n also runs on your own infrastructure, so customer data never hits third-party servers. Pick Zapier instead if your team doesn't code — this workflow needs JavaScript for proper category parsing.

Cost

This workflow uses 3 executions per order (webhook + filter + Mailchimp). At 200 orders/month, that's 600 executions total. N8n cloud costs $20/month for 5,000 executions, so you've got plenty of headroom. Make would cost $9/month for the same volume, but Zapier jumps to $49/month at 750+ tasks. N8n wins on price once you hit moderate volume.

Tradeoffs

Make handles WooCommerce webhooks more reliably — it auto-retries failed webhook deliveries and has better error logging. Zapier's Mailchimp integration includes pre-built order value filters that you'd code manually in N8n. But N8n gives you the Function node for complex category logic that neither platform matches. If your tagging rules are simple, Make is easier to maintain.

You'll hit WooCommerce's webhook reliability issues within the first week. Orders sometimes send duplicate webhooks or skip the webhook entirely during payment processor delays. N8n doesn't deduplicate automatically like Make does, so add order ID tracking to prevent double-processing. Mailchimp's API also paginates audience queries at 1,000 contacts — if you're checking for existing customers in large audiences, you need the HTTP Request node with manual pagination loops.

Ideas for what to build next

  • Add Purchase Behavior ScoringCreate a follow-up workflow that scores customers based on purchase frequency and recency. Update Mailchimp tags monthly with customer lifecycle stage.
  • Sync Order RefundsBuild a second workflow that removes high-value tags when orders are refunded. This prevents sending VIP emails to customers who returned expensive items.
  • Track Email Campaign PerformanceConnect Mailchimp webhook data back to WooCommerce custom fields. Track which email campaigns drive repeat purchases for ROI measurement.

Related guides

Was this guide helpful?
Mailchimp + WooCommerce overviewn8n profile →