Hey @tracingrobots,
If you haven’t already, I believe it would be helpful for you to take a look at some of our following Help Center resources:
One thing you’ll understand from these articles, is that a flow functions in a linear path. This means, when you incorporate conditional or trigger splits and create different branches, recipients who are diverted down their respective paths would stay on that trajectory. From your example, the contact who has already been evaluated as never making a purchase; who then decide to make a purchase wouldn’t change the path that this user is already going down in the flow.
The simplest way to ensure that contacts are going through a flow who have never made a purchase, or not one since starting a flow would be using a flow filter. Since flow filters are evaluated at every step of the flow, users by incorporating a flow filter rule such as “What someone has done, Placed Order zero times overall times” would ensure that only users who have never made a purchase would be receiving the flow. With this flow filter in place, users who no longer qualify - such as making a purchase while going through the flow - would be removed from the flow and considered skipped from the flow.
Although this is just one method, there are a number of different strategies and methods you can use to prevent certain users from receiving a specific flow, flow branch, flow email, etc. depending on what your overall goal is. All of which, can be accomplished using flow/trigger filters, conditional/trigger splits, additional filters, etc. If you need further assistance with finding a strategy that works for you, I would strongly suggest reaching out and working with some of our wonderful Klaviyo Partners who I’ve seen build really creative flows depending on the account’s goals.
I hope this helps!
David