Solved

Filling up a date based flow for existing profiles by shifting the date


Userlevel 2
Badge +3
  • Problem Solver I
  • 11 replies

I’m working on filling up a date-triggered flow with 1000s of profiles and can’t seem to figure out why I’m not seeing the numbers I should.  I definitely am getting 100s into the flow but that’s far below what I was expecting.

The flow trigger is based on their Subscription Paused Date at 12pm.  With a flow filter of Subscription Status doesn’t equal active.  Then there is a 40 day wait for the first email and 105 day for the second email, etc.

And to back-fill these flows I am segmenting my profiles into lists that should be included.  Then I have a script which pulls all the profiles from those lists and updates their Subscription Paused Date minus 5 minutes.  Updates to property on a date based flow should trigger re-evaluation for the flow.  And I can definitely see that working on a small percentage of the profiles.
 

 

icon

Best answer by David To 8 May 2023, 22:27

View original

7 replies

Userlevel 7
Badge +60

Hello @Chops,

Interesting case you have here. I’d be curious to know how you’re updating these profile’s subscription paused date property minus 5 minutes.

Since this is a date-triggered flow, one complication I can see already is the timing of when that property gets updated. You’ll want to keep in mind that when updating the property, the date has to be set before the current date before 12pm. 

Not to mention, based on your automation, I would check to see if there were any delays in these updates that could cause users to slip through the crack and miss that 12pm window. 

I also noticed that you have the recipient’s local time zone selected. This would be another aspect to keep in mind. If this wasn’t taken account in your script or method you used to automatically update the profile properties, I can imagine a large number of contacts being either missed or delayed on when they would be eligible for the flow. 

For example, updating that date property to 5/5/2023 at 11:55am for a UK profile not be the same for a profile based in New York, USA. Based on this example, there would be a 6-hour delay for the US profile to enter the flow. This gets more complicated if you were to compare that to a profile based in the Asia region it would most likely already be passed that date and time in their time zone. 

For more resources on how date triggered flows work, I would recommend taking a look at the following guides we offer:

I hope this helps!

David

 

Userlevel 2
Badge +3

For the Date update, I’m using Rails/Ruby and it looks like this:
(DateTime.parse(paused_date) - 5.minutes).iso8601

The paused_date is coming from the attributes on the profile so I’m just leaning on some Rails helpers with the 5.minutes then making sure it ends up as an iso8601 date before updating the profile.

All the dates I’m updating are already in the past, I’m trying to get people into the flow who’s dates have already triggered.  This definitely works when creating a profile.  I have a task that runs weekly to add people and the jobs runs successfully.  The problem comes in when I’m updating a profile, no matter what I’ve tried I can’t get people into the flow if the profile already exists.

Userlevel 2
Badge +3

I was going to try to play with the time and go back 24 hours to see if that changes anything.  I’m pretty stumped on this.  I read both articles and what I feel like what I’m doing should work.  Based on what I read from this article how to create a date property-triggered flow.

Klaviyo checks all profiles in your account daily (and whenever a date is added, updated, or deleted) to ensure that anyone who is due to enter a date-based flow is queued for the date-based flow.

 

Userlevel 7
Badge +60

Hey @Chops,

Thanks for that explanation! Really glad to hear you’re using ISO format for your dates as that helps rule out any formatting and time zone issues. 

Sounds like you have a pretty clear setup and you’ve investigated thoroughly. Only other thing that comes to mind is what you’re setting the flow to repeat as. Date triggered flows are unique in the sense that you can set when you want the flow to repeat, unlike list/segments and metric triggered flows. 

You can set a date triggered flow to repeat in the following time frames:

  • Monthly
    Recipients will qualify to enter this flow on a monthly recurring basis on the same day each month; for example, a monthly subscription reminder series. Note that if you schedule this on the 31st, it will automatically pick up on the last day of the month for any month that has fewer than 31 days.
  • Yearly
    Recipients will qualify to enter this flow on a yearly recurring basis on the same month/day; for example, a yearly anniversary or birthday series.
  • Should not repeat
    Recipients will qualify to enter this flow only once when the full date matches (day, month, and year); for example, a wedding or pregnancy due date.

Could the flow potentially be set to should not repeat? If so, this would explain why net new profiles are receiving the flow while existing profiles - who may have already entered the flow previously, be excluded. 

David

Userlevel 2
Badge +3

I think you nailed it here, my flow is set to should not repeat so net new is going in but the existing profiles won’t because they were already evaluated.  I’m going to make some changes to the flow and test a sample batch of profile updates.  Thank you so much, this is really helpful.

Chad

Userlevel 7
Badge +60

Hey @Chops,

Glad this discussion helped! Really appreciate you also sharing how you were setting things up, I’m always curious to learn what or how other members are doing things in their Klaviyo account. 

David

Userlevel 2
Badge +3

Hey @David To just wanted to say thanks.  I finally had a change to re-run my scripts with the 5 min time shift.  After changing the Flow to repeat yearly, I’m now seeing the lists fill up as excepted!

Reply