Shopify Flow is an ecommerce automation platform that enables you to automate tasks and processes within your store and across your apps.
Hi,
I am trying to create a pretty basic flow automation to create a loyalty program for my customers based on their lifetime spending.
I am using order creation as a trigger as it is directly related to spending, and the conditions are as follows.
Spending - Rank
I am adding tags according to their spending whenever a new order is placed, but I cannot seem to get the tags filters to work properly. I am considering a few cases.
1. New customer - without any tags places order - gets into the program for the 1st time
2. Old customer - with a tag, places an order - gets promoted
3. Old customer - with a tag, places an order - stays at same level
There is one more case where a customer cancels an order and gets demoted, but I'm willing to overlook that.
I hope someone can help me fix this automation, as I have already spent a lot of time on it, and I thought it was working.
I have attached the screenshots because I was not able to attach the flow automation.
Thank you!
Solved! Go to the solution
This is an accepted solution.
This is the entire summary of the thread or the entire process for creating a loyalty program for your store using Flow. It is what I have done for my store; the values/steps/flows can be adjusted to your needs. I have attached all the necessary screenshots in this reply.
P.S. Paul has helped me significantly with this, and it was their suggestion to use segments as the trigger.
----------------
Quick Summary of the Program:
It is not a points-based program but a tier/rank-based program, and customers get a discount on each order based on their rank.
-----------------
Things you will need to create in Shopify:
You can have more segments if you want, but everything else will increase accordingly.
-----------------
Customer Segments:
I have also attached the settings for the bronze segment. The rest of the segments can be created similarly.
--------------------
Discounts:
Once the segments have been created, you can create discounts to assign to them, as shown in the screenshot for the bronze discount below. The rest of the discounts (silver & gold) can be created and assigned with the same settings.
-----------------------
Flows:
There are a total of 8 flows, and all but one are required for the program to work without any issues. I have categorized them based on their functions, which are to:
I have attached the images to create all 4 main flows. Somehow, it won't let me post the flows. The rest of the flows can be duplicated and created easily once these 4 have been created.
Inform/Invite a customer to the program:
The email in this flow tells the details of the program and makes the customer spend a little more to be a part of the program.
Enroll/Register a customer into the program:
This is the most complicated flow.
It checks if the customer is already a gold customer but was never informed about it because the other flows which are triggered upon the customer joining the segment would never help with this. At the same time, it makes sure that the customer is not sent the same email upon every order so that it is not annoying.
Important Step:
Promote a customer:
This is the easiest flow. All other flows for when the customer joins the silver or bronze segment can be made similarly.
Demote a customer:
The screenshot is for when a gold customer gets demoted due to a refund, and their spending goes below the threshold. The emails inform the customer about their new rank and the discount to use.
All other flows for when silver or bronze level customers are demoted can be created the same way. This one had the most emails, which is why I picked this one to demonstrate; the other 2 will have one less, respectively.
------------------------
Tags (automatically created):
The flows add a tag to your customers "VIP Member". You can use any other name but will have to change it wherever it is used.
Please do not delete this tag if you find it on any of the customer profiles, as it means that the customer is a part of the program and has received the email about the program.
------------------------
I believe this should be enough for the program to work, and there should not be any issues with the program. It is also suggested to mention all the discounts on a public page as the email with the discount is sent only when they get promoted/demoted or enrolled.
If anyone uses it and faces an issue, please reply to this and let everyone know.
Use segments instead. Once you create a segment for each tier, you can use it in automations (Segment joined / Segment left), and you can use it in the Admin for filtering/etc.
Wow! I did not know about this.
Will I have to create 3 new automations for each segment and recreate the emails in this automation again?
Is there a way to move the emails in this automation to the new ones I would have to create?
You would have one automation per segment.
You should be able to use the same template(s) in your new automation.
Yes, I suppose if I duplicate this one each time, the emails should be saved.
It will take time to redo everything, but your way is definitely better.
Thank you so much for your help!
Hi Paul,
I have created the automations and segments as you suggested. (screenshots attached at the end, lmk if more are needed)
I might also remove all the tags, as I doubt I will need them if I'm doing things this way, but I'm not sure yet.
However, I doubt this is solving all the cases I have mentioned below.
Let me know if I missed any scenario and I look forward to your response!
----------------
Current Flows:
Customer Segments:
Segment specific discounts:
What do you want to have happen if someone places an order and they stay in the same segment? You could just use an "Order created" event for that and then check segment membership if needed.
Demoted - there is a "Segment left" trigger if you need to do something on demotions.
@paul_n wrote:What do you want to have happen if someone places an order and they stay in the same segment? You could just use an "Order created" event for that and then check segment membership if needed.
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!
@paul_n wrote:Demoted - there is a "Segment left" trigger if you need to do something on demotions.
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.
Yeah, I would use tags or metafields to track if the customer received a certain email or discount.
That workflow looks like it will, when a customer leaves "gold" it checks if they are now in "silver" or another segment, and then sends an email. I think that will work, but it is possible that it takes some amount of time to appear in the new segment. I might add a "Wait" step after the trigger (maybe 1 min) if you see that happen to give it time.
Hi Paul,
Thank you for the confirmation!
I believe all the cases have been solved now unless someone pulls up with a rare case. I have mentioned the ones i could think of below.
Can you also tell what would happen if an automation is to add a tag but it is already present in the customer profile?
Will it be added or not?
----------------
Case 3:
Please find the screenshots below. I was not able to find anything that checks customer segments when the trigger is based on an order so i had to go back to the basic if condition.
I am also using tags because idk how to create metafields lol. Please lmk if anything is incorrect in these screenshots.
Entire Flow:
Tags Checker (to make sure this flow is not triggered again):
Segment Checker (to send the mail for the correct rank):
I can't fully test your workflow but can only react to what I see here.
Your condition to check tags is not correct. It reads: "Check if at least one of the customer tags is not equal to VIP Member". If they have more than 1 tag, it will always be true. I'd recommend instead "None of order/customer/tags is equal to VIP Member".
You can safely test this workflow if you remove the "Send Marketing Email" actions and put in "Log output" instead. If possible in your shop, create an order with a fake customer and see what happens. Then move them them through the segments/scenarios
Thank you for the correction and the trick to test automations! I didn't know you could do this.
I will also be creating a fake customer and orders tomorrow, if i can to test these.
Thank you so much for your help with this!
Hi Paul,
I just wanted to let you know that there were some silly things I missed while creating the flows and have fixed them now.
It seems to be working perfectly and thank you for your assistance with this.
Since this thread was getting some views I also wanted to post all the flows here for anyone looking to create a free and simple (the process can be complicated tho) loyalty program for their store without having to install an app and mark it as the solution.
I don't know any place else where I could post it as a blog either.
This is an accepted solution.
This is the entire summary of the thread or the entire process for creating a loyalty program for your store using Flow. It is what I have done for my store; the values/steps/flows can be adjusted to your needs. I have attached all the necessary screenshots in this reply.
P.S. Paul has helped me significantly with this, and it was their suggestion to use segments as the trigger.
----------------
Quick Summary of the Program:
It is not a points-based program but a tier/rank-based program, and customers get a discount on each order based on their rank.
-----------------
Things you will need to create in Shopify:
You can have more segments if you want, but everything else will increase accordingly.
-----------------
Customer Segments:
I have also attached the settings for the bronze segment. The rest of the segments can be created similarly.
--------------------
Discounts:
Once the segments have been created, you can create discounts to assign to them, as shown in the screenshot for the bronze discount below. The rest of the discounts (silver & gold) can be created and assigned with the same settings.
-----------------------
Flows:
There are a total of 8 flows, and all but one are required for the program to work without any issues. I have categorized them based on their functions, which are to:
I have attached the images to create all 4 main flows. Somehow, it won't let me post the flows. The rest of the flows can be duplicated and created easily once these 4 have been created.
Inform/Invite a customer to the program:
The email in this flow tells the details of the program and makes the customer spend a little more to be a part of the program.
Enroll/Register a customer into the program:
This is the most complicated flow.
It checks if the customer is already a gold customer but was never informed about it because the other flows which are triggered upon the customer joining the segment would never help with this. At the same time, it makes sure that the customer is not sent the same email upon every order so that it is not annoying.
Important Step:
Promote a customer:
This is the easiest flow. All other flows for when the customer joins the silver or bronze segment can be made similarly.
Demote a customer:
The screenshot is for when a gold customer gets demoted due to a refund, and their spending goes below the threshold. The emails inform the customer about their new rank and the discount to use.
All other flows for when silver or bronze level customers are demoted can be created the same way. This one had the most emails, which is why I picked this one to demonstrate; the other 2 will have one less, respectively.
------------------------
Tags (automatically created):
The flows add a tag to your customers "VIP Member". You can use any other name but will have to change it wherever it is used.
Please do not delete this tag if you find it on any of the customer profiles, as it means that the customer is a part of the program and has received the email about the program.
------------------------
I believe this should be enough for the program to work, and there should not be any issues with the program. It is also suggested to mention all the discounts on a public page as the email with the discount is sent only when they get promoted/demoted or enrolled.
If anyone uses it and faces an issue, please reply to this and let everyone know.
Thanks for taking the time to post such a detailed solution. It's rare to see such an in-depth comment in this forum.
Hi Tobe,
Thanks for your comment!
I know this is a bit off-topic, but I couldn’t help but notice your discount apps and had a few questions about them. I’m sure others might have similar questions, so I’m not sure whether I should DM you or ask here, but:
Thanks in advance!
Great summary. Thanks for posting that back.
Shopify and our financial partners regularly review and update verification requiremen...
By Jacqui Mar 14, 2025Unlock the potential of marketing on your business growth with Shopify Academy's late...
By Shopify Mar 12, 2025Learn how to increase conversion rates in every stage of the customer journey by enroll...
By Shopify Mar 5, 2025