- Home
- Resources
- Integrations
- WooCommerce
WooCommerce n8n integrationAutomate WooCommerce with n8n.
Your store fires an event, n8n picks it up and does the rest. The WooCommerce n8n integration exposes 15 operations across customers, orders and products, plus a trigger, the node that starts a workflow, listening to 12 events spread over 4 object families. Built for stores that already run on WordPress.
Verified Trustpilot reviews · AI, automation & growth agency
What does the WooCommerce n8n integration actually cover?
The WooCommerce n8n integration pairs two nodes. The WooCommerce node talks to the REST API of your store and exposes 15 operations spread over 3 resources: customers, orders and products. The WooCommerce Trigger node sits at the start of a workflow and fires when the store reports one of 12 events. Both run on the same API key credential, so a single setup covers reading, writing and listening.
Start with orders, because that is where most stores lose hours. The trigger fires on order.created, the customer.get operation pulls the buyer behind that order, and one row lands in Google Sheets for the daily reconciliation. Put a condition on the order Status and the same workflow posts only the paid ones into Slack.
The catalog side runs the other way around. product.getAll with Return All switched on walks every page of the products endpoint, so a full export finishes inside one execution instead of a manual CSV. Narrow it with Stock Status or Min Price when only the out of stock references matter, then send the result into product.update to correct Stock Quantity in bulk.
Third pattern: keep the buyer list in one place. customer.created fires the moment someone registers on the store, customer.get returns the full record, and the contact goes to the CRM without anyone retyping an email address. Stores that also bill through Stripe or run a second storefront on Shopify often route both sources into the same workflow, so the contact list keeps one shape.
What the node leaves out is worth knowing before you build. There are 3 resources, and coupons are not one of them. The trigger reports coupon.created, coupon.updated and coupon.deleted, yet creating or editing a coupon has to go through the HTTP Request node, which calls any WooCommerce endpoint while reusing the same credential through predefined authentication. Same route for every part of the REST API the node does not expose.
Two details save debugging time later. The trigger has no wildcard value, so each event you want is selected one by one in the Event parameter, and following the whole coupon family means checking 3 of them. And required fields are thin: the customer operations ask for Customer ID or Email, product.create asks for Name, and nothing else is flagged, so Order ID and Product ID look optional in the interface while the operation cannot do anything without them. If n8n itself is still on trial, the n8n review goes through hosting and pricing in detail.
How do you connect WooCommerce to n8n?
- 01
Prepare the WordPress side
The credential talks to the WooCommerce REST API, so the plugin has to be installed on the WordPress site before anything else. Then open Settings > Permalinks in WordPress and set the permalink structure to anything other than Plain. n8n lists both as prerequisites for this credential, and neither can be done from inside n8n: they belong to the WordPress admin.
- 02
Generate the API key in WooCommerce
In the store admin, follow WooCommerce > Settings > Advanced > Rest API > Add key. Pick Read/Write in the Permissions dropdown: that is the level the credential expects, and anything narrower leaves the create, update and delete operations without permission. WooCommerce then shows a Consumer Key and a Consumer Secret. Copy both.
- 03
Create the credential in n8n
Open the Credentials menu in n8n, choose the WooCommerce API key credential and paste the Consumer Key and the Consumer Secret. The third field, WooCommerce URL, takes the URL of the WordPress site itself. A credential is created once and then appears in the dropdown of every WooCommerce node and every WooCommerce Trigger you add, on n8n Cloud as on a self-hosted instance.
What can the WooCommerce Trigger listen to?
WooCommerce Trigger is the node that starts a workflow when something happens in WooCommerce. It listens to 12 events, listed below by family. Pick one or several, activate the workflow: n8n registers the webhook on your WooCommerce account.
What you see in n8n
Every event, by family
One row per object, one chip per action. The event to tick in the node is object.action; hover a chip to read exactly when it fires.
coupon.*3coupon.createddeletedupdated
customer.*3customer.createddeletedupdated
order.*3order.createddeletedupdated
product.*3product.createddeletedupdated
Configuration notes
01Set up the WooCommerce Trigger
The WooCommerce Trigger node starts the workflow in place of the WooCommerce node, and it ships at version 1 with a single parameter to fill in. Nothing here asks the store for news: WooCommerce is the one that calls n8n.
Key parameters
- Event: the only parameter of the node. It holds the 12 values the store can report, grouped over 4 object families, and there is no wildcard value, so every event you care about is selected explicitly.
02order.* events
Three of the 12 values follow an order through its life: order.created when a checkout goes through, order.updated on any change to the record including a new Status, and order.deleted when the order leaves the store.
Key parameters
- Event: check the 3 order values to cover the whole lifecycle, or keep only
order.updatedwhen the point is to watch status changes rather than new sales.
order.get is only needed when the workflow runs much later and the record may have changed.03customer.* events
The customer family also counts 3 values: customer.created at registration, customer.updated when the record changes, and customer.deleted when the account goes away.
Key parameters
- Event:
customer.createdalone is enough for onboarding. Addcustomer.updatedwhen a downstream tool has to stay aligned with the billing address or the name held in WooCommerce.
customer.get or customer.update through an expression, the {{ }} syntax n8n uses to read a field from the incoming item, with no extra lookup step in between.04product.* events
On the catalog side, product.created, product.updated and product.deleted report what happens to a reference, whatever changes it: a price, a stock level, a category or the product itself.
Key parameters
- Event:
product.updatedis the noisy one, because it fires on every edit. Pair it with a condition on the field you actually watch, Stock Quantity or Regular Price, before the workflow does anything.
05coupon.* events
The fourth family covers promotions: coupon.created, coupon.updated and coupon.deleted. It is the family where the two nodes stop matching, since the WooCommerce node has 3 resources and coupon is not among them.
Key parameters
- Event: the 3 coupon values are read-only as far as this integration goes. A workflow can hear about a coupon, then has to reach the API another way to change one.
What can the WooCommerce node do?
The WooCommerce node exposes 15 operations across 3 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.
| Resource | Create | Get | Get Many | Update | Delete |
|---|---|---|---|---|---|
| Customer | ✓ | ✓ | ✓ | ✓ | ✓ |
| Order | ✓ | ✓ | ✓ | ✓ | ✓ |
| Product | ✓ | ✓ | ✓ | ✓ | ✓ |
Operations index
Customer
5 operationsCreate a customer
customer.createWhat you see in n8n
Notes & use cases
Creates the customer record in WooCommerce and returns it with the identifier every other customer operation asks for later.
Key parameters
- Email (required): the address the account is attached to, often
{{ $json.email }}when the item comes from a form or an earlier node. - Additional Fields: 7 optional fields, among them First Name, Last Name, Username, Password, Billing Address and Shipping Address.
Delete a customer
customer.deleteWhat you see in n8n
Notes & use cases
This operation takes one identifier and removes the matching account from the store. There is no second parameter and no filter, so the branch that calls it deserves a condition in front.
Key parameters
- Customer ID (required): the ID of the customer to delete, not the email address. On a
customer.*event, read it from the payload with{{ $json.id }}.
Get a customer
customer.getWhat you see in n8n
Notes & use cases
Pulling one customer back is the usual second step after an order event, because the order payload names the buyer by identifier and not much more.
Key parameters
- Customer ID (required): the ID of the customer to retrieve. Coming from an order, that is the Customer ID carried by the order itself.
Get many customers
customer.getAllWhat you see in n8n
Notes & use cases
Listing is where Return All earns its place: on, n8n chains the pages of the API until the customer base is complete.
Key parameters
- Return All: off, the node stops at Limit, the maximum number of customers to return.
- Filters: 3 fields, Email to look up one address, Order By among ID, Include, Name and Registered Date, and Sort Order for Ascending or Descending.
Update a customer
customer.updateWhat you see in n8n
Notes & use cases
Editing an existing record works field by field: only what you add to the collection is sent, the rest of the customer stays untouched.
Key parameters
- Customer ID (required): the ID of the customer to update.
- Update Fields: 6 fields, including First Name, Last Name, Billing Address, Shipping Address, Password and Metadata.
Order
5 operationsCreate an order
order.createWhat you see in n8n
Notes & use cases
Orders can be born outside the checkout, and that is what this operation is for: a phone sale, a subscription renewal, an order placed by a salesperson.
Key parameters
- Line Items: the products on the order, each with a Product ID, a Quantity and, when needed, a Variation ID.
- Additional Fields: 9 fields, among them Customer ID (0 for a guest), Status, Currency, Payment Method Title and Set Paid, which marks the order as paid, moves the status to Processing and reduces the stock.
Delete an order
order.deleteWhat you see in n8n
Notes & use cases
Test orders pile up after a launch, and this is the operation that clears them out of the reports.
Key parameters
- Order ID: the order to remove. The node does not flag it as required, which is misleading: without it the operation has no target, so fill it in, usually from
{{ $json.id }}.
Get an order
order.getWhat you see in n8n
Notes & use cases
After a webhook fires, the payload is not always the freshest version of the record. Reading the order again gives the workflow the current state.
Key parameters
- Order ID: the order to retrieve. Like the other order operations, it is not marked as required even though nothing works without it.
Get many orders
order.getAllWhat you see in n8n
Notes & use cases
Reporting starts here. The 9 options of this operation turn a raw list into the exact slice a dashboard needs.
Key parameters
- Return All: on, every page is fetched; off, Limit caps the number of orders returned.
- Options: After and Before take an ISO 8601 date to frame a period, Status keeps a single state such as Completed or Refunded, and Customer or Product restrict the set to one buyer or one reference.
Update an order
order.updateWhat you see in n8n
Notes & use cases
Most order automations end on this operation, because changing the status is what makes the rest of the store move.
Key parameters
- Order ID: the order to modify, not flagged as required by the node.
- Update Fields: 8 fields, with Status among Pending, Processing, Completed, Cancelled, Refunded and the rest, plus Transaction ID, Customer Note and Payment Method Title.
Product
5 operationsCreate a product
product.createWhat you see in n8n
Notes & use cases
Adding a reference from a spreadsheet row is the classic use, and the node accepts far more than a name: 33 additional fields describe the product.
Key parameters
- Name (required): the product name, the only field the operation refuses to run without.
- Additional Fields: Regular Price and Sale Price, SKU as the unique identifier, Type among Simple, Grouped, External and Variable, Status to publish or keep a draft, plus Stock Quantity and Stock Status.
- Images: each image takes an Src URL and an Alt text.
Delete a product
product.deleteWhat you see in n8n
Notes & use cases
Retiring a reference comes down to one field. The operation removes the product and everything the store shows about it.
Key parameters
- Product ID: the product to delete. The node leaves it optional, so a workflow that forgets the expression fails silently on an empty value.
Get a product
product.getWhat you see in n8n
Notes & use cases
Before promising a delivery date or applying a discount, a workflow usually needs the current state of the reference rather than the one cached somewhere else.
Key parameters
- Product ID: the product to read. On a
product.*event, the identifier comes straight from the payload.
Get many products
product.getAllWhat you see in n8n
Notes & use cases
Catalog exports and price audits both go through this operation, and its 17 options are what keep the result usable.
Key parameters
- Return All: on for a complete catalog, off to stop at Limit.
- Options: Category Name or ID and Tag Name or ID narrow the set, Stock Status isolates In Stock, Out Of Stock or On Back Order, Min Price and Max Price frame a range, and SKU or Slug find one reference.
Update a product
product.updateWhat you see in n8n
Notes & use cases
Repricing, restocking and unpublishing all land on the same operation, which accepts 34 fields and changes only the ones you fill in.
Key parameters
- Product ID: the product to modify, again not marked as required.
- Update Fields: Regular Price and Sale Price with Date On Sale From and Date On Sale To to schedule a promotion, Stock Quantity and Stock Status for inventory, and Status to move a reference between Publish, Draft, Pending and Private.
Need help automating WooCommerce with n8n?
A person reads every message.


