

How to run win-back campaigns with Power Automate
Automatically tag customers in Mailchimp when they haven't purchased from WooCommerce in 90 days to trigger re-engagement campaigns.
Steps and UI details are based on platform versions at time of writing — check each platform for the latest interface.
Best for
WooCommerce stores with 1,000+ customers who want automated win-back email campaigns without manual list management
Not ideal for
Stores with under 500 customers where manual segmentation takes less than 30 minutes monthly
Sync type
scheduledUse case type
notificationReal-World Example
A 25-person online retail company processes 200 orders monthly but struggles with customer retention. Their marketing manager spent 3 hours weekly identifying inactive customers and manually tagging them in Mailchimp. This automation runs daily, tags 15-30 customers automatically, and increased their win-back campaign open rates from 12% to 28%.
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 Power Automate
Copy the pre-built Power Automate blueprint and paste it straight into Power Automate. 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 | email_address | |
| Order Date | date_created | |
| Order Status | status | |
| Win-back Tag | tags | |
4 optional fields▸ show
| Customer ID | customer_id |
| First Name | FNAME |
| Last Name | LNAME |
| Total Spent | total |
Step-by-Step Setup
My flows > New flow > Scheduled cloud flow
Create new scheduled cloud flow
Navigate to make.powerautomate.com and sign in with your Microsoft account. Click 'My flows' in the left sidebar, then 'New flow' at the top. Select 'Scheduled cloud flow' from the dropdown menu. Name your flow 'WooCommerce Win-back Tagger' and set it to run daily at 8 AM.
- 1Click 'My flows' in the left navigation
- 2Click the 'New flow' button at the top
- 3Select 'Scheduled cloud flow' from the options
- 4Enter 'WooCommerce Win-back Tagger' as the flow name
- 5Set repeat interval to 'Daily' at 8:00 AM
Flow designer > New step > HTTP
Add WooCommerce connection
Click 'New step' below the recurrence trigger. Search for 'HTTP' in the connector search box and select 'HTTP'. Choose the 'HTTP - HTTP' action since WooCommerce uses REST API calls. You'll configure the actual API call in the next step.
- 1Click the 'New step' button below the trigger
- 2Type 'HTTP' in the search box
- 3Select 'HTTP' from the connector list
- 4Choose 'HTTP - HTTP' action
HTTP action configuration
Configure WooCommerce API call
Set Method to 'GET' and URI to your WooCommerce orders endpoint. The URL format is 'https://yourstore.com/wp-json/wc/v3/orders'. In Headers, add 'Authorization' with value 'Basic [base64-encoded-credentials]'. Add another header 'Content-Type' with value 'application/json'. In the URI parameters, add 'per_page=100' to fetch more orders per call.
- 1Select 'GET' from the Method dropdown
- 2Enter your WooCommerce REST API URL in URI field
- 3Click 'Add new parameter' and select 'Headers'
- 4Add Authorization header with your API credentials
- 5Add Content-Type header set to 'application/json'
New step > Data Operations > Parse JSON
Parse WooCommerce response
Add a new step and search for 'Parse JSON'. Select 'Data Operations - Parse JSON' action. Click in the Content field and select 'body' from the dynamic content (HTTP response). You'll need to generate the schema by running a test call first, or manually create it based on WooCommerce order structure.
- 1Click 'New step' below the HTTP action
- 2Search for and select 'Parse JSON'
- 3Click in Content field and select 'body' from dynamic content
- 4Click 'Generate from sample' or paste WooCommerce order JSON schema
New step > Control > Apply to each
Filter customers by last purchase date
Add a new step and select 'Control - Apply to each'. Set the input to the parsed JSON array from WooCommerce orders. Inside the loop, add a 'Control - Condition' action. Configure it to check if the order date is older than 90 days using the expression 'sub(utcnow(),90)' compared to the order date field.
- 1Add 'Apply to each' action
- 2Select the orders array from Parse JSON output
- 3Inside the loop, add a 'Condition' control
- 4Set left side to order date from current item
- 5Set condition to 'is less than'
- 6Set right side to expression: sub(utcnow(),90)
Condition > Yes branch > New step > Mailchimp
Connect to Mailchimp
In the 'Yes' branch of your condition, add a new action and search for 'Mailchimp'. Select the Mailchimp connector and choose 'Add or update member' action. Click 'Sign in' when prompted and authenticate with your Mailchimp account. Grant Power Automate permission to access your Mailchimp lists and audience data.
- 1Click 'Add an action' in the Yes branch
- 2Search for 'Mailchimp' and select the connector
- 3Choose 'Add or update member' action
- 4Click 'Sign in' and authenticate with Mailchimp
- 5Grant requested permissions
Mailchimp action configuration
Configure Mailchimp member update
Select your target audience from the List dropdown. Map the customer email from WooCommerce order data to the Email field. Set Status to 'subscribed' to ensure the contact remains active. In the Tags field, click 'Add new parameter' and add 'win-back' as a tag value. This tag will trigger your email campaign in Mailchimp.
- 1Select your Mailchimp audience from List dropdown
- 2Map customer email from WooCommerce data to Email field
- 3Set Status to 'subscribed'
- 4Click 'Show advanced options'
- 5Add 'win-back' to the Tags field
HTTP action > Settings > Configure run after
Add error handling
Click the three dots on your HTTP action and select 'Settings'. Enable 'Configure run after' and check both 'is successful' and 'has failed' boxes. Add a parallel branch for failure handling with a 'Compose' action to log errors. This prevents the entire flow from stopping when individual API calls fail.
- 1Click three dots menu on HTTP action
- 2Select 'Settings' then 'Configure run after'
- 3Check 'is successful' and 'has failed' boxes
- 4Add a parallel branch after HTTP action
- 5Add 'Compose' action in failure branch to log errors
Flow designer > Save > Test
Test and activate flow
Click 'Save' at the top right of the flow designer. Then click 'Test' and select 'I'll perform the trigger action'. Since this is a scheduled flow, click 'Run flow' to test immediately. Monitor the run history to verify customers are being tagged correctly in Mailchimp. Check your Mailchimp audience for new win-back tags.
- 1Click 'Save' button at top right
- 2Click 'Test' next to the Save button
- 3Select 'I'll perform the trigger action'
- 4Click 'Run flow' to test immediately
- 5Monitor the run in the flow history
Use this expression in your condition to handle different WooCommerce date formats and ensure accurate 90-day calculations regardless of timezone.
JavaScript — Code Step// In your condition, use this expression for reliable date comparison▸ Show code
// In your condition, use this expression for reliable date comparison formatDateTime( addDays(utcnow(), -90),
... expand to see full code
// In your condition, use this expression for reliable date comparison
formatDateTime(
addDays(utcnow(), -90),
'yyyy-MM-ddTHH:mm:ss'
)
// For parsing WooCommerce dates that might include timezone info
formatDateTime(
items('Apply_to_each')?['date_created'],
'yyyy-MM-dd'
)
// Check if customer already has win-back tag to prevent duplicates
if(
contains(body('Get_member_info')?['tags'], 'win-back'),
false,
true
)Scaling Beyond 1000+ customers per day+ Records
If your volume exceeds 1000+ customers per day records, apply these adjustments.
Batch processing with delays
Process customers in groups of 50 with 30-second delays between batches. This prevents API rate limiting on both WooCommerce and Mailchimp sides.
Implement checkpoint logic
Store the last processed order ID in a SharePoint list or variable. Resume from that point if the flow fails, preventing duplicate processing.
Split by customer segments
Create separate flows for different customer tiers or regions. This allows parallel processing and reduces individual flow execution time.
Use premium connectors
Upgrade to Power Automate per-flow licensing for higher API limits and faster execution times when processing large customer databases.
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 Power Automate for this if your business already uses Microsoft 365 and you need reliable scheduled processing. The native Mailchimp connector simplifies authentication and the scheduled trigger runs consistently without manual intervention. Power Automate handles JSON parsing and date calculations well through built-in expressions. Skip this platform if you need real-time processing or complex data transformations - Zapier's filters work better for immediate tagging when orders complete.
This costs roughly $15/month on a Power Automate per-user plan. At 2,000 customers checked daily, you'll use about 60,000 actions monthly (customer lookup + Mailchimp update). The Mailchimp API calls don't count toward Power Automate limits but watch your Mailchimp plan - 1,000 tags daily can push you into higher pricing tiers quickly.
Zapier handles WooCommerce webhooks better and triggers instantly when purchase patterns change. Make offers more flexible date arithmetic and better error handling for failed API calls. n8n processes larger batches faster with its bulk operations. Pipedream gives you custom retry logic when Mailchimp rate limits kick in. Power Automate wins on enterprise integration - it connects seamlessly with SharePoint for customer data storage and Teams for failure notifications.
You'll hit Mailchimp's API rate limits at 10 requests per second if you process customers too quickly. WooCommerce pagination breaks when you fetch more than 100 orders at once. Power Automate's 90-day date calculations get messy with timezone differences - customers in different regions get tagged inconsistently. The biggest gotcha: Mailchimp creates new subscribers instead of just adding tags if the email doesn't exist, inflating your contact count unexpectedly.
Ideas for what to build next
- →Create segmented win-back campaigns — Use the win-back tags to trigger different email sequences based on customer lifetime value or product categories purchased.
- →Add purchase behavior tracking — Extend the flow to remove win-back tags automatically when customers make new purchases, preventing irrelevant emails.
- →Implement multi-tier win-back timing — Create separate tags for 60-day, 90-day, and 120-day inactive customers to run increasingly aggressive campaigns.
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