Skip to main content
Solved

Flows- setting dynamic date property


Forum|alt.badge.img

I have a flow action that adds a custom property to a profile and the dynamic property is the current date. I then use that property to pull profiles into a segment. The segment is set to include anyone where the date property is in the last 24 hours.

Here’s the issue I just found: The date does not include a time stamp, it is only the date. So I just discovered that even though I was trying to pull in anyone in the last 24 hours, it was resetting every night at midnight and the segment only included anyone who had the date property after midnight of the current day.

I’m curious if anyone knows a way to add a property that could actually be based on a 24-hour period.

The segment cannot be based on an event, because I actually set the property in advance of an email going out. If a user is within 8 hours of receiving a flow email, I want to put them in a suppression segment so they will not receive any campaign emails. Flow emails are more targeted and make more money per recipient, so I don’t want to just use Smart Sending, I want to keep the user from getting the campaign email and ensure that the flow email is sent out, and don’t want to risk them unsubscribing from receiving a campaign and a flow too close together. 

Any ideas? Maybe I could just set a different property to true then use that property to pull them into another flow that waits 24 hours then sets the property to false? That just seems overly complicated to have a separate segment and separate flow though… 

Best answer by andoventures

Hey ​@noreilly,

I have a quick solution for you. The core issue is that your property removal was being skipped. Let’s see how you can fix this in some easy steps.

  1. Adding the property as you have listed is perfect. I would set this property to something like “Active in Flow” set to “TRUE” , just as you had it. This will need to go in all of your active flows.
  1. You should have the segment already but I will go over this anyway (for the sake of the step-by-step)… Create a segment of everyone with the “Active in Flow” set to True. 
  2. Draft a new flow with this new segment as a trigger.
    1. Drag a time delay and place it under the trigger. Set it to the 8 hours that you wanted.
    2. Drag a property update and set it to delete the “Active in Flow” property from the profile after the delay.
    3. Set it live.
  3. Set the property updates within your flows live.

You should then have a proper system that works dynamically. Contacts in flows will be added to your segment, which you can use to exclude profiles from campaigns, and they will leave the segment after 8 hours.

Let me know if this works for you!

 

All best,

Andrés @ Melusine Studio // Klaviyo Master Gold

melusine.studio

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

6 replies

Forum|alt.badge.img
  • Problem Solver II
  • 11 replies
  • January 27, 2025

Hi ​@noreilly,

Sadly, there is no way to add time to a property update step within a flow. From what I understand, you want to prevent any contact expecting to receive an automated email within the next 8hrs from receiving a campaign. I have some ideas in mind but I would require a tad more input from you to accurately assist you.

Could you tell me exactly how you currently tag the profiles with the date property (ie., what triggers the flow)? You mentioned that you “set the property in advance of an email going out”, could you clarify what you mean by this?

 

All best,

Andrés @ Melusine Studio // Klaviyo Master Gold

melusine.studio


Forum|alt.badge.img
  • Author
  • Contributor I
  • 3 replies
  • January 28, 2025

Hi Andrés, thanks for offering to try to help. Yes, the flow email is the priority, and I don’t want them to receive a campaign then have smart sending skip the more lucrative flow email.  So the way I do that is by setting a property a certain amount of time before the flow email should go out, then that property is used to create a segment that I suppress for that day’s campaign send (we send campaigns every morning and sometimes remails in the evening).

Here’s an example flow:

  • Trigger: Placed Order, Trigger Filter: Has never used promo code NEWORDER
  • Wait 20 days
  • Add dynamic date property called “Flow Suppression Date”
  • Wait 12 hours
  • Send flow email with promo code NEWORDER
  • Wait 12 hours
  • Remove “Flow Suppression Date” property (Profile gets skipped if they used promo code NEWORDER after they received the email)

This works, in theory, to remove the suppression date after 24 hours. But in reality, if someone no longer satisfies the trigger (either because of a trigger filter, or they fell out of a segment that was a flow trigger), then they’ll get skipped.

So for example, if a trigger filter for the flow is that they’ve never used promo code NEWORDER, but then they use the promo code shortly after I send out the email, then when they hit the next action to remove the property, they get skipped. I used to use a boolean property until I realized people were getting skipped and the property was never getting removed, so that’s why I started using the date property, so at least I could make sure even if the property doesn’t get removed, the profile does not stay in my suppression segment forever.   

 

My suppression segment is based on Flow Suppression Date within last 24 hours, but like I said above, it’s not time stamped, so even if Flow Suppression Date gets set at 11pm, they’ll fall out of the segment an hour later. And I know I could just set my segment to Flow Suppression Date within last 2 days, but then some profiles could stay in for almost 48 hours and could miss several campaign emails depending on what time they’re scheduled for. 

 

Let me know if any of that doesn’t make sense, and if you have any ideas you think would work better than the way I currently have it set up. 

Thanks!


Forum|alt.badge.img
  • Problem Solver II
  • 11 replies
  • Answer
  • January 28, 2025

Hey ​@noreilly,

I have a quick solution for you. The core issue is that your property removal was being skipped. Let’s see how you can fix this in some easy steps.

  1. Adding the property as you have listed is perfect. I would set this property to something like “Active in Flow” set to “TRUE” , just as you had it. This will need to go in all of your active flows.
  1. You should have the segment already but I will go over this anyway (for the sake of the step-by-step)… Create a segment of everyone with the “Active in Flow” set to True. 
  2. Draft a new flow with this new segment as a trigger.
    1. Drag a time delay and place it under the trigger. Set it to the 8 hours that you wanted.
    2. Drag a property update and set it to delete the “Active in Flow” property from the profile after the delay.
    3. Set it live.
  3. Set the property updates within your flows live.

You should then have a proper system that works dynamically. Contacts in flows will be added to your segment, which you can use to exclude profiles from campaigns, and they will leave the segment after 8 hours.

Let me know if this works for you!

 

All best,

Andrés @ Melusine Studio // Klaviyo Master Gold

melusine.studio


Forum|alt.badge.img
  • Author
  • Contributor I
  • 3 replies
  • January 28, 2025

That is a possible workaround, but here's a scenario I have in several flows:

Set property

Wait 8 hours

Send email 

Check to see if email actually got delivered

If so, then wait 12 hours, then remove property

If email was skipped, remove property now

 

So if there is a filter that keeps the email from going out, I remove the property then so they go back into normal campaign sends sooner. 

 

I do already have a backup flow that removes the property for anyone who has the date property longer than 48 hours. I was just hoping to have something a little closer to an actual 24 hours that was more reliable. 

 


Forum|alt.badge.img
  • Problem Solver II
  • 11 replies
  • January 28, 2025

@noreilly, I think that your set up might be getting too complicated to manage effectively. If you want to scale up or A/B test delays, this will be a big issue. My recommendation is to opt for the simplest, closest solution to what you wish to achieve. All the conditionals after every single email is very prone to human error and should be avoided.

I suggest you implement the property update as per my advise above. This will solve the pre-campaign prevention (ie., you won’t send campaigns to people about to receive the flow message). Then, you could activate smart sending for your campaigns (leave flows untouched) to prevent contacts that just received an automation from getting a campaign directly thereafter (or within the last 24hrs if you modify the 16hrs default). 

You would then have a 2-step solution:

  1. Segment exclusion for anyone about to receive a flow.
  2. Smart sending for anyone who received a flow recently.

 

All best,

Andrés @ Melusine Studio // Klaviyo Master Gold

melusine.studio

 


Forum|alt.badge.img
  • Author
  • Contributor I
  • 3 replies
  • January 28, 2025

That makes sense. Thanks for your help.