Collect Subscribers' Birthdays



Klaviyo can accept a custom birthday field in a signup form which can take day, month, and year input fields and combine them inside Klaviyo as one date property. This requires the following:

  1. Adding Birthday as a value in your form's $fields hidden input.
  2. Adding a block of code to your form for the date input selectors.

This guide walks through these two steps, and then covers using the Birthday field in Klaviyo.


Check out our guide on adding custom fields for a general overview of adding custom fields.

Add Birthday as a $fields Value

The first step is to add the "Birthday" value to the $fields input of your form. If you already have a value here, you can add Birthday as well, and separate the two with a comma. If this input doesn't exist, you can add it right after the hidden input with your list ID.

<input type="hidden" name="$fields" value="Birthday">

Add Birthday Selector Fields to Your Form

Next, add the code below inside your form to add the birthday selectors. Note that the value for birthday_month options must be integers, but the label for those values can be text.

<div class="klaviyo_field_group select-date-widget">
 <label for="klaviyo_birthday_controls">Birthday</label>
 <div class="klaviyo_birthday_controls">
    <select name="Birthday_month" >
      <option value="1">January</option>
      <option value="2">February</option>
      <option value="3">March</option>
      <option value="4">April</option>
      <option value="5">May</option>
      <option value="6">June</option>
      <option value="7">July</option>
      <option value="8">August</option>
      <option value="9">September</option>
      <option value="10">October</option>
      <option value="11">November</option>
      <option value="12">December</option>
   <select name="Birthday_day" >
     <option value=""> </option>
     <option value="1">1</option>
     <option value="2">2</option>
     <option value="3">3</option>
     <option value="4">4</option>
     <option value="5">5</option>
     <option value="6">6</option>
     <option value="7">7</option>
     <option value="8">8</option>
     <option value="9">9</option>
     <option value="10">10</option>
     <option value="11">11</option>
     <option value="12">12</option>
     <option value="13">13</option>
     <option value="14">14</option>
     <option value="15">15</option>
     <option value="16">16</option>
     <option value="17">17</option>
     <option value="18">18</option>
     <option value="19">19</option>
     <option value="20">20</option>
     <option value="21">21</option>
     <option value="22">22</option>
     <option value="23">23</option>
     <option value="24">24</option>
     <option value="25">25</option>
     <option value="26">26</option>
     <option value="27">27</option>
     <option value="28">28</option>
     <option value="29">29</option>
     <option value="30">30</option>
     <option value="31">31</option>
 <input type="hidden" name="Birthday_year" value="2015" />

This code will collect a month and day on your form, but automatically assigns the year 2015 to the date. This is because when sending birthday emails, you will likely only need to leverage the Month and Date. 

If you would like to collect a birthday year as well, you can change the birthday_year input to a select element with the years you want to use as options. Adding a year selector is not important for Klaviyo, as when you create a segment for someone's current birthday Klaviyo will only look at the month and day, but if you would like to collect a subscribers birthday year as well you can. To update the above code so that a subscriber can select a year, you can replace the hidden Birthday_year line of code with this:

<select name="Birthday_year" >  
   <option value=""></option>  
   <option value="2015">2015</option> 

This will give the options of no value or 2015. To add more year options, it will look like this:
<option value="2015">2015</option> fields for the years that you want to allow subscribers to choose from.

lt;select name="Birthday_year" >  
​   <option value=""></option>  
   <option value="1990">1990</option>
   <option value="1991">1991</option>
   <option value="1992">1992</option>
   <option value="1993">1993</option>
   <option value="XXXX">XXXX</option>

Using the Birthday Field in Klaviyo

If your form is properly configured to collect birthdate information, when your form is submitted, these two dates will be combined into one Birthday field. This field will be added to Klaviyo as a custom property and the Birthday property will be added to each subscriber's Klaviyo profile.

You can then create a segment using Properties about someone > Birthday > day is today. Make sure that the Data Type (seen on the far right) is set to Date.


This segment will auto-populate each day with all contacts that have a birthday on that day. You can then trigger a Birthday Flow off this new "Birthday is Today" segment.

When it's someone's birthday, he/she will populate in this segment and get queued up for your Birthday Flow. Sending your subscribers a Happy Birthday message and discount is a great way to build brand loyalty!

Was this article helpful?
1 out of 2 found this helpful