This n8n Shopify node guide shows you exactly what the built-in Shopify node can do for a store owner, and how to wire it into a workflow that reads and writes real order data. Instead of hand-building Admin API calls, you pick a resource and an operation and fill in a few fields. To make it concrete, you will build a small workflow that checks for high-value orders every hour, tags them as VIP, and emails you a digest, all with the native node.
What it does
The Shopify node is n8n’s official connector for a Shopify store. It talks to the Shopify Admin API on your behalf, so you never write a raw request. You choose a resource (Order, Product, Customer) and an operation (Get, Get Many, Create, Update, Delete), and the node builds and sends the call.
The demo in this guide uses two of those operations back to back. First it reads recent orders with Order, Get Many. Then, for any order over a threshold, it writes a tag back with Order, Update. A short Code node formats a summary and Gmail sends it to you. It is a compact tour of the node’s two most common jobs, reading store data and pushing a change back.
Before any of this works, your Shopify credential has to be connected. If you have not done that yet, follow how to connect Shopify to n8n in 2026 first, which walks through the current Dev Dashboard method and the access token the node needs.
Why it beats the default
The manual alternative is an HTTP Request node pointed at https://your-store.myshopify.com/admin/api/2026-04/orders.json, with headers, query strings, and pagination you maintain by hand. That works, but every field is yours to get right, and a version bump or a typo in the header breaks it silently.
The built-in Shopify node removes most of that surface area:
- Authentication is handled by the stored credential, so no access token sits in a header field.
- Pagination is automatic when you turn on Return All, so you are not writing a loop over
page_infocursors. - Operations are named in plain language, so Update an order is a dropdown choice, not a
PUTyou assemble. - Filters like Created At Min are labelled fields, not query parameters you have to remember.
You reach for a raw HTTP Request node only when you need an endpoint the node does not expose. For everyday order, product, and customer work, the node is faster to build and far easier to hand to someone else later.
What you need
- An n8n instance (Cloud or self-hosted).
- A Shopify store with a custom app / access token connected as an n8n credential. See the 2026 connection guide.
- A Gmail account connected to n8n for the digest (or swap in Slack, Telegram, or plain SMTP).
- About 20 minutes to build from scratch, or two minutes with the ready-to-import template below.
This pattern is one of many in our n8n Shopify automation hub; the node covered here is the building block behind most of them.
Node-by-node list
| # | Node | Type | Job |
|---|---|---|---|
| 1 | Every hour | Schedule Trigger | Runs the workflow once per hour. |
| 2 | Shopify – Get recent orders | Shopify node (Order, Get Many) | Reads orders created in the last hour. |
| 3 | Order total >= $200 | Filter | Keeps only orders at or above the VIP threshold. |
| 4 | Shopify – Add VIP tag | Shopify node (Order, Update) | Appends a “VIP” tag to each qualifying order. |
| 5 | Build digest | Code | Formats the tagged orders into an HTML list. |
| 6 | Email the digest | Gmail | Sends you the summary of what was tagged. |
[Every hour]
|
[Shopify: Get Many Orders] --- reads recent orders
|
[Filter: total >= $200]
|
[Shopify: Update Order + VIP tag] --- writes a change back
|
[Build digest] --> [Gmail: email you]
Step-by-step build
- Add a Schedule Trigger. Set the rule to run every 1 hour. This is the entry point; polling on a schedule means the workflow runs even on Shopify plans without webhook access.
- Add the Shopify node to read orders. Set Resource to
Orderand Operation toGet Many. Turn on Return All. Under options, set Created At Min to the expression={{ $now.minus({ hours: 1 }).toISO() }}and Status toany. This pulls only orders from the last hour, which keeps the call small. - Add a Filter node. Create one condition: left value
={{ $json.total_price }}, operator number is greater than or equal to, right value200. Orders below the threshold stop here. - Add the Shopify node to write the tag. Set Resource to
Order, Operation toUpdate, and Order ID to={{ $json.id }}. In Update Fields, add Tags with the expression={{ $json.tags ? $json.tags + ', VIP' : 'VIP' }}. That appends VIP to whatever tags the order already had. - Add a Code node. Set it to Run Once for All Items and paste the digest script (included in the template) that turns the tagged orders into an HTML list with order numbers and totals.
- Add a Gmail node. Set To to your address, Subject to
={{ $json.count }} new VIP orders tagged, and Message to={{ $json.html }}. - Attach credentials and save. Point both Shopify nodes at your store credential and the Gmail node at your Gmail credential, then toggle the workflow Active.
Tip: The demo emails only when at least one order qualifies. If the Filter passes nothing, the branch after it never runs, so you are not spammed with empty “0 orders” messages.
Common mistakes
Overwriting tags instead of appending
Shopify stores tags as a single comma-separated string, and Update replaces the whole field. If you set Tags to just VIP, you erase every other tag on the order. Always read $json.tags first and append, as the expression above does.
Fetching the whole store every run
Turning on Return All with no date filter pulls your entire order history each hour. On a busy store that is thousands of records and needless API load. The Created At Min filter keeps each run to just the new orders.
Comparing price as text
Shopify returns total_price as a string like "249.00". Use a number comparison in the Filter so "90.00" is not treated as greater than "200.00" by alphabetical order. n8n’s loose type validation handles the conversion when the operator type is number.
Skipping the connection step
A red error on the Shopify node almost always means no credential is attached or the access token lacks a scope. Confirm the token has read_orders and write_orders using the connection guide before debugging anything else.
Cost at realistic volume
The node itself is free; you pay only for the tools around it. On n8n Cloud, one hourly run is 24 executions a day, about 720 a month, comfortably inside the Starter plan’s allowance. Self-hosted n8n is unlimited on your own server.
| Piece | Cost at this volume |
|---|---|
| Shopify Admin API | Free (within standard rate limits) |
| n8n executions (~720/mo) | Free self-hosted; within paid Cloud tiers |
| Gmail sends (a few/day) | Free |
| Total | $0 beyond your n8n plan |
Even if you raise the schedule to every 15 minutes, you are still well under typical plan limits, because each run touches only the last window of orders.
Ready-to-import template
This guide is free to follow, top to bottom. If you would rather skip the wiring, the ready-to-import template drops the whole workflow into n8n in about two minutes, with both Shopify operations, the Filter, the digest Code node, and the Gmail step already built and set to inactive so you can add credentials safely.
Instant download · Works on n8n Cloud and self-hosted · Prefer it done for you? See our done-for-you automation service.
Frequently asked questions
Do I need code to use the n8n Shopify node?
No. The Shopify node is point and click: pick a resource like Order or Product, pick an operation like Get Many or Update, and fill in fields. The demo adds one small Code node only to format an email digest, and you can swap that for a plain notification if you want zero JavaScript.
What is the difference between the Shopify node and the Shopify Trigger?
The Shopify node performs actions on demand: get orders, update a product, create a customer. The Shopify Trigger starts a workflow when an event fires, such as an order being created. This guide polls with a Schedule Trigger, then uses the regular node to read and write, so it runs on plans without webhook access.
Which Admin API version should the Shopify node use?
Use a current stable version such as 2026-04. n8n manages the version for the built-in node, but if you ever call the Admin API through an HTTP Request node, put the version in the path and refresh it a few times a year, because Shopify retires old versions on a rolling schedule.
Why are order tags a single string and not a list?
Shopify stores tags as one comma-separated string. When you update tags you overwrite the whole field, so to add a tag you must read the existing tags and append. The demo does exactly that with an expression, which preserves any tags the order already had instead of wiping them.
Will the Shopify node hit rate limits on a big catalog?
It can if you fetch thousands of records with Return All. n8n paginates and generally respects Shopify limits, but for large pulls add a date filter so you only fetch recent records, and space heavy jobs out on a schedule rather than running them every minute.
Related guides
- How to connect Shopify to n8n (2026) — the credential setup this node depends on.
- n8n Shopify automation hub — the full library of store workflows.
- All Shopify guides — every tutorial in one place.
- Browse the full n8n template library