Skip to main content

Hey guys as I understand you cannot trigger an email flow annually on a specific date. 

For example in an email flow:

  1. 1st of January - Happy New Year
  2. 8th March - Happy Women’s Day
  3. 25th December - Merry Xmas

Currently there is no way to do that.

Email campaigns won’t work for me as I have 27 dates to fill the year with these automations. 

 

Would this be a suitable workaround?

  1. Set a custom property as “NewYear” with value “2023-01-01” for every contact in list
  2. Then count the number of days with a time delay 
  3. For example to send emails every 15th of January, the time delay would wait 14 days from date of “NewYear” property to trigger an email every 15th of January every year.
  4. Naturally 1 extra February day will mess up the flow every 4 years so will need to be adjusted twice every 4 years.

 

Would this work?

Hi there,

Honestly, I think that’s a great idea and that you should try it.

Just make sure that the custom property on the profile is set as “Date” and not Text, Boolean or List. 

If you want to add it with a CSV file, make sure that you upload it like this : x/x/2022

Or I believe the easiest way would be to create a flow to tag people with this property. The trigger would be your newsletter list and if you back-populate your flow, everyone on that list will get that TAG. 

Feel free to send me a private message to schedule a call if you need help or want to optimize your Klaviyo account.

Cheers!


Hey @dharmeshsb,

That’s a great solution you have going!

I agree with all of what @Tomb has said. Especially with the point of ensuring the custom property data type is set appropriately to date. Incorrectly storing this data type can corrupt your profile property to longer be seen as a “date” but instead as a text or string which can lead to your date triggered flows to not trigger. 

I think taking a look at some previous comments I’ve had on this topic could be helpful as well:

David


Thanks both @David To and @Tomb

I have been able to create the first test but I had to manually back populate it for it to work. Is there any way to automatically back populate it?

 

 


Hey @dharmeshsb,

Backpopulating a date-triggered flow wouldn’t actually be supported. Essentially, date triggered flows are technically in a constant state of backpopulation that when a date property on a profile is met, the flow would queue the user up. As highlighted in our How to back-populate a flow Help Center article:

There is no option for back-populating price drop- or date property-triggered flows. To learn more, check out Understand how date-based flows queue recipients.

David


@dharmeshsb awesome idea and indeed the best way to do this besides sending out a campaign on those dates. How much different would the content be?

Just adding that when you go and create profile properties make sure you're using the right date format. Klaviyo has a good article on this here:

https://developers.klaviyo.com/en/docs/acceptable-date-and-timestamp-formats-for-profile-and-event-properties

This is the most important part from that article

You must format dates as either YYYY-MM-DD or MM/DD/YYYY. Note that dates cannot be formatted in the DD-MM-YYYY format. If there is no time of day associated with your date, you can set it to midnight by using the HH:MM:SS value 00:00:00

 

I hope this helps!

 

Omar Lovert

Polaris Growth


Hey @dharmeshsb,

Backpopulating a date-triggered flow wouldn’t actually be supported. Essentially, date triggered flows are technically in a constant state of backpopulation that when a date property on a profile is met, the flow would queue the user up. As highlighted in our How to back-populate a flow Help Center article:

There is no option for back-populating price drop- or date property-triggered flows. To learn more, check out Understand how date-based flows queue recipients.

David

Thanks @David To . So if I understand it correctly based on this article: https://help.klaviyo.com/hc/en-us/articles/360054240252; “Klaviyo checks if someone qualifies for a flow daily via a check that runs a full day in advance.“.

 

So this means that for an email in flow going out on 15th March (106 days delay), Klaviyo will add new contacts in this flow tomorrow? Correct?


@dharmeshsb awesome idea and indeed the best way to do this besides sending out a campaign on those dates. How much different would the content be?

Just adding that when you go and create profile properties make sure you're using the right date format. Klaviyo has a good article on this here:

https://developers.klaviyo.com/en/docs/acceptable-date-and-timestamp-formats-for-profile-and-event-properties

This is the most important part from that article

You must format dates as either YYYY-MM-DD or MM/DD/YYYY. Note that dates cannot be formatted in the DD-MM-YYYY format. If there is no time of day associated with your date, you can set it to midnight by using the HH:MM:SS value 00:00:00

 

