Skip to main content
Solved

Removing profile property in a flow


Forum|alt.badge.img+3
  • Active Contributor III
  • 22 replies

Good afternoon,

 

I set up our abandoned cart flow so that when a profile enters a flow, it is assigned a profile property of “In flow” as “abandoned cart”. This enables me to create a segment of profiles with this property so I can exclude them from campaigns or other flows I don’t want them getting while in the abandoned cart flow. 

When the profile exits the flow, this property is supposed to be deleted. The issue I’m having is this: if someone started checkout or placed an order, they never have the profile property removed because they then fail the flow filters.

Any suggestions?

 

Thanks!

BB

Best answer by emma.owens

Hi ​@B B ! 
@Mich expert has provided a great solution here - rather than using flow filters, you can set up conditional splits after each step in your flow to check if a customer has started a checkout or placed an order. Then, you can add a ‘Remove profile property’ step to the No path, so that if somebody has started a checkout or placed an order, they would go down the ‘No’ path, the property would be removed, and they would exit the flow. 

Here is an example of what this would look like: 

 

I hope this helps and please let us know if you have any follow up questions! 

View original
Did this topic or the replies in the thread help you find an answer to your question?

7 replies

Mich expert
Problem Solver IV
Forum|alt.badge.img+11
  • Problem Solver IV
  • 64 replies
  • January 16, 2025

To ensure the "In flow" property is reliably removed from profiles when they exit the abandoned cart flow, even if they fail the flow filters, you can adjust the flow logic or use additional automation. Here's how:

Solution 1: Use a Conditional Split with a Post-Exit Action

  1. Add a Conditional Split:
    Place a conditional split in the flow to check if the profile meets the criteria for starting checkout or placing an order (e.g., "Placed Order" or "Started Checkout").

  2. Post-Split Action:

    • For profiles that exit the flow (e.g., those who place an order), create an action to remove the "In flow" property.
    • Use a Remove Profile Property action (if available) or update the property to null/empty.

Solution 2: Final Action Step for All Profiles

Add a final step to the flow (after all email or filter actions) that removes or clears the "In flow" property. This ensures every profile exiting the flow has the property removed, regardless of the reason for exiting.

Solution 3: API-Based Cleanup

If Klaviyo's UI doesn’t offer the flexibility you need, use the Update Profile API to remove the property programmatically:

API Example to Clear a Property:

 

bash

CopyEdit

curl -X PATCH https://a.klaviyo.com/api/profiles/<PROFILE_ID>/ \ -H "Content-Type: application/json" \ -H "Authorization: Klaviyo-API-Key <YOUR_API_KEY>" \ -d '{ "properties": { "In flow": null } }'

Solution 4: Use Dynamic Segmentation

Instead of relying on the "In flow" property to exclude profiles, dynamically filter them based on real-time behaviors like Added to Cart, Started Checkout, or Placed Order.

Next Steps:

  1. Update your flow with one of the solutions above.
  2. Test the logic with test profiles to ensure the property is cleared correctly.
  3. Optionally, use a Klaviyo segment to track profiles with the "In flow" property to verify proper removal.

Let me know if you'd like further help setting this up!


emma.owens
Community Manager
Forum|alt.badge.img+9
  • Community Manager
  • 42 replies
  • Answer
  • January 17, 2025

Hi ​@B B ! 
@Mich expert has provided a great solution here - rather than using flow filters, you can set up conditional splits after each step in your flow to check if a customer has started a checkout or placed an order. Then, you can add a ‘Remove profile property’ step to the No path, so that if somebody has started a checkout or placed an order, they would go down the ‘No’ path, the property would be removed, and they would exit the flow. 

Here is an example of what this would look like: 

 

I hope this helps and please let us know if you have any follow up questions! 


Christiannoerbjerg
Expert Problem Solver II
Forum|alt.badge.img+12

Hi ​@B B 

Thank you for posting in the Community!

As ​@emma.owens mentioned, i would setup the filters or conditions in the flow as shown above. 

If you would like it to run automatically via. a script, you can follow this guide: https://www.klaviyo.com/blog/keep-track-of-profiles-that-are-currently-in-klaviyo-flows.

Hope that helps! :-) 

Christian Nørbjerg Enger
Partner & CPO
Web: Segmento.dk
LinkedIn: @christianfromsegmento
Voldbjergvej 22b, 8240 Risskov


Forum|alt.badge.img+3
  • Author
  • Active Contributor III
  • 22 replies
  • January 20, 2025

Hi All,

 

Thanks for all your responses!

Using conditional splits could technically work, but I’d like to avoid that as it can slow down the flow. 

Having it run automatically via a script sounds great; alas, I do not work with a developer so this would be difficult for me to implement. 

I wish there was a built-in solution in Klaviyo that doesn’t resort to flows that are clunky to build and slow to process.

If anyone has any other ideas, please let me know!

Thanks,

BB


retention
Partner - Platinum
Forum|alt.badge.img+62
  • 2025 Champion
  • 920 replies
  • January 20, 2025

Hi ​@B B, if the intent here is to exclude people from Campaign emails that have started Checkout (but not yet placed an order), then perhaps stepping back, another way to approach this might be to define a Segment based on those behavior conditions instead of using custom properties.

For example, you can set the Segment rule to be:

  • Anyone that Started Checkout in last X days
  • AND Has Placed Zero Orders in last X days

Where “X” is a reasonable amount of time between your Campaigns.  For example, if you typically send Campaigns every week, then I would choose X to be 7 days.

There’s a few caveats here:

  • Anyone that recently started the Checkout moments before the Campaign goes out may be excluded, but this seems to still be aligned with your objective.
  • If X is too large, then you’ll exclude someone who abandoned their Checkouts that may benefit from the Campaign.

Will this work instead?


Forum|alt.badge.img+3
  • Author
  • Active Contributor III
  • 22 replies
  • January 21, 2025

I think so, ​@retention! Thanks for this. Sometimes going back to the basics is a simpler solution, but that’s harder to think of once you’re knee-deep in it!


Forum|alt.badge.img+3
  • Author
  • Active Contributor III
  • 22 replies
  • January 21, 2025

Thinking this through again, ​@retention. This will help me for campaigns, but not for flows. Any ideas for that?