Shopify VIP customer tagging by spend with n8n keeps your best customers labelled automatically, so a lifetime spend crossing your threshold turns into a VIP tag without anyone watching a spreadsheet. Once the tag exists, every other tool can read it: VIP-only emails, an automatic discount, early access to a drop. This guide builds that tagging in four n8n nodes: a daily schedule, a step that scans customers, a spend check, and a tag update on the customers who qualify.
What it does
Your highest-spending customers deserve different treatment, but Shopify will not flag them for you. Their lifetime spend sits on each customer record, and unless you sort and tag by hand every so often, that value never turns into anything you can act on. Manual tagging drifts out of date the day after you do it.
This workflow keeps the label current on a schedule. Once a day it reads your customers, checks each one’s lifetime spend against a threshold you set, and adds a VIP tag to anyone above it who is not tagged already. From then on, “VIP” is a real Shopify segment you can filter, email, and discount. A tagged customer looks like this:
Customer: Michael Chen
Email: michael.chen@gmail.com
Total spent: 1,240.00
Tags: repeat, VIP
Because the check runs every morning, a customer who crosses your VIP line on Tuesday is tagged by Wednesday, with no one keeping score.
Why it beats the default
The manual default is sorting the customer list by amount spent every few weeks and tagging the top names one at a time. It is slow, it is easy to forget, and the moment a new big spender appears your segment is already wrong. Shopify has no built-in rule that tags customers by lifetime value.
An automated tag is always accurate and always ready to use. Because it lives on the customer record, every downstream tool reads it for free: email platforms segment on it, discount rules target it, and other n8n workflows can branch on it to treat VIP orders differently. Compared with Shopify Flow, which is limited to Shopify Plus, n8n runs this on any plan and lets you turn one tier into several whenever you want.
It also composes with the reporting you may already run. A customer lifetime value report tells you who your best customers are; this workflow acts on that by tagging them, so the insight becomes a segment instead of a screenshot.
What you need
- A Shopify store on any plan, with an admin login that can create a custom app.
- An n8n instance, either n8n Cloud or self-hosted (version 1.0 or newer).
- A Shopify Admin API access token with read and write access to customers, created through the 2026 Shopify Dev Dashboard method. New to this? Follow connect Shopify to n8n (2026 guide) first.
- A spend threshold in mind, in your store currency, that defines a VIP.
Build time is about 15 minutes from scratch, or a couple of minutes if you import the ready-made template below and set your token and threshold.
Node-by-node list
Four nodes, one branch. Here is each one and what it does.
| # | Node | Type | Job |
|---|---|---|---|
| 1 | Every morning | scheduleTrigger |
Runs the workflow once a day at a set hour so the VIP segment refreshes on its own. |
| 2 | Get customers | shopify |
Reads your customers, paging through the full list, each carrying a total_spent and tags value. |
| 3 | Spent over threshold and not VIP? | if |
Passes only customers whose lifetime spend clears the threshold and who are not already tagged VIP. |
| 4 | Tag customer VIP | shopify |
Updates the customer, appending VIP to their existing tags. |
How it works
[Every morning] (daily schedule)
|
v
[Get customers] (total_spent, tags)
|
v
[Spent over threshold and not VIP?] --- false ---> (skip)
|
true
v
[Tag customer VIP] (append VIP to tags)
Step-by-step build
- Create a new workflow in n8n and name it “Shopify VIP customer tagging.”
- Add a Schedule Trigger node named “Every morning.” Set it to run daily, and pick an off-peak hour such as 6 AM so the customer scan does not compete with live traffic.
- Add a Shopify node named “Get customers.” Set Authentication to Access Token and attach your credential. Resource Customer, Operation Get Many, and turn on Return All so it pages through your whole customer list.
- Add an IF node named “Spent over threshold and not VIP?” and connect the customers node to it. Add two conditions joined with AND: first, number,
{{ $json.total_spent }}is greater than or equal to500(change 500 to your threshold); second, string,{{ $json.tags }}does not containVIP. Keep the loose type validation on so Shopify’s text total is read as a number. - Add a Shopify node named “Tag customer VIP” and wire it to the IF node’s true output. Resource Customer, Operation Update. Set Customer ID to
{{ $json.id }}. Under Update Fields add Tags with the value{{ $json.tags ? $json.tags + ', VIP' : 'VIP' }}, which appends the tag without erasing the ones already there. - Save, then run the workflow once by hand to tag your existing high spenders. Check a couple of those customers in Shopify admin to confirm the VIP tag is set, then toggle the workflow Active so it keeps the segment fresh every day.
Tip: want tiers instead of one label? Replace the IF with a Switch node that routes customers into Silver, Gold, and VIP bands by total_spent, each branch tagging with its own name. The customer scan and the update pattern stay identical, so a single tier grows into a full loyalty ladder with one node swap.
Common mistakes
- Comparing spend as text. Shopify returns
total_spentas a string like “500.00”. Use the number operator with loose type validation, or the threshold check compares text and behaves unexpectedly. - Overwriting existing tags. A customer update replaces the whole tag list. Append with
{{ $json.tags ? $json.tags + ', VIP' : 'VIP' }}so a customer’s other tags survive. - Skipping the not-VIP condition. Without the second condition, the workflow keeps re-tagging the same people every day and can pile up duplicate labels. The
notContains VIPcheck makes each tagging happen once. - Giving the token read-only access. Tagging is a write. If your Shopify access token cannot write customers, the read works but the update fails. Grant write access to customers when you create the credential.
- Running it too often on a big store. Scanning the full customer base every few minutes is wasteful and hits rate limits. Once a day is plenty for a spend-based segment.
Cost at realistic volume
This workflow runs inside free tiers at normal store size. The Shopify Admin API is included with your plan, and one daily customer scan plus a handful of tag writes is well within rate limits. There is no third-party service to pay for, since the tag lives on Shopify.
On n8n, the cost is one run a day: read customers, filter, and update the few who newly qualify. Even a store with tens of thousands of customers runs this comfortably on n8n Cloud’s entry plans and free on self-hosted n8n. The payoff is a VIP segment that stays correct on its own, which is the input to every high-value email, discount, and perk you send next.
Download the ready-to-import template
The guide above is free to follow, and building it by hand takes about 15 minutes. The template is the same validated workflow as a single .json import, so you skip the build and just add your token and threshold. Prefer it done for you? Our done-for-you setup service installs and tests it on your instance.
Instant download · Works on n8n Cloud and self-hosted
FAQ
Where does the spend figure come from?
Shopify stores a total_spent value on every customer record, which is their lifetime spend across all orders. The workflow reads that field directly, so there is no need to add up orders yourself. Compare it against your VIP threshold and the customers above it get the tag on the next run.
Won’t it re-tag the same customers every day?
No. The IF step only passes customers whose tags do not already contain VIP, so anyone already tagged is skipped. Each qualifying customer is tagged once, and the daily run simply picks up whoever has newly crossed the threshold since yesterday. No duplicate tags build up.
Can I use a different threshold or several tiers?
Yes. Change the number in the IF condition to set your VIP threshold. For tiers, use a Switch node instead of one IF, routing customers into Silver, Gold, and VIP bands by spend, each writing its own tag. The rest of the workflow stays the same, so tiering is a small change.
What can I do once customers are tagged VIP?
A tag is a segment other tools can read. Send VIP-only email campaigns, apply an automatic discount, show early access to drops, or filter the Shopify admin to VIP customers for a personal note. Other n8n workflows can also branch on the VIP tag to treat those orders differently.
Will this work on a large customer base?
Yes. The customer step pages through your full list, and the Shopify Admin API rate limits are generous for a once-a-day run. On very large stores, schedule it for an off-peak hour and, if needed, filter to customers updated recently so each run processes fewer records while still catching new VIPs.