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

How to Send Review Request Emails from WooCommerce to Mailchimp with N8n

Automatically adds WooCommerce customers to a Mailchimp review-request segment 14 days after order delivery.

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

Best for

E-commerce stores processing 50+ orders monthly who want precise control over review request timing

Not ideal for

Small stores under 20 orders monthly or teams without technical resources to manage N8n hosting

Sync type

scheduled

Use case type

notification

Real-World Example

💡

A mid-size outdoor gear retailer processes 300 orders monthly and wanted to send review requests exactly 2 weeks after delivery when customers have had time to use products. Before automation, their marketing team manually exported WooCommerce data weekly and uploaded it to Mailchimp, missing optimal timing by 3-5 days and reducing review response rates by 40%.

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 REST API enabled and consumer key/secret generated
Mailchimp account with API key and at least one audience created
Review request email campaign set up in Mailchimp targeting your segment tag
N8n instance running (cloud or self-hosted)
Orders in WooCommerce with 'completed' or 'delivered' status to test with

Field Mapping

Map these fields between your apps.

FieldAPI Name
Required
Customer Emailbilling.email
Order IDid
Order Completion Datedate_completed
3 optional fields▸ show
Product Namesline_items[].name
Customer First Namebilling.first_name
Order Totaltotal

Step-by-Step Setup

1

Workflows > New workflow

Create new workflow in N8n

Start with a manual trigger to build the workflow, then switch to a schedule trigger later. This lets you test each step before automating the timing.

  1. 1Click 'New workflow' in the N8n dashboard
  2. 2Click the '+' button to add your first node
  3. 3Select 'Manual Trigger' from the Core nodes section
  4. 4Click 'Execute Node' to activate the trigger
What you should see: You should see a green checkmark on the Manual Trigger node with execution data.
2

Node > WooCommerce > Order > Get All

Add WooCommerce node to fetch orders

Connect to WooCommerce to pull orders that were delivered exactly 14 days ago. You'll filter by order status and delivery date.

  1. 1Click the '+' button after the trigger node
  2. 2Search for 'WooCommerce' and select it
  3. 3Choose 'Order' as the resource and 'Get All' as the operation
  4. 4Enter your WooCommerce store URL and REST API credentials
  5. 5Set Status filter to 'completed' or 'delivered'
What you should see: The node should show a list of recent completed orders with customer data.
Common mistake — Don't use 'processing' status - that triggers before delivery and sends review requests too early.
3

Node > Core > If

Filter orders by delivery date

Add a filter to only process orders delivered exactly 14 days ago. This prevents duplicate review requests.

  1. 1Add an 'If' node after WooCommerce
  2. 2Set condition to 'Date & Time'
  3. 3Configure: '{{$json.date_completed}}' equals '14 days ago'
  4. 4Use the expression: '{{DateTime.now().minus({days: 14}).toISODate()}}'
  5. 5Connect both 'true' and 'false' outputs for testing
What you should see: Only orders from exactly 14 days ago should pass through the 'true' path.
Common mistake — WooCommerce stores completion dates in UTC - adjust for your timezone or reviews will send at odd hours.
Mailchimp
MA
trigger
filter
Condition
matches criteria?
yes — passes through
no — skipped
WooCommerce
WO
notified
4

Node > Core > Set

Extract customer email and order data

Pull the customer email and order details you'll need for Mailchimp. This prepares the data for segment assignment.

  1. 1Add a 'Set' node after the 'true' output of the If node
  2. 2Click 'Add Value' and set Name to 'email'
  3. 3Set Value to '{{$json.billing.email}}'
  4. 4Add another value: Name 'order_id', Value '{{$json.id}}'
  5. 5Add 'product_names' with Value '{{$json.line_items.map(item => item.name).join(", ")}}}'
What you should see: The Set node should output clean data with email, order_id, and product_names fields.
5

Node > Mailchimp > Credentials

Connect to Mailchimp

Set up Mailchimp credentials to access your audience and segments. You'll need API key permissions for audience management.

  1. 1Add a Mailchimp node after the Set node
  2. 2Click 'Create New' under Credentials
  3. 3Enter your Mailchimp API key from Account > Extras > API keys
  4. 4Test the connection by clicking 'Test'
  5. 5Save the credential with a descriptive name
What you should see: You should see 'Connection tested successfully' message with your account name.
Common mistake — Generate a new API key instead of using an existing one - easier to track and revoke if needed.
6

Node > Mailchimp > Member > Get

Check if contact exists in Mailchimp

Before adding to a segment, verify the customer email exists in your Mailchimp audience. This prevents errors when tagging.

  1. 1Set Resource to 'Member' and Operation to 'Get'
  2. 2Select your main audience from the List dropdown
  3. 3Set Email to '{{$json.email}}'
  4. 4Enable 'Continue on Fail' in node settings
  5. 5Click 'Execute Node' to test
What you should see: If the contact exists, you'll see their subscriber data. If not, you'll see an error (which is fine).
7

Node > Core > If > Mailchimp > Member > Create

Create contact if they don't exist

Add a branch to create new Mailchimp contacts for customers who aren't in your audience yet. This ensures everyone gets review requests.

  1. 1Add an 'If' node to check if the previous step succeeded
  2. 2Set condition: '{{$node["Mailchimp"].json.id}}' 'is not empty'
  3. 3On the 'false' branch, add another Mailchimp node
  4. 4Set Operation to 'Create' and Resource to 'Member'
  5. 5Map email and set Status to 'subscribed'
