How to Tag Your Existing Shopify Customers (Free Options First, Then the One-Click Way)
Disclosure: I build a Shopify tagging app, MSS Order Tagger: Auto Tags. The free methods come first in this guide, and they work without any app. Prices and details are in the box at the end.
Most tagging guides explain how to tag new orders as they come in. That's the easy half. The harder question is what to do about the customers you already have: everyone who bought before you set anything up. Below are three ways to tag them, free options first, plus three common recipes side by side.
Why tags on existing customers matter
Customer tags are one of the main ways Shopify sorts people. Customer segments can filter on them (for example customer_tags CONTAINS 'wholesale'), Shopify Email can send to those segments, and many email tools and wholesale-pricing apps that sync with Shopify build their audiences or price lists from a customer tag.
The catch is that most tagging automation starts from an event, like a new order. Switch it on today and it tags tomorrow's buyers correctly. Everyone who qualified before today stays untagged until they happen to order again, so your "repeat buyer" segment is missing most of your repeat buyers.
So there are two jobs:
- Backfill: tag the customers you already have.
- Ongoing: keep tagging new customers as they qualify.
Option A: Bulk edit in the Shopify admin (free, one-off)
The admin can add a tag to many customers at once, and the segment query editor on the Customers page finds them for you.
- From your Shopify admin, go to Customers.
- Click in the query editor above the customer list and enter a filter, for example
number_of_orders >= 2. Run the query. - Check the customer count. If it looks right, select the customers. If there are more than 50, choose Select all 50+ customers in this segment so the action covers every page, not only the first.
- Click the ... icon next to Edit customers, then click Add tags.
- Type the tag and click Save.
Shopify's help page on customer bulk actions has the full steps, including the mobile version. The filters you can use (number of orders, products purchased, amount spent, customer tags and more) are listed in Shopify's segment query language reference.
Good for: a one-time list of any size. The trade-off: it doesn't maintain itself. Next month's new repeat buyers need another pass, or Option B.
Option B: Shopify Flow (free on Basic and up)
Shopify Flow is Shopify's own automation app. It's free on the Basic, Grow, Advanced and Plus plans. Flow handles the ongoing job well, and it can also work through existing customers in batches.
Worked example: tag repeat buyers as they qualify
- From your Shopify admin, go to Apps > Flow, then click Create workflow.
- Click Select a trigger and choose Order paid.
- Click +, then Condition. Set it to check the order's customer: number of orders is greater than or equal to 2.
- Click + > Action on the True branch, choose Add customer tags, and enter
repeat-buyer. - Name the workflow and click Turn on workflow.
That's the same pattern Shopify uses in its Flow getting-started guide, which tags a customer "VIP" when an order reaches $500. Shopify's create a workflow page has the editor steps in more detail.
A workflow like this reacts to new orders. To reach customers who qualified before you switched it on, Flow gives you two methods.
Existing customers, method 1: manual runs. Flow can run a workflow manually on a maximum of 50 orders, draft orders, customers or products at a time, for certain triggers. For customers, the supported triggers include Customer created.
- Create a second workflow with the Customer created trigger, the same number-of-orders condition (this time on the customer itself), and the same Add customer tags action. Turn it on, because manual runs need the workflow to be on.
- Go to Customers and select up to 50 customers.
- Click the ... menu button, and in the Apps section click Run Flow automation.
- Choose the workflow and click Run workflow. Repeat for the next 50.
Existing customers, method 2: a scheduled sweep. For thousands of customers, a scheduled workflow does the batching for you.
- Trigger: Scheduled time. The smallest interval is 10 minutes.
- Action: Get customer data, with a query that finds customers who qualify and don't have the tag yet. Get data actions work on lists up to 100 items long.
- Add a For each loop (iterate) over the results, with Add customer tags inside it.
- Turn the workflow off once the backlog is done.
At one run every 10 minutes and 100 customers per run, that's up to about 600 customers an hour. Two details make it work. First, exclude already-tagged customers in the query itself, or every run fetches the same first 100. Second, test the query before you switch it on: Shopify's Get customer data page warns that when a query fails, "Often the API will return all results (instead of none)."
For a straight one-time backfill, Option A is usually quicker. Flow's real strength is the ongoing workflow.
Option C: a tagging app
A tagging app folds both jobs into one rule. What that typically gets you:
- One rule for new and existing records, instead of a workflow plus a separate backfill pass.
- A preview of what a rule would tag before you switch it on.
- An activity log of every tag change, so "why does this customer have this tag?" has an answer.
- Automatic removal of the tag when a record stops matching the rule.
Using my own app as the example (see the disclosure box): you build a rule from dropdowns, with nested AND/OR groups across order and customer conditions. It tags new orders and customers as they come in, and on the Growth or Pro plan one click applies a rule to existing customers and the last 60 days of orders. That 60-day window matters for rules that look at what was in an order: orders older than 60 days are outside the one-click apply, so for those, a one-time Option A pass fills the gap.
Three recipes, side by side
Recipe 1: Repeat buyers (2 or more orders)
- Admin (free): Customers, filter
number_of_orders >= 2, select all, Add tagsrepeat-buyer. Done for the whole list in one pass. - Flow (free): the Order paid workflow from Option B keeps new repeat buyers tagged. Use Option A or a manual run once for the existing list.
- App: one rule, "customer number of orders is at least 2, add customer tag
repeat-buyer", then one click to apply it to existing customers and the last 60 days of orders. Rules can also combine groups, for example (5 or more orders AND customer tags don't containwholesale) OR an order total over $500, as a single rule.
Recipe 2: Wholesale customers
Say your wholesale orders already carry an order tag wholesale (from a wholesale order form or from draft orders you create), and your price list or theme checks for a customer tag wholesale.
- Admin (free): if it's a short, known list of accounts, search each one in Customers by name or email, select them, and Add tags
wholesale. - Flow (free): trigger Order created; condition: order tags include
wholesale; action: Add customer tagswholesale. For past orders, go to Orders, filter the list by thewholesaletag, select up to 50 orders, and use Run Flow automation (Order created supports manual runs). - App: one rule, "order tags contain
wholesale, add customer tagwholesale". One click covers existing customers and the last 60 days of orders. Customers whose only wholesale orders are older than that need the Flow manual run or an admin pass once.
Recipe 3: Customers who bought from a product line
Say your candle products carry the product tag line:candles, and you want to tag their buyers bought-candles for a cross-sell email.
- Admin (free): Customers, filter
products_purchased MATCHES (tag = 'line:candles'), select all, Add tagsbought-candles. Shopify's reference says this filter covers purchases from all time, which makes it the best free backfill for this recipe. - Flow (free): trigger Order paid; condition on the order's line items using At least one of, with the product tags including
line:candles(Shopify's conditions reference shows how to add criteria for the same line item); action: Add customer tagsbought-candles. - App: one rule, "line-item product tags contain
line:candles, add customer tagbought-candles". New orders are tagged automatically and one click covers the last 60 days of orders. For older buyers, run the admin filter step once.
Pitfalls worth avoiding
Test on a small slice first. Run a Flow workflow manually on two or three customers, or check the segment count before you bulk-edit. A filter with a typo can match far more customers than you meant.
Plan removal before you add. Repeat buyers stay repeat buyers, but wholesale accounts close and product lines change. Decide now what takes a tag off. In Flow that's a second workflow with the Remove customer tags action. In an app, check whether it removes tags automatically and whether you can see when it did.
Keep tag names consistent. Pick a prefix scheme (line:candles, line:soap) and stick to lowercase. Segments, email audiences and price lists match the exact tag text, so Wholesale and wholesale can end up as two different audiences, and renaming a tag later breaks every segment that uses the old name. A one-line note per tag saying why it exists saves the next person on your team from guessing.
Disclosure and prices
About this guide. It was written by the developer of MSS Order Tagger: Auto Tags, a tagging app on the Shopify App Store. Options A and B are free and work without the app.
Prices as shown on the app's Shopify App Store listing on October 27, 2026: Free plan (2 active rules, 100 tag applications per month, no one-click apply to existing records); Starter $4.99/month; Growth $12.99/month; Pro $39.99/month; annual billing is not offered. The one-click apply to existing customers and the last 60 days of orders is on Growth and Pro. There is no free trial.