Skip to main content

Hi everyone,

I’m working on a flow setup where:

  • Trigger: Deal Created event (a new flow run starts for each deal - even if its the same profile is running multiple deals) - (contains { dealId, amount, quantity etc }

  • Other event: Deal Stage Updated (contains { dealId, dealStage }).

What I want to do is:

  • If a Deal Stage Updated event comes in with the same dealId and the stage is one of SELL_PENDINGSELL_CLOSED_WON, or SELL_BUSINESS_LOST, then only that specific flow run (for that deal) should stop.

  • At the same time, if the same profile has other active deals (other flow runs with different dealIds), those flows should continue unaffected.

The issue I’m running into:

  • Klaviyo flow filters and exit conditions seem to check at the profile level.

  • So if any deal for that profile moves to one of those stages, all flow runs stop, not just the one associated with the deal that changed.

Theres no issue with same profile starting the same flow twice, but stopping the flow based on stage has become an issue and that’s where I need help.

Has anyone found a way to set up exit conditions or filters so that they apply per-event / per-dealId, not across the entire profile?

Or is there a workaround (maybe with custom events/properties) that allows targeting only the matching dealId?

Let me know if you need more info on this to understand, its quite complex.

Thanks in advance! 

More updates for understanding:
 


 

I’ve run into an issue with how flows are being managed when the same profile is enrolled multiple times.Currently, Klaviyo allows the same profile to run the same flow multiple times simultaneously. That part is fine (and exactly what i need), but the problem arises when I want to stop only one instance of the flow for that profile.Right now, the options are either:

  • Stop all active flow instances for that profile, or
  • Leave all of them running.

How do we selectively stop just one of the instances of running flows while allowing the others to continue??This creates a limitation because if a profile is legitimately enrolled in the same flow multiple times, I should be able to cancel just one of those enrollments without affecting the others.Can you please confirm if this is a known limitation or if there’s any workaround available?


Hi! Klaviyo employee here. Is your account a paid email plan? If so, you may be able to use the new objects feature to manage multiple deals per profile: https://help.klaviyo.com/hc/en-us/articles/35105337172123

If so, post back and I can outline the solution.


Hey saulblum,

Thank you for your response.

Yes I can switch to a paid plan not an issue, we are testing out Klaviyo to migrate our email marketing from Hubspot. 

I’m assuming any plan will work, we’ll just go ahead with the starter plan. We have about a 1000 profiles in there for now.

Let me know the plan for Objects and how we can handle individual instances of flows from there?

Thanks,

RV

 


It turns out the object approach won’t work currently.

With a custom code action — https://developers.klaviyo.com/en/docs/add_a_custom_action_to_a_flow — you can use the Get Events API call — https://developers.klaviyo.com/en/reference/get_events — to find all Deal Stage Updated events for the profile and in a specified time frame, and fetch the dealId and dealStage properties from each event. You can then decide whether the profile should stay in the flow and receive emails.

You’ll soon (not sure of when it’ll be available) be able to output a variable from your method to then use in a conditional split, to determine whether to continue to send emails in the flow.

It won’t exit the profile from the flow, but you could have this custom action and split before each email.


Reply