Add Birthday to profile

  • 19 November 2020
  • 8 replies

Badge +2

I have created a signup form on my site, asking for the customer’s email and birthday. However, I cannot figure out how to import the birthday into a usable field (i.e. to send birthday emails).

I’ve tried searching and have come up empty.


Best answer by mike.hoang 19 November 2020, 17:02

View original

8 replies

Userlevel 3
Badge +5

Hi there,

Within your signup form, you’ll want to ensure that you’re using a date input to collect birthdays. Once you do that, you’ll have the option to map the date that customers enter, to a custom profile property. This property should not exist by default so you’ll want to create your own property and label it Birthdate. From there, anybody who signs up from your form and enters their birthday should have the Birthdate custom profile property. 

This new Birthdate profile property should be the one that triggers your birthday flow. 

I hope that helps!

Badge +1


Can anyone please help me with this flow? I did all the above and still can’t create a birthday flow. The trigger is not there. I already added the custom property to at least one contact so it should work but I can’t understand why it doesn’t. I read all the tutorials, watched all their videos and YouTube guides etc and no luck :(

I spent an entire day on this and it is so frustrating. I’m still on the free plan as I want to test Klaviyo as much as I can and see if it is the right one for us before going on a paid plan. Thanks in advance! Julian 

Userlevel 7
Badge +60

Hello @Julian_tln,

Some common reasons why you may not be able to see a specific date-profile property available to set up your birthday flow is often either caused by the date being collected not being in the correct data format or if there happens to be other property values being collected under this property that is not in a date format that may be contaminating this data. 

I’ve elaborated further on these two points in a similar Community post which i’ve included below:

To summarize, you would only be able to create a date triggered birthday flow so long as the birthday value you are collecting is in an accepted date format as outlined in the Accepted Date Formats article. If you are collecting this birthday value as anything outside of one of the accepted date formats, Klaviyo will recognize this value as text data type instead and therefore your birthday property would not be available to create your date property triggered flow. Similarly, if any data points within this birthday property were to be collected in an unacceptable date format, this would contaminate the data set and cause all the data points to be recognized as a text data type as opposed to the desired 

I hope this helps!


Badge +1

Thanks, I already sorted this out after finding those posts…it took such a big amount of research and work just to make a simple ‘Happy Birthday’ flow work. It is a bit frustrating to be honest and I’m not the only one who struggled with this apparently. Why does it happen in the first place? What contaminates the data like that as I’ve done all the correct steps like choosing a date field in the signup form and creating the Birthday property etc. The birthday value we are collecting has to be in an accepted date format I get that but then why do we have the option to collect it for example as DD/MM (that’s how I set it up in the signup form when I started because I didn’t want to collect the year just the day and month as most people won't like to share their age)?? There must be a way to avoid this 

I’m sure you can do something to avoid this scenario right?  

 I’ve been pulling my hair off and nearly deleted my Klaviyo account today because of this! :tired_face:


Userlevel 7
Badge +60

Hello @Julian_tln,

I do apologize on the frustration you faced when creating your birthday flow. I am however, glad to hear that you were able to resolve the issue and get it set up!

When using a Klaviyo built signup form to collect your birthday property, so long as you are using the Date block within the form to collect this property, all available formats will be understood and recorded in a date data type. This will include the MM DD and the DD MM formats without having to collect a birth year from your subscribers. Only using a date block through a Klaviyo signup form will allow you to bypass the requirement of the year input unlike the formats found in the Accepted Date Formats article. This is further detailed in the Date Block subsection of the Understanding Signup Form Input Blocks article: 

Choose how you would like subscribers to input particular date values. All submissions will be recorded as a date data type. If you do not prompt subscribers to choose a particular year, the year value will default to 2016. You have several options for how subscribers can input dates:

  • MM DD
  • DD MM

Data contamination when creating a date triggered flow can often times occur due to:

  • The date property is being synced from a third party source or tool that may not be sending this information in the correct format
    • Example: A third party app sending this information /property to Klaviyo but without the leading 0 in certain months or days
  • This property was already previously in use and had values that were not in an accepted date format
    • Example: The property was previously used for something else or was collecting the property in a different method such as if the date was spelled out (June 26) as opposed to just being collected in numerals
  • An unaccepted format was collected for this property through testing or manually application to a profile
    • Example: If through testing or manually adding this property to a profile, you are not adhering to one of the accepted date formats

The last possibility is especially common since when manually adding the property to a profile, you are provided a general input field. If the value entered for the property does not align with any of the accepted date formats such as missing leading zeros, missing either the slash (/) or dash (-) separators, not including a year, etc., Klaviyo will automatically recognize this field as a text data type. Therefore, even if you continue onwards to create a signup form using a date block to collect your birthdays, the property would already be contaminated from the start as the manually entered profile property would be in a text format causing Klaviyo to recognize all new collections being mapped to this property as a text data type. 

Have a great day!



Badge +1

Hi @David To 

  1. I tried to import a CSV file birthday contact list to our existing profile in Klaviyo. We only have birthday data with format “Month/Date”. (please see the template below)

The data couldn’t be imported, its said mismatched data type. Check that the correct type was selected for each column during field mapping. fix the issue. 

Can you please advise on this? what CSV template should I use?

  1. Also, we just want to update the contacts that are already in Klaviyo, how to make sure not to import any new contacts there? (we are taking the data from our MailChimp, some contact that we imported in there is not in the Klaviyo)

Thank you so much.


Userlevel 7
Badge +61

Hi @Rika,

Thanks for sharing this with us.

On your first question, we have a great thread that speaks to this below:

This involves first removing all of the empty column headers in the .csv file. Also, ensure during the upload that you are using the “string” data type on the mapping page. Here is a screenshot of an example mapping page:

On your second question, we will not create duplicate profiles if you upload a profile that already exists in Klaviyo. We will simply update the profile with whatever data you have contained in the .csv file. For example, if profile A exists with no birthday in Klaviyo, and you re-upload profile A’s email address with their birthday in the .csv, we’ll simply update the birthday on the profile, we will not create a new profile.

I hope that helps answer the question.


Badge +4

I agree with Julian, this is still such a painful frustrating process, I’m a building and still struggling to get this to work for a new client, even though I’ve done it before.

Pleaseee just make it easy, this is simple ecomm marketing, we should be able to whip it up in under 30mins