Hi!
I’m building product-specific post-purchase flows in Shopify Flow - so each bag we sell has its own automation with relevant info for that specific product.
Here’s the challenge:
If a customer buys two bags in the same order, they’ll enter multiple flows. I do want both flows to send their unique first email (since the content is different), but I’d prefer only one of them to continue with follow-up tips - to avoid sending overlapping content.
What’s the best way to structure this in Shopify Flow?
Appreciate any ideas or best practices! 
Hello!
To prevent overlapping follow-up emails for customers who buy multiple bags in Shopify Flow, implement this strategy: Design separate product-specific flows to send the first unique email for each bag, using an action to add a customer tag or metafield (e.g., sent_bag_A_initial) after the email is sent. Then, create a single “Consolidating Follow-up Flow” triggered by Order created. This flow should have a condition to check if the customer has multiple initial email tags/metafield entries. If so, this flow sends a single, generic follow-up email and adds a “master” tag (e.g., followup_email_sent). Finally, add an exit condition to all individual product-specific follow-up flows, preventing them from sending if the “master” followup_email_sent tag is present, thus avoiding redundant content.
Thanks! One quick follow-up: If we use customer tags or metafields like sent_bag_A_initial or followup_email_sent, do you recommend clearing them after a while?
I want to make sure repeat customers who buy the same product again later will still receive the post-purchase flow again.
Hi @Alex901
Here are a few best practices and workaround ideas to manage this:###
1. Use a “First-Touch Only” Flag Mechanism
Set a Flow variable or customer metafield (e.g., post_purchase_flow_triggered) when the first product’s flow is triggered. Then, in all follow-up steps of other flows, check if this flag is already set.
In each flow:- Start with a “Check if flag exists” condition (e.g., metafield).
-
If it does not exist, proceed with full sequence.
-
If it exists, send only the first message or skip entirely.
-
After first flow runs, set the flag using a Customer metafield like:
namespace: postpurchase
key: flow_triggered
value: true
2. Centralized Flow Manager (Advanced)
Instead of having completely separate flows for each product, create a single centralized flow that:
-
Triggers on Order Created
-
Loops through line items
-
For each item, sends the first product-specific email
-
Then sends follow-ups only for one product (e.g., first bag in the array)
This would reduce duplicate logic and make your flows more maintainable.
3. Use Delay + Condition Logic
In each flow, insert a delay followed by a condition like:
“Has the customer already received a follow-up email within X days?”
This can act as a soft filter to avoid repetitive or overlapping content.
Please note:
Consider tagging the customer or order with something like post-purchase-followup-sent, and use that as a filter in subsequent flows.
Let me know if you have any issues!
If followup is the same for all products, then simply make it a separate flow.
Main flow A:
order placed=> check for product A=> send initial email A
Main flow B:
order placed=> check for product B=> send initial email B
…
Followup flow:
order placed=> wait for 1 week=> send generic followup email
Or can be like this:
Main flow A:
order placed=> check for product A=> send initial email A=> if order has single product=> wait 1 week=> send specific followup A
Main flow B:
order placed=> check for product B=> send initial email B=> if order has single product=> wait 1 week=> send specific followup B
…
Generic Followup flow:
order placed=> if order has more then one product => wait for 1 week=> send generic followup email
Hi @Alex901
When a customer buys two bags, two flows are triggered. Each flow should send its own first email with product-specific info. After that, only one flow should continue with follow-up tips to avoid overlapping content.
The solution is to let each flow send its first email, then check if the customer has a certain tag or metafield — for example, post_purchase_flow_started. If it’s not set, the flow sets it and continues with follow-ups. If it’s already set, the flow ends after the first email.
This way, the customer gets the unique first email for each product, but only one full follow-up sequence.
If my reply is helpful, kindly click like and mark it as an accepted solution.
Thanks!
Use our Big Bulk Discount app to boost your sales!
(https://apps.shopify.com/big-bulk-discount). Easy to set up and perfect for attracting more customers with bulk discounts. Try it now and watch your revenue grow!