WooCommerce to Mautic, contacts always campaign ready
New customer comes in. Then the quiet scramble starts: export from WooCommerce, clean the fields, import into Mautic, hope it didn’t create a duplicate, then fix segments that somehow drifted again.
Marketing managers feel it when welcome campaigns fire late. Store owners notice it when reporting looks “off” and nobody trusts the list. And if you run an agency, you already know the awkward client question: “Why didn’t this customer get the onboarding emails?” This WooCommerce Mautic sync automation makes new customers campaign-ready automatically.
Below, you’ll see exactly how the workflow works, what it automates, and what you can tweak so contacts land in the right state inside Mautic every time.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: WooCommerce to Mautic, contacts always campaign ready
flowchart LR
subgraph sg0["Ecommerce Customer Flow"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/mautic.svg' width='40' height='40' /></div><br/>Search Existing Contact"]
n1@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Evaluate New Contact", pos: "b", h: 48 }
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/mautic.svg' width='40' height='40' /></div><br/>Generate New Contact"]
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/mautic.svg' width='40' height='40' /></div><br/>Modify Existing Contact"]
n4["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/wooCommerce.svg' width='40' height='40' /></div><br/>Ecommerce Customer Trigger"]
n1 --> n2
n1 --> n3
n0 --> n1
n4 --> n0
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n4 trigger
class n1 decision
classDef customIcon fill:none,stroke:none
class n0,n2,n3,n4 customIcon
The Problem: New Customers Don’t Reach Mautic Cleanly
WooCommerce is great at taking orders, but it’s not your marketing brain. Mautic is built for campaigns, segmentation, and timing. The problem is the handoff in the middle. People export CSVs “later,” paste data into the wrong fields, or import the same person twice because their email had a space, a different casing, or an old record already exists. Then automations misfire. Someone gets the wrong sequence, or nothing at all, and you only notice after a support ticket shows up.
It adds up fast. And it’s not just time. It’s trust in your data, and confidence in your campaigns.
- You end up doing list hygiene every week because duplicates creep in from manual imports.
- Segments drift out of date, which means “new customer” messaging hits people days late.
- Teams hesitate to build automations because they don’t trust the contact record is complete.
- Small formatting issues (missing last name, weird phone fields) turn into hours of cleanup.
The Solution: Add or Update Mautic Contacts the Moment WooCommerce Creates Them
This workflow starts the second a new customer is added in WooCommerce. n8n pulls the customer details, then checks Mautic to see if that email already exists as a contact. If it’s truly new, the workflow creates a fresh contact in Mautic with the right fields mapped so your campaigns have what they need. If the contact already exists, it updates that record instead of creating a duplicate, which keeps your segments accurate and your history intact. The end result is simple: Mautic stays aligned with WooCommerce, without you touching exports, imports, or spreadsheets.
The workflow begins with a WooCommerce customer trigger. Then it searches Mautic, evaluates whether the person is new, and routes into either “create” or “update.” Finally, the contact in Mautic is ready for segmentation and campaign triggers right away.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say your store gets about 20 new customers a week. Manually, a typical flow is export (10 minutes), clean the CSV (20 minutes), import into Mautic (15 minutes), then spot-check duplicates and fields (15 minutes). That’s roughly an hour per week, and it spikes during promos. With this workflow, “after” is basically zero hands-on time: WooCommerce triggers it instantly, n8n processes the contact in moments, and Mautic has a clean record ready for your welcome campaign.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- WooCommerce to trigger when a customer is added
- Mautic to create or update contact records
- WooCommerce + Mautic credentials (set up inside n8n’s Credentials)
Skill level: Beginner. You’ll connect accounts and confirm a few field mappings.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A new customer is created in WooCommerce. That event is the trigger, so you’re not waiting for a daily export or someone to remember a checklist.
Mautic is searched for a matching contact. The workflow looks up the customer (typically by email) so it can decide if this is a brand-new person or someone who already exists in your marketing database.
The workflow chooses “create” or “update.” If the contact is new, it generates a contact in Mautic. If the contact exists, it modifies the existing record instead, which helps prevent duplicates and keeps activity history in one place.
Your campaigns can react immediately. Once the contact is in Mautic (clean and up to date), your segments, tags, and welcome sequences can trigger right away.
You can easily modify the contact fields that get written to Mautic to match your segmentation rules. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the WooCommerce Trigger
Set up the workflow to listen for customer updates in WooCommerce and kick off the sync process.
- Add the Ecommerce Customer Trigger node as your trigger.
- Set Event to
customer.updated. - Credential Required: Connect your wooCommerceApi credentials in Ecommerce Customer Trigger.
Step 2: Connect Mautic for Contact Lookup
Search Mautic for an existing contact using the customer email from WooCommerce.
- Add the Search Existing Contact node and connect it to Ecommerce Customer Trigger.
- Set Operation to
getAlland Authentication tooAuth2. - In Options → Search, set the value to
={{$json["email"]}}. - Credential Required: Connect your mauticOAuth2Api credentials in Search Existing Contact.
Step 3: Add Routing Logic for New vs Existing Contacts
Use conditional logic to determine whether to create a new contact or update an existing one.
- Add the Evaluate New Contact node and connect it to Search Existing Contact.
- Configure Conditions → String with Value 1 set to
={{$json["id"]}}and Operation set toisEmpty. - Route the true output (empty ID) to Generate New Contact.
- Route the false output (ID exists) to Modify Existing Contact.
Step 4: Configure Contact Creation and Updates in Mautic
Map WooCommerce customer fields into Mautic for both create and update actions.
- In Generate New Contact, set Email to
={{$node["Ecommerce Customer Trigger"].json["email"]}}. - Set Company to
={{$node["Ecommerce Customer Trigger"].json["billing"]["company"]}}, First Name to={{$node["Ecommerce Customer Trigger"].json["first_name"]}}, and Last Name to={{$node["Ecommerce Customer Trigger"].json["last_name"]}}. - Credential Required: Connect your mauticOAuth2Api credentials in Generate New Contact.
- In Modify Existing Contact, set Operation to
updateand Contact ID to={{$json["id"]}}. - Under Update Fields, set First Name to
={{$node["Ecommerce Customer Trigger"].json["first_name"]}}and Last Name to={{$node["Ecommerce Customer Trigger"].json["last_name"]}}. - Credential Required: Connect your mauticOAuth2Api credentials in Modify Existing Contact.
Step 5: Test and Activate Your Workflow
Validate the workflow with a real customer update and then turn it on for production use.
- Click Execute Workflow and trigger a customer update in WooCommerce to send a test event.
- Confirm that Search Existing Contact returns a result and that Evaluate New Contact routes correctly.
- Verify that a new Mautic contact is created in Generate New Contact or updated in Modify Existing Contact.
- When satisfied, toggle the workflow to Active for live syncing.
Common Gotchas
- Mautic credentials can expire or need specific permissions. If things break, check the n8n Credentials screen and Mautic API access settings first.
- WooCommerce API keys sometimes lack read access for customers, especially on locked-down stores. Confirm the key permissions in WooCommerce settings before chasing “random” workflow failures.
- Email formatting is the silent killer. Trim whitespace and standardize casing in your mapping, or you’ll still get duplicates that look “almost identical” in Mautic.
Frequently Asked Questions
About 30 minutes if your WooCommerce and Mautic credentials are ready.
No. You’ll connect WooCommerce and Mautic, then confirm which customer fields map into your contact fields.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in any hosting costs if you self-host, plus whatever your Mautic setup already requires.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, but you’ll do it in Mautic-side field mapping. Most people customize the “Generate New Contact” and “Modify Existing Contact” Mautic steps to set tags, a segment field, or a custom “source” value like “WooCommerce.” If you also store billing country, lifetime value, or customer type in WooCommerce, you can map those into custom fields too. That’s usually enough to trigger the right welcome series automatically.
Usually it’s expired or incorrect API credentials in n8n. Update the Mautic credential, then re-test the “Search Existing Contact” step because it’s the first one that depends on Mautic. If it still fails, check that the Mautic user/token you’re using can read and write contacts. Rate limits are less common here, but they can show up during large backfills.
Plenty for most small stores. On n8n Cloud, your limit is based on executions per month (Starter supports a typical small-business volume, and higher plans handle more). If you self-host, there’s no execution cap, but your server needs enough memory and CPU. In practice, this workflow handles customers as they come in since it runs once per new customer.
Often, yes. The big win is the built-in “search then create or update” logic, which is where duplicates usually get prevented, and n8n handles that kind of branching cleanly. Self-hosting is also a real advantage if you want predictable costs as volume grows. Zapier and Make can still be fine if you only need a simple 2-step push and you don’t care about updating existing contacts. If you’re unsure, Talk to an automation expert and you’ll get a straight recommendation based on your list size and workflow complexity.
Once this is live, new customers quietly show up in Mautic the way you wish they always did. Less cleanup. Better timing. Honestly, it’s one of those automations you set up once and stop thinking about.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.