What you should see: New contacts should be created in Mailchimp with 'subscribed' status.
Common mistake — Don't set status to 'pending' - it requires double opt-in and delays the review request timing.
8

Node > Mailchimp > Member Tag > Create

Add contact to review-request segment

Tag the contact with your review-request segment so they receive the follow-up email campaign. Create this segment in Mailchimp first.

  1. 1Add a Mailchimp node after both branches merge
  2. 2Set Resource to 'Member Tag' and Operation to 'Create'
  3. 3Select your audience and enter '{{$json.email}}' for Email
  4. 4Set Tags to 'review-request-14d'
  5. 5Enable 'Is Active' checkbox
What you should see: The contact should now have the review-request tag visible in their Mailchimp profile.
Common mistake — Create the tag in Mailchimp first or N8n will create it automatically but won't trigger your email campaign.
9

Node Settings > Error Handling

Add error handling

Set up error handling to log failures without breaking the entire workflow. This prevents one bad order from stopping all review requests.

  1. 1Click on the WooCommerce node settings (gear icon)
  2. 2Go to 'Error Handling' tab
  3. 3Select 'Continue on Fail'
  4. 4Repeat for all Mailchimp nodes
  5. 5Add a 'No Operation' node to catch errors
What you should see: Failed orders will skip to the error handler instead of breaking the workflow.
10

Node > Core > Cron

Switch to schedule trigger

Replace the manual trigger with a daily schedule to automatically check for orders needing review requests. Run this once per day.

  1. 1Delete the Manual Trigger node
  2. 2Add a 'Cron' node at the start
  3. 3Set Mode to 'Every Day'
  4. 4Set Hour to 10 and Minute to 0
  5. 5Activate the workflow with the toggle switch
What you should see: The workflow will now run automatically every day at 10 AM to process review requests.
Common mistake — Don't run more than once daily - you'll send duplicate review requests to the same customers.
n8n
+
click +
search apps
Mailchimp
MA
Mailchimp
Switch to schedule trigger
Mailchimp
MA
module added
11

Workflow > Execute Workflow

Test with real data

Run a final test using actual completed orders to verify the entire flow works correctly. Check that contacts appear in your Mailchimp segment.

  1. 1Click 'Execute Workflow' to run the full automation
  2. 2Check your WooCommerce orders from 14 days ago
  3. 3Verify those customer emails now have the review-request tag in Mailchimp
  4. 4Confirm your Mailchimp campaign will trigger on this tag
What you should see: Customer emails from 14-day-old orders should appear tagged in your Mailchimp audience.
Common mistake — Test with orders you don't mind sending actual review requests to - or temporarily disable your Mailchimp campaign.

Drop this into an n8n Code node.

Copy this template{{DateTime.fromISO($json.date_completed).plus({days: 14}).toISODate() === DateTime.now().toISODate()}}
▸ Show code
{{DateTime.fromISO($json.date_completed).plus({days: 14}).toISODate() === DateTime.now().toISODate()}}

... expand to see full code

{{DateTime.fromISO($json.date_completed).plus({days: 14}).toISODate() === DateTime.now().toISODate()}}
n8n
▶ Run once
executed
Mailchimp
WooCommerce
WooCommerce
🔔 notification
received

Scaling Beyond 300+ orders/day+ Records

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

1

Batch process orders

Query WooCommerce in smaller batches of 50 orders at a time using pagination. Add 2-second delays between batches to avoid rate limits.

2

Use webhooks instead of polling

Switch from daily cron to WooCommerce order completion webhooks for real-time processing. Store completion dates in a database to track the 14-day delay.

3

Implement duplicate prevention

Add a database node to track processed order IDs. Check this list before adding Mailchimp tags to prevent sending multiple review requests.

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 want complete control over the review timing logic and don't mind managing your own server. N8n's code nodes let you handle complex date calculations and WooCommerce's quirky order statuses better than no-code platforms. You can also store tracking data locally to prevent duplicate requests. Skip N8n and use Zapier instead if you're processing under 100 orders per month and want zero maintenance.

Cost

This workflow uses about 4-6 executions per order: WooCommerce fetch, date filter, Mailchimp contact check, tag creation, plus error handling. At 200 orders/month needing review requests, that's roughly 1,200 executions monthly. N8n's starter plan at $20/month covers 5,000 executions easily. Zapier would cost $30/month for the same volume, and Make would be $10/month but caps at 1,000 operations.

Tradeoffs

Zapier handles WooCommerce webhooks better - their trigger fires immediately when order status changes instead of polling daily. Make has cleaner Mailchimp integration with built-in duplicate contact handling that saves you from building error branches. But N8n wins because you can customize the 14-day calculation for business days only, exclude weekends, or adjust for holidays - logic that's impossible in no-code platforms.

You'll discover that WooCommerce's 'completed' status doesn't always mean delivered - some stores mark orders complete before shipping. Check if your store uses order tracking plugins that provide actual delivery dates. Mailchimp's API is picky about email formats and will reject anything with extra spaces or invalid domains, so add validation before the tag step. The daily cron trigger will miss orders if your server goes down, so monitor execution history weekly.

Ideas for what to build next

  • Add review response trackingConnect Google Sheets or a database to log which customers actually left reviews, then create a follow-up campaign for non-responders after 7 days.
  • Segment by purchase valueCreate different review request campaigns for high-value vs standard customers, offering incentives like discount codes for customers who spent over $200.
  • Integrate with review platformsConnect to Trustpilot, Google Reviews, or product review apps to automatically invite customers to your preferred review platform instead of generic email requests.

Related guides

Was this guide helpful?
Mailchimp + WooCommerce overviewn8n profile →