A customer who has spent $2,000 with you deserves a different experience than one on their first $30 order — a different email flow, a different discount code, maybe a personal note from support. But that only works if something on the store actually knows which customer is which, and Shopify doesn't tag that distinction for you.
Why Shopify doesn't do this natively
A customer's profile in Shopify admin shows their total spend as a number you can read — but there's no setting that says "tag this customer VIP once they cross $500." The two usual workarounds both have a real cost:
- Export a spend report and manually tag customers — accurate the day you run it, stale the next time someone crosses a threshold between exports.
- Build it in Shopify Flow — Flow can react to an order and tag a customer, but computing a running lifetime total and re-checking it against a tier ladder is more logic than Flow's trigger-based builder is meant to carry, and it has no simple way to also remove a tag if your tiering logic changes.
The fix: a rule that reads the real number
An auto-tagging rule can check a customer's actual lifetime spend and apply a tag the moment it crosses your threshold:
If customer's lifetime spend is at least $500 → tag Gold.
Every time that customer places an order, the rule re-checks their updated total. Cross into a new tier and the tag for that tier goes on — no export, no manual pass, no waiting for someone to notice.
Because it's a rule, you can shape the tiers to your own numbers:
- As many tiers as you want — Silver at $250, Gold at $500, Platinum at $1,000, each its own rule.
- Combine with other conditions — spend threshold and a minimum order count, so a single unusually large order doesn't award VIP status a genuine repeat customer earns over time.
- Currency-aware — a threshold is checked against the currency your store actually transacts in, not assumed.
Why you should preview it before trusting it
The failure mode here is invisible until an email flow fires on the wrong list: a threshold that's off by one tier, or a rule that reads the wrong field entirely. Previewing a rule against a real customer record — confirming it reads their actual lifetime spend and lands on the tier you expect — catches that before the rule runs against your whole customer list.
What happens when spend changes
Lifetime spend only ever goes up, so a tag meaning "has spent at least $X, ever" never needs to come off on its own — once earned, it stays earned, which is exactly the behavior most VIP-tier programs want. If your own program instead means something time-windowed ("VIP this quarter"), that needs a genuinely different rule shape — a threshold checked against recent spend, not lifetime spend — and that kind of rule should remove its own tag automatically once a customer falls out of the window, the same way any other condition-based tag stays accurate as the underlying data changes.
Rules2Tag is being built to run rules like these — reading a customer's real order history rather than a stale export, previewed against a live record before it runs, and self-healing when a condition-based tag's underlying data no longer matches.