I hope this helps!

 

Omar Lovert

Polaris Growth

Thanks the date works fine. I just need to make sure new contacts to the newsletter are added to the flow. 

 

Content will be different as much as Valentine’s day is different to Xmas ;)


Hey @dharmeshsb,

I’m not quite sure you’re example makes sense here.

You’ll want to keep in mind that the specified date defined by the profile property will be the trigger for the flow. This means, that if you have a profile property date set as June 15 (tomorrow), while incorporating a 106 day time delay, the contact would be placed into the flow tomorrow and will be waiting in the 106 day time delay. This user would not receive the email from the flow until September 29. Normal logic of time delays and how a flow functions wouldn’t change just because the flow is date-triggered.

Using a date trigger would only give you additional options to how the flow behaves such as the capability to trigger the flow before the the targeted date as highlighted in the About Using Time Delays in Date Property Flows article. Your original workaround was a great example of this.

  1. Set a custom property as “NewYear” with value “2023-01-01” for every contact in list
  2. Then count the number of days with a time delay 
  3. For example to send emails every 15th of January, the time delay would wait 14 days from date of “NewYear” property to trigger an email every 15th of January every year.
  4. Naturally 1 extra February day will mess up the flow every 4 years so will need to be adjusted twice every 4 years.

David


Hi @David To , 

 

Thank you so much for your reply. Yes you’re absolutely right. I have actually changed the EmailAutoStartDate to 1st March 2022 to avoid the extra February day issue. As you can see in the tests below, none of the flows were populated despite Klaviyo’s mention of “Klaviyo checks if someone qualifies for a flow daily via a check that runs a full day in advance.“ in this article https://help.klaviyo.com/hc/en-us/articles/360054240252

 

I need contacts to enter this flow automatically without any manual intervention via manage flow > back-populate. Now the question is how do I do this:

  1. I change the flow tigger to repeat monthly instead of yearly so every month new contacts enter the flow?
  2. Or there are other ways to achieve this automation?

 

 


Hey @dharmeshsb,

Date-triggered flows, like any other flows would automatically be queuing users up without any manual inputs. 

Are you saying you’re expecting users to be queued up for the flow and placed in the time delay despite your EmailAutoStartDate property is set for to 1st March 2022? Since your flow is meant to trigger yearly on the date of the person’s EmailAutoStartDate property, the next time this profile would automatically be entered into the flow is on 3/1/2023. 

When the How Date-Based Flows Queue Recipients Help Center mentions: “Klaviyo checks if someone qualifies for a flow daily via a check that runs a full day in advance.” This means that the user would be checked automatically in our backend on 2/28/2023 just to ensure their date property hasn’t changed or updated but will still be queued up on 3/1/2023.

Similarly, if you switched that repeat option from “yearly” to “monthly”, then the user would be queued up for the flow on the first of every month based on your EmailAutoStartDate property being 3/1/2022 - I.E. 7/1/2022, 8/1/2022, etc. 

One way I would suggest testing to see if your date triggered flow is setup and sending correctly would be setting the date-triggered profile property (EmailAutoStartDate) on your test profile to be the next day of the current date. For example, since today is 6/21/2022, I would set it to be 6/22/2022. When the next day comes around, at 8:30am, the test profile should automatically be queued up in this flow and waiting in the 105 day time delay. You could confirm this by seeing that the test profile is scheduled in the waiting status for the first email in its flow analytics report and in the test profile’s message history (top right of a contact’s profile) under their scheduled messages. 

David


Hi,

I have a similar issue - I would like to send season-specific, item related messages to my customers, eg:

 

People who bought product X:

1st of April - Message A

1st of July - Message B

1st of November - Message C

I was thinking about adding to customer profiles “fake birthdays”. So after ordering product X customer profile is updated with:

“Title Message A” - date property: 04/01/2022

“Title Message B” - date property: 07/01/2022

“Title Message C” - date property: 11/01/2022

Then I could create Date Based Flows for each of these dates with annual repetition.

Question: does a profile in Klaviyo enter a birthday-type flow based only on day and month and not a year? Like people’s date of birth is probably always in the past of signing up to a newsletter and still they enter these flows, right? So in my example people buying product X in 2023 would still qualify as well? 


