

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
scheduledUse case type
notificationReal-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.
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
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.
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Customer Email | billing.email | |
| Order ID | id | |
| Order Completion Date | date_completed | |
3 optional fields▸ show
| Product Names | line_items[].name |
| Customer First Name | billing.first_name |
| Order Total | total |
Step-by-Step Setup
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.
- 1Click 'New workflow' in the N8n dashboard
- 2Click the '+' button to add your first node
- 3Select 'Manual Trigger' from the Core nodes section
- 4Click 'Execute Node' to activate the trigger
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.
- 1Click the '+' button after the trigger node
- 2Search for 'WooCommerce' and select it
- 3Choose 'Order' as the resource and 'Get All' as the operation
- 4Enter your WooCommerce store URL and REST API credentials
- 5Set Status filter to 'completed' or 'delivered'
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.
- 1Add an 'If' node after WooCommerce
- 2Set condition to 'Date & Time'
- 3Configure: '{{$json.date_completed}}' equals '14 days ago'
- 4Use the expression: '{{DateTime.now().minus({days: 14}).toISODate()}}'
- 5Connect both 'true' and 'false' outputs for testing
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.
- 1Add a 'Set' node after the 'true' output of the If node
- 2Click 'Add Value' and set Name to 'email'
- 3Set Value to '{{$json.billing.email}}'
- 4Add another value: Name 'order_id', Value '{{$json.id}}'
- 5Add 'product_names' with Value '{{$json.line_items.map(item => item.name).join(", ")}}}'
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.
- 1Add a Mailchimp node after the Set node
- 2Click 'Create New' under Credentials
- 3Enter your Mailchimp API key from Account > Extras > API keys
- 4Test the connection by clicking 'Test'
- 5Save the credential with a descriptive name
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.
- 1Set Resource to 'Member' and Operation to 'Get'
- 2Select your main audience from the List dropdown
- 3Set Email to '{{$json.email}}'
- 4Enable 'Continue on Fail' in node settings
- 5Click 'Execute Node' to test
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.
- 1Add an 'If' node to check if the previous step succeeded
- 2Set condition: '{{$node["Mailchimp"].json.id}}' 'is not empty'
- 3On the 'false' branch, add another Mailchimp node
- 4Set Operation to 'Create' and Resource to 'Member'
- 5Map email and set Status to 'subscribed'
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.
- 1Add a Mailchimp node after both branches merge
- 2Set Resource to 'Member Tag' and Operation to 'Create'
- 3Select your audience and enter '{{$json.email}}' for Email
- 4Set Tags to 'review-request-14d'
- 5Enable 'Is Active' checkbox
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.
- 1Click on the WooCommerce node settings (gear icon)
- 2Go to 'Error Handling' tab
- 3Select 'Continue on Fail'
- 4Repeat for all Mailchimp nodes
- 5Add a 'No Operation' node to catch errors
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.
- 1Delete the Manual Trigger node
- 2Add a 'Cron' node at the start
- 3Set Mode to 'Every Day'
- 4Set Hour to 10 and Minute to 0
- 5Activate the workflow with the toggle switch
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.
- 1Click 'Execute Workflow' to run the full automation
- 2Check your WooCommerce orders from 14 days ago
- 3Verify those customer emails now have the review-request tag in Mailchimp
- 4Confirm your Mailchimp campaign will trigger on this tag
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()}}Scaling Beyond 300+ orders/day+ Records
If your volume exceeds 300+ orders/day records, apply these adjustments.
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.
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.
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
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.
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.
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 tracking — Connect 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 value — Create different review request campaigns for high-value vs standard customers, offering incentives like discount codes for customers who spent over $200.
- →Integrate with review platforms — Connect to Trustpilot, Google Reviews, or product review apps to automatically invite customers to your preferred review platform instead of generic email requests.
Related guides
How to Share Notion Meeting Notes to Slack with Pipedream
~15 min setup
How to Share Notion Meeting Notes to Slack with Power Automate
~15 min setup
How to Share Notion Meeting Notes to Slack with n8n
~20 min setup
How to Send Notion Meeting Notes to Slack with Zapier
~8 min setup
How to Share Notion Meeting Notes to Slack with Make
~12 min setup
How to Create Notion Tasks from Slack with Pipedream
~15 min setup