Shopify Flow is an ecommerce automation platform that enables you to automate tasks and processes within your store and across your apps.
We're moving the community! Starting July 7, the current community will be read-only for approx. 2 weeks. You can browse content, but posting will be temporarily unavailable. Learn more
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
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.
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
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.
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.
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!