How to automate birthday emails based on a past Date of Birth property in HubSpot?

Hi everyone,

I’m facing a common situation and I’d like to get your advice on the cleanest way to handle it in HubSpot (as of 2025).

:backhand_index_pointing_right: Context:
I have a “Date of Birth” property on my contacts.
This property stores the real year of birth (e.g., 1965, 1982, 1995), so the dates are obviously in the past.

My goal is to create a workflow that will automatically send an email to clients on their birthday.


Problems I’m encountering:

  • I can’t trigger a workflow directly based on the Date of Birth, because the year is old.
  • I want to avoid simply adding 365 days, because leap years could cause issues.

Important details:

  • I have HubSpot Marketing Enterprise
  • I have access to calculated properties
  • I want to create a “Next Birthday” property that updates automatically every year.
  • Then use that property to trigger an automated birthday email.

My precise question:
What is the cleanest and most reliable method today to build this “Next Birthday” field automatically, avoiding leap year issues, using only HubSpot native tools (workflows, calculated properties, etc.)?

Thanks a lot to anyone who can share advice, best practices, or examples :folded_hands:

Hi @RandyPat,

I think you’re overcomplicating this :slightly_smiling_face:

I’d argue there is no need for a “Next birthday” date property considering the above.

Best regards!

Hi Karsten (always the first to reply this is insane !),

First thanks as always !

Is this gonna work with these dates properties ?

Best regards

@RandyPat it should, yes :slightly_smiling_face:

Debbuging tool is saying :
No enrollment conditions are defined, so the information form cannot start automatically. Please add enrollment conditions or try testing the manual start.

But the birthday date is today (date de naissance).

I’m gonna wait a bit maybe it’s gonna trigger in a while :confused:

@RandyPat if the birthday is today, enrolment might not catch the contact anymore as the date is technically in the past (e.g. last midnight). The workflow test feature didn’t work when I last tested annual enrolment but it should work under real conditions. Try a contact with birthday tomorrow (turn workflow on and limit enrolment to just this one contact), and wait for tomorrow :slightly_smiling_face:

Hello Karsten,

Thanks again for your help.

I now have the full answer thanks to the support​:tada:

This might interest you

Best regards

@RandyPat thanks for following up, yes, you need to specify “Date of birth is known”, not sure how I missed this, my apologies.

The most straightforward way would be a property for the birthday on the contact to then send a notification each year on that date

Hello Karsten,

Unfortunately that didn’t work.

I tried few contacts with different days as birthdays, one yesterday and one today.

(I was waiting for 17h today to confirm)

Looks like it’s more complex than we thought or I’m doing something wrong.

Thanks for trying

@RandyPat this should be working, see here: https://knowledge.hubspot.com/workflows/use-based-on-a-schedule-workflow-enrollment-triggers?hubs_content=knowledge.hubspot.com/workflows/set-your-workflow-enrollment-triggers&hubs_content-cta=Based%20on%20a%20schedule%20enrollment%20triggers

If it isn’t, then I’d recommend reaching out to HubSpot support for troubleshooting.

Best regards!