How to Connect WooCommerce to Mailchimp Without Zapier
You can connect WooCommerce to Mailchimp without Zapier using Krom Automation, a native WordPress plugin. The free version handles basic subscriber sync. The Pro version adds the Mailchimp action that subscribes contacts, applies tags, and updates audience fields directly from any WooCommerce trigger, at no per-task cost.
The official Mailchimp plugin for WooCommerce handles audience sync reasonably well, but it gives you a fixed pipeline. You cannot add conditional logic, delay the subscription, branch based on order value, or chain Mailchimp into a wider workflow. Krom Automation treats Mailchimp as one action inside a workflow you control, which means you can subscribe a customer, send an internal Slack alert, and update a Google Sheet in the same automation without touching Zapier.
This guide follows the integration post structure: what syncs, how to set it up step by step, what does not transfer, the three real failure modes, and a verdict on when this approach makes sense versus the official plugin.
Browse the full Krom Automation feature list to see what else you can connect alongside Mailchimp.
What Gets Synced: WooCommerce to Mailchimp
The table below shows every data point the Krom Automation Mailchimp integration can pass from WooCommerce to Mailchimp, and exactly where it lands in your audience. Fields not listed here do not transfer automatically and require a custom HTTP Request action or a separate workflow step.
| WooCommerce Field | Where It Lands in Mailchimp |
|---|---|
| Customer email address | Audience contact email (primary identifier) |
| First name | FNAME merge field |
| Last name | LNAME merge field |
| Order total | Custom merge field (mapped manually in workflow) |
| Order status | Tag applied to contact (e.g., “order-completed”) |
| Product name(s) | Tag or custom merge field (one per workflow action) |
| Billing country | Custom merge field or audience segment data |
| Opt-in status at checkout | Subscribed vs. non-subscribed contact status |
| Workflow-assigned tag | Tag on Mailchimp contact, set per workflow branch |
Order line items beyond the first product require a loop or separate action per product. There is no native array-to-tag bulk operation. If your store sells bundles with 8 to 12 line items and you need every product tagged individually, plan for that complexity before you build the workflow.
Requirements Before You Start
- WordPress 6.2 or higher
- PHP 7.4 or higher
- WooCommerce installed and active
- Krom Automation free plugin active (handles the WooCommerce triggers)
- Krom Automation Pro active (required for the Mailchimp subscribe action)
- A Mailchimp account with at least one audience created
- A Mailchimp API key with read/write access
The free Krom Automation plugin gives you the Order Created and Order Completed WooCommerce triggers at no cost. The Mailchimp action itself is a Pro integration.
See the full free vs. Pro comparison if you want to check which other actions require the Pro licence before committing.
Step-by-Step Setup
Step 1: Install and Activate Krom Automation
Go to Plugins > Add New Plugin in your WordPress admin. Search for “Krom Automation” and install the plugin listed by wpRigel. Activate it.
A new Krom Automation menu item will appear in your left admin sidebar. If you have the Pro licence, upload the Pro zip at Plugins > Add New Plugin > Upload Plugin and activate it alongside the free plugin. The Pro installation guide covers licence key activation and what to do if the Pro features do not appear after activation.
Step 2: Connect Your Mailchimp Account
Go to Krom Automation > Settings > Integrations. Find the Mailchimp card and click Connect. You will be prompted for your Mailchimp API key.
Paste it into the API Key field and click Save. Krom Automation will verify the key and display your account name if the connection succeeds. If you see a “401 Unauthorized” error, the key does not have the required audience read/write scope, generate a new one from your Mailchimp account under Account > Extras > API Keys.
Step 3: Create a New Workflow
Go to Krom Automation > Workflows > Add New. This opens the visual workflow builder canvas. Click the Add Trigger node at the top of the canvas.
From the trigger panel on the right, select the WooCommerce category, then choose Order Completed as your trigger. If you want to subscribe customers the moment they place an order rather than after payment clears, choose Order Created instead. The difference matters for refund handling, which we cover in the limitations section below.
Step 4: Add the Mailchimp Subscribe Action
Click the plus icon below your trigger node to add an action. Select the Mailchimp category from the action panel.
Choose Subscribe Contact. The action card will show the following fields, all of which are required unless marked optional:
- Audience: select your Mailchimp audience from the dropdown (populated automatically from your connected account)
- Email Address: use the merge tag
{{order.billing_email}} - First Name: use
{{order.billing_first_name}} - Last Name: use
{{order.billing_last_name}} - Status: set to Subscribed if opt-in was captured, or Pending to trigger Mailchimp’s double opt-in email
- Tags (optional): enter a static tag such as “woo-customer” or use a merge tag to apply a dynamic value
The merge tags documentation lists every available WooCommerce order variable you can inject into action fields, including order total, product names, and billing address components.
Step 5: Add Conditional Branching (Recommended)
If you only want to subscribe customers who opted in at checkout, add a Condition node between the trigger and the Mailchimp action. Click the branch icon on the trigger node. Set the condition to: Order > Customer opt-in > equals > true.
Connect the Yes path to the Mailchimp subscribe action. Leave the No path empty or route it to a different action.
This single step prevents you from adding non-consenting contacts to your audience, which matters for GDPR compliance and Mailchimp’s own terms of service. The conditions and branching documentation covers every available operator and how to stack multiple conditions in a single node.
Step 6: Test with the Workflow Simulator
Before setting the workflow live, click Simulate in the top toolbar. The simulator runs every node against a sample payload with zero side effects: no real Mailchimp contact is created, no email is sent.
You can verify that your merge tags resolve correctly and that the conditional branch routes as expected. Fix any errors the simulator flags, then click Activate to set the workflow live.
A workflow that looks correct in the builder and fails silently on real orders is the most expensive kind of mistake. Run the simulator before you activate, not after you notice missing subscribers.
What Does NOT Transfer: Honest Limitations
Most integration guides skip this section. We will not, because this is where stores waste hours debugging something that was never going to work.
- Historical orders: Krom Automation is event-driven. It fires when something happens from the moment the workflow is active. Customers who ordered before you activated the workflow are not synced retroactively. If you need to backfill 3,000 existing customers, export them from WooCommerce as CSV and import directly into Mailchimp.
- Automatic unsubscribes on refund or cancellation: The free WooCommerce triggers include Order Created and Order Completed, but not a dedicated “Order Refunded” trigger in the free tier. You can handle this in Pro with a Post Status Changed trigger on the shop_order post type, but it requires an additional workflow. Do not assume a cancelled order removes the contact from Mailchimp automatically.
- Mailchimp e-commerce data (purchase history, revenue): The Mailchimp subscribe action adds and updates contacts. It does not write to Mailchimp’s e-commerce data layer (orders, products, revenue), which the official Mailchimp plugin populates via a separate API. If you rely on Mailchimp’s purchase-based segments or revenue reporting, you need the official plugin running alongside Krom Automation, or you need to write to Mailchimp’s Orders API via the HTTP Request action.
- Abandoned cart: Krom Automation does not currently fire a trigger on cart abandonment. Abandoned cart emails require the official Mailchimp plugin or a dedicated WooCommerce abandoned cart plugin that exposes a hook Krom can listen to.
- Checkout Block opt-in checkbox: The native WooCommerce Checkout Block does not expose a Mailchimp opt-in checkbox in the same way the classic checkout does. If your store uses the Checkout Block, test the opt-in field rendering before going live. The Mailchimp official plugin has better handling of the Checkout Block opt-in at present.
For stores that need WooCommerce Subscriptions events such as subscription created, cancelled, or renewed, the WooCommerce Subscriptions integration documentation covers the additional triggers available in Pro and how to chain them into Mailchimp or any other email platform.
The official Mailchimp plugin and Krom Automation are not rivals here. For stores that need Mailchimp’s e-commerce data layer populated, running both is the honest answer.
Troubleshooting: The Three Real Failure Modes
Failure 1: Customers Appear as “Non-Subscribed” Instead of “Subscribed”
This is the most common complaint. The cause is almost always one of two things. First, the Status field in your Mailchimp subscribe action is set to Pending, which means Mailchimp sends a confirmation email and the contact stays non-subscribed until they click.
If you captured consent at checkout and want immediate subscription, change the Status field to Subscribed. Second, Mailchimp’s own audience settings may have double opt-in forced on at the audience level. Check under Audience > Settings > Audience name and defaults in Mailchimp and disable double opt-in if you want single opt-in behaviour from the API.
Failure 2: Workflow Fires but No Contact Appears in Mailchimp
Open Krom Automation > Execution Logs. Find the execution for the order in question and expand the Mailchimp action step. The log will show either a success response or the exact error Mailchimp returned.
The two most common errors are “Invalid API Key” (the key was regenerated in Mailchimp after you connected) and “Audience not found” (the audience ID stored in the action no longer matches your Mailchimp account). For the API key issue, go to Krom Automation > Settings > Integrations > Mailchimp and reconnect. For the audience mismatch, open the workflow, click the Mailchimp action node, and reselect the audience from the dropdown.
The per-step audit trail in the execution log is the fastest path to the actual error. If you have had silent failures before and want to understand why they are hard to catch, this post on silent automation failures covers the structural reasons and how to set up failure notifications.
Failure 3: Duplicate Contacts or Duplicate Emails
Duplicate contacts in Mailchimp usually mean the workflow is firing more than once per order. This happens when both Order Created and Order Completed triggers are active in separate workflows pointing to the same Mailchimp subscribe action. Decide which event is the correct subscription point and disable the other workflow.
Duplicate transactional emails (the customer receiving two order confirmation emails) are a separate issue caused by WooCommerce’s own emails and a Krom Automation send email action both firing. If Krom Automation handles your order email, disable the equivalent email under WooCommerce > Settings > Emails. Enable Run Once Per Entity in the workflow settings to prevent the same order ID from triggering the same workflow twice, regardless of how many times the order status changes.
Official Plugin vs. Krom Automation: Which Setup Fits Your Store
The right choice depends on what you are trying to accomplish. This table answers the decision rather than listing features side by side.
| Your Situation | Better Fit | Why |
|---|---|---|
| You need Mailchimp’s purchase history, revenue data, and e-commerce segments | Official Mailchimp plugin | Writes to Mailchimp’s e-commerce API layer; Krom does not |
| You want abandoned cart emails through Mailchimp | Official Mailchimp plugin | Has built-in cart abandonment tracking |
| You want to subscribe customers AND post to Slack, update a Sheet, and tag in a CRM in one workflow | Krom Automation Pro | Mailchimp is one action in a multi-step workflow; official plugin is Mailchimp only |
| You need conditional logic (only subscribe if order total exceeds $100) | Krom Automation Pro | Visual conditional branching; official plugin has no equivalent |
| You want to avoid per-task fees from Zapier at scale | Krom Automation Pro | Flat annual fee, no execution caps, self-hosted |
| You run 10+ WooCommerce client sites and need one licence | Krom Automation Pro Enterprise | Unlimited sites for $369/year or $799 lifetime |
| You use the WooCommerce Checkout Block and need opt-in checkbox support | Official Mailchimp plugin (currently) | Better Checkout Block integration at this time |
For stores that need both the e-commerce data layer AND multi-step workflow logic, running the official plugin and Krom Automation together is a workable combination. The official plugin handles the Mailchimp-specific data sync.
Krom handles everything else. They do not conflict.
Scaling Considerations for High-Volume Stores
Krom Automation executes workflows via Action Scheduler, which means no workflow runs during a page load. At 500 to 1,000 orders per day, the queue processes in the background without affecting frontend performance.
The execution log stores a per-step audit trail in 9 custom database tables, so log size grows with volume. For stores processing more than 2,000 orders per day, review your log retention settings under Krom Automation > Settings > Logs and set a retention window (30 or 60 days) to prevent table bloat.
The Mailchimp API enforces a rate limit of 10 concurrent connections. On very high volume days (Black Friday, for example), queued workflows may take 20 to 40 minutes to fully process if order volume spikes above normal. Contacts will be subscribed, just with a delay.
If same-day subscription timing is critical for a campaign, test your queue throughput before the event. Our Black Friday WooCommerce prep guide covers queue and performance considerations in more detail.
Going Further: Related Integrations
If Mailchimp is not the right fit for your store, Krom Automation connects to several other email platforms using the same workflow structure. The setup pattern is identical: pick your WooCommerce trigger, add the platform action, map your merge tags, add a condition if needed. Detailed documentation is available for ConvertKit, MailerLite, ActiveCampaign, and FluentCRM.
For form-based subscription workflows, where a Gravity Forms or WPForms submission triggers the Mailchimp subscribe action rather than a WooCommerce order, see the Gravity Forms integration documentation and the WPForms integration documentation. The merge tag structure differs slightly from the WooCommerce fields shown above, but the Mailchimp action configuration is identical.
Every hour you spend configuring Zapier tasks for a WooCommerce-to-Mailchimp connection is an hour you are paying for infrastructure that lives outside your site, outside your control, and on a billing meter that grows with your order volume.
Also from wpRigel
Pollify is our Gutenberg-native poll, survey and quiz plugin. Polls are built as real blocks inside the editor, so there are no shortcodes to paste and no separate configuration interface to learn. It is a natural complement to a WooCommerce store running post-purchase surveys or NPS feedback collection.
Commandify is a command palette for the WordPress admin. Press Cmd or Ctrl plus K to jump anywhere, search anything, and run admin actions without clicking through menus. It is the only command palette plugin with genuine WooCommerce depth: search orders by number, customer name or email, change order status, update product prices and stock, and manage customers, all without leaving the keyboard.
Our Verdict
Use Krom Automation for this integration if you need Mailchimp as part of a wider workflow, want to avoid Zapier’s per-task billing, or manage multiple WooCommerce sites under one licence. The Pro Enterprise plan at $369 per year covers unlimited sites, which works out to under $37 per site across a 10-site agency portfolio. That compares well against Zapier’s Growth plan at $299 per month for 2,000 tasks, which a mid-size WooCommerce store can exhaust in a week during a promotion.
Do not use Krom Automation as your sole Mailchimp connection if Mailchimp’s e-commerce segments, purchase-based automations, or revenue reporting are central to your marketing strategy. Those depend on Mailchimp’s e-commerce data layer, which requires the official plugin.
For stores where abandoned cart is the primary use case, the official Mailchimp plugin remains the simpler path. The honest answer is that these two tools solve different parts of the problem, and for many stores, both running together is the right call.
Download the free Krom Automation plugin from the WordPress.org plugin directory to get the WooCommerce triggers active, then see the Pro pricing when you are ready to add the Mailchimp action.
Frequently Asked Questions
Does WooCommerce integrate with Mailchimp natively, or do I need a plugin?
You need a plugin. WooCommerce has no built-in Mailchimp connection.
The two main options are the official Mailchimp for WooCommerce plugin (free, handles the e-commerce data layer) and Krom Automation Pro (paid, handles Mailchimp as part of a multi-step workflow). For most stores, the choice depends on whether you need Mailchimp’s purchase-based segments or whether you need Mailchimp connected alongside other tools in the same automation.
Why are my customers showing up as non-subscribed contacts in Mailchimp?
The two most common causes are: the Status field in the Mailchimp action is set to “Pending” instead of “Subscribed”, which triggers Mailchimp’s double opt-in flow before the contact activates; or double opt-in is forced on at the audience level in Mailchimp under Audience > Settings > Audience name and defaults. Change the Status field to “Subscribed” and disable audience-level double opt-in if you want immediate subscription without a confirmation email.
Can I send abandoned cart emails through this setup?
Not with Krom Automation alone. Krom Automation fires on WordPress and WooCommerce events, and abandoned cart is not a WooCommerce event in the standard sense as no order is created.
You need a dedicated abandoned cart plugin that captures the incomplete session and fires a hook, or you use the official Mailchimp plugin, which has built-in cart tracking. Krom Automation can handle everything that happens after an order exists.
How do I stop WooCommerce and my Mailchimp workflow from sending duplicate order emails?
If Krom Automation is sending a custom order confirmation email, disable the equivalent WooCommerce default email under WooCommerce > Settings > Emails. Find the email type (e.g., “Processing Order”), click Manage, and set it to disabled. The two systems will otherwise both fire independently for the same order event, and the customer receives two identical emails within seconds of each other.
What does this cost compared to running the same workflow through Zapier?
Krom Automation Pro starts at $119 per year for one site with no execution caps. Zapier’s Starter plan is $29.99 per month ($359.88 per year) with a 750-task cap per month. A WooCommerce store completing 100 orders per month and running 3 Zap steps per order uses 300 tasks monthly, leaving 450 in the buffer.
At 250 orders per month with 3 steps, you exceed the Starter cap and move to the Professional plan at $73.50 per month ($882 per year). Krom Automation’s cost does not change regardless of order volume.
Does this integration work with WooCommerce Subscriptions?
Yes, through Krom Automation Pro. The WooCommerce Subscriptions integration adds triggers for subscription created, cancelled, expired, and renewed.
You can subscribe a customer to a Mailchimp audience on initial sign-up and apply a different tag on renewal or cancellation, all in separate workflows. See the WooCommerce Subscriptions integration documentation for the full trigger list and setup steps.