Hey @Olga B,

Great question! For the most part date triggered flows would not take into account the year. The only exception to this would be if the year was in a future date. 

To reference our How Date-Based Flows Queue Recipients Help Center article again:

A person will only be added to a flow if the day, month, and year fall within a flow’s timeline, so if a date is in the future (e.g., 12/1/2025), they won’t be added to a flow before that time. Additionally, if it's a reoccurring flow (e.g., monthly or weekly), that person will queued for that flow and enter during the repeated date.

So in your example, if the date is set for 2023, users would not be queued to enter the flow until the year 2023. However, if the year/date had already passed such as 2021, then the user would be queued to enter the flow either yearly or monthly based on your repeat settings. 

David


Hey @dharmeshsb,

Date-triggered flows, like any other flows would automatically be queuing users up without any manual inputs. 

Are you saying you’re expecting users to be queued up for the flow and placed in the time delay despite your EmailAutoStartDate property is set for to 1st March 2022? Since your flow is meant to trigger yearly on the date of the person’s EmailAutoStartDate property, the next time this profile would automatically be entered into the flow is on 3/1/2023. 

When the How Date-Based Flows Queue Recipients Help Center mentions: “Klaviyo checks if someone qualifies for a flow daily via a check that runs a full day in advance.” This means that the user would be checked automatically in our backend on 2/28/2023 just to ensure their date property hasn’t changed or updated but will still be queued up on 3/1/2023.

Similarly, if you switched that repeat option from “yearly” to “monthly”, then the user would be queued up for the flow on the first of every month based on your EmailAutoStartDate property being 3/1/2022 - I.E. 7/1/2022, 8/1/2022, etc. 

One way I would suggest testing to see if your date triggered flow is setup and sending correctly would be setting the date-triggered profile property (EmailAutoStartDate) on your test profile to be the next day of the current date. For example, since today is 6/21/2022, I would set it to be 6/22/2022. When the next day comes around, at 8:30am, the test profile should automatically be queued up in this flow and waiting in the 105 day time delay. You could confirm this by seeing that the test profile is scheduled in the waiting status for the first email in its flow analytics report and in the test profile’s message history (top right of a contact’s profile) under their scheduled messages. 

David

Hey @David To

 

Thanks for your reply. 

I did test this as shown in my previous screenshot but I share it below for convenience as screenshot 1.

 

EmailAutoStartDate is 1st March 2022

The first delay is 105 days to bring it to 14 June with 0 emails waiting, review, delivered and skipped

The 2nd delay is 1 day to bring it to 15 June with 0 emails waiting, review, delivered and skipped

The 3rd delay is 1 day to bring it to 16 June with 0 emails waiting, review, delivered and skipped

 

I tested for 3 consecutive days but the day check did not even trigger once as per the quote “Klaviyo checks if someone qualifies for a flow daily via a check that runs a full day in advance.” in https://help.klaviyo.com/hc/en-us/articles/360054240252 

 

I have 2 questions here:

  1. Why did it not trigger and populate my flow
  2. If I change flow trigger to “Repeats Monthly” will this auto-populate the flow on the 1st of every month?
  3. In screenshot 2, I have added the first delay to 121 days to meet the target date of 30th of June which theoretically should not be auto-populated but the next 2 ones should be auto-populated as the flow trigger has been set to “repeats monthly” on the first of July. Is that correct?

 

Screenshot 1:

 

Screenshot 2:

 


Sorry if this is a silly question, but why do you want to create an annual email flow instead of just scheduling annual email campaigns to send on specific dates like Jan 1, Mar 8 etc.?


Sorry if this is a silly question, but why do you want to create an annual email flow instead of just scheduling annual email campaigns to send on specific dates like Jan 1, Mar 8 etc.?

Because I need this automated for 26 events at same dates. Campaigns would take my time for setting this up every year. 


Sorry if this is a silly question, but why do you want to create an annual email flow instead of just scheduling annual email campaigns to send on specific dates like Jan 1, Mar 8 etc.?

Because I need this automated for 26 events at same dates. Campaigns would take my time for setting this up every year. 

Got it I see!


Reply