Organizing Customers into Tiers according to Lifetime Spend

Topic summary

A Shopify Plus user is building a tier-based loyalty program using Flow automation, where customers are ranked (Bronze/Silver/Gold) based on lifetime spending ($100+/$250+/$500+) and receive corresponding discount codes (5%/10%/15%).

Initial Challenge:
The original approach used order creation triggers with tag-based filtering, but struggled to handle multiple scenarios: new customer enrollment, tier promotions, customers staying at the same level, and demotions from refunds.

Solution Approach:
Following community advice, the implementation shifted to using customer segments instead of tags as the primary trigger mechanism. This involves:

  • 3 customer segments (one per tier)
  • 3 segment-specific discount codes
  • 8 Flow automations total

Key Flows:

  • 3 “Segment joined” flows: trigger when customers enter Bronze/Silver/Gold segments, sending welcome emails with discount codes
  • 3 “Segment left” flows: handle demotions by checking which new segment the customer entered and sending appropriate notifications
  • 1 “Order created” flow: ensures existing top-tier customers receive their discount code at least once (uses tags to prevent repeat emails)
  • 1 optional flow for general program management

Technical Details:
Tags labeled “VIP Member” track whether customers have received program emails. A 1-5 minute wait step after segment triggers allows time for segment membership to update properly.

The creator has shared detailed screenshots and configuration steps for others implementing similar programs without third-party apps.

Summarized with AI on October 29. AI used: claude-sonnet-4-5-20250929.

I want the gold customers to receive the email with their discount code just once because there is no way for the old customers who are already in the gold segment to receive their code. Even if they are at the silver level they will receive the email about reaching gold level at some point and receive their discount code but this won’t ever happen for the gold customers.

However, I do not want this to happen on every order as it would be annoying to receive the same email repeatedly. Also, gold customers are just an example but i would do this for every level.

I don’t know if checking segment membership would help as i need to check if they have ever received the email for the segment.

I wonder if i could use tags for this, add a tag when the usual flows run, and then use that order creation flow after a few hours to check if a customer already has that tag then it should not send the email with that discount code else it should send it.

Lmk if im wrong or if there is an easier way to this!

I have created an automation with this. Could you confirm if everything is correct in it?

I was not able to find anything to check the previous segment, so i started with the topmost one (gold) and then it checks the new segment i suppose and sends the email to the customer about that respective segment.

I will be doing the same for silver and bronze segments but i just wanted to ask if i did everything correctly before i proceed.

I have attached screenshots of the gold segment flow.