# Birthday

Source: https://kirora.io/docs/guides/journeys/recipes/birthday

Send each contact a birthday note every year at 9:00 in their time zone, starting from the Birthday template.

A birthday journey sends each contact a note on their birthday, every year, without you scheduling anything. The **Birthday** template sends one email at 9:00 on the day, in each contact's time zone.

## Who it's for

Any business that holds its customers' birthdays: restaurants, salons, shops, gyms and loyalty programmes. For example, Juniper Kitchen, a fictional restaurant group, sends a free dessert on each diner's birthday.

## What you need first

- A date attribute called `birthday` on your contacts, written `YYYY-MM-DD`, or `--MM-DD` when you don't collect the year. It can arrive by import, from a signup form field, by hand or from your app. See [Attributes](https://kirora.io/docs/guides/contacts/attributes). This works on every plan.
- A time zone on your contacts, if you want 9:00 to be their local time. Contacts without one get it at 9:00 in your workspace's time zone.
- A verified sending domain. See [Set up a sending domain](https://kirora.io/docs/guides/getting-started/set-up-a-sending-domain).

## 1. Start from the template

Go to **Journeys**, choose **New journey**, then under **Start from a template** and **Dates**, choose **Birthday**.

## 2. Check what the template creates

| Part | As the template sets it |
| --- | --- |
| Trigger | **A date arrives**, **Date attribute** `birthday`, **Repeat** **Every year**, **Days from the date** 0, **Time** 9:00 |
| **29 February in other years** | **Use 28 February** |
| Step 1 | **Send message**: *Happy birthday*, with the contact's first name, a short note from your team |
| Exit rules | None |

Each contact enters at most once a year.

## 3. Change it for your business

- **Add your treat.** The note's third paragraph is a placeholder that reads *Add your own birthday treat here*, and nothing stops it going out as it is. Replace it with your gift, offer or thank-you before you turn the journey on.
- **Your attribute's name.** If your birthdays are stored under another name, such as `date_of_birth`, change the **Date attribute**.
- **Send earlier.** To give people time to book or order, set **Days from the date** to `-7` for a week before. Then add a **Wait** of 7 days and a second email on the day itself.
- **An offer that expires.** Give a code that works for the birthday month, and say so in the email.
- **Push.** If your app has push notifications, change the step's **Channel** to **Push**, or add a push step as well.
- **Who's included.** To send only to members of your loyalty programme, add a **Contact filter** as the first step.

## 4. Measure it

- **Clicks** on the email, on the **Performance** tab under **Email outcomes by step**.
- **Redemptions and revenue**: add a conversion goal on your purchase event, with **Counts within** set to cover the offer, such as 14 days. Available on Starter and above. See [Conversion goals](https://kirora.io/docs/guides/journeys/journey-results#conversion-goals).
- **Lift**: add a **Random split** before the email with one empty path as a holdout, then compare conversion rates. See [Random split and holdout](https://kirora.io/docs/guides/journeys/journey-results#random-split-and-holdout). Keep the holdout small, since everyone in it misses their birthday note.

## Common pitfalls

- **Dates in the wrong format.** A birthday such as `18/04/1990` stored as text isn't read as a date. Store it as `1990-04-18` or `--04-18`.
- **Missed birthdays.** Turning the journey on sends nothing for birthdays that have already passed this year. Those contacts get their note next year.

## Next steps

- [Journey recipes](https://kirora.io/docs/guides/journeys/recipes/overview) — every template and what it needs
- [Attributes](https://kirora.io/docs/guides/contacts/attributes) — store dates on your contacts
- [How journeys work](https://kirora.io/docs/guides/journeys/how-journeys-work#date-triggers) — every date trigger setting