If you want to send a birthday email to your customers every year (or for any occasion), it’s a challenge.

Account Engagement (Pardot) doesn’t have an easy drop-down button for annual email sending. 

No worries! You can create a couple of custom fields and copy these Salesforce Flows to make it work in your system.  

How it works

To send an email on every Contact’s birthday, create two Flows in Salesforce.

  • Flow #1- Sets the Next birthday field to the current day (12/1/1980 birthday needs to be 12/1/2023). Creating or editing the Contact triggers the Flow.
  • Flow #2- Resets the Next Birthday custom field to the following year. This Flow triggers on a schedule.

Once the Flows are in place, you need a dynamic list in Account Engagement (Pardot) to unleash the magic.

Custom Fields

First you need to create two custom fields.

  • Next Birthday – Date field
  • Days Until Next Birthday – Formula field (See formula in image below)

Account Engagement custom field next birthday

Account Engagement custom field days until next birthday

 

Flow #1 – Set next birthday field to the current day

This Flow sets the Next birthday field to the current day (12/1/1980 birthday needs to be 12/1/2023). Creating or editing the Contact triggers the Flow.

Account Engagement Next Birthday Flow Account Engagement Next Birthday Flow Account Engagement Next Birthday Flow Account Engagement Next Birthday Flow

Next Birthday Calculation

You need a formula for the next birthday calculation.  Here is the text for the calculation:

 

IF ( MONTH ({!$Record.Birthdate})=2 && DAY ({!$Record.Birthdate})=29,

DATE(

IF(Year(Today())<=Year({!$Record.Birthdate}),Year({!$Record.Birthdate}),

IF(

OR(MOD(Year(Today())+ 4-MOD(Year(Today()),4),400)=0,

AND(MOD(Year(Today())+ 4-MOD(Year(Today()),4),4)=0,

MOD(Year(Today())+ 4-MOD(Year(Today()),4),100)<>0)),

Year(Today())+ 4-MOD(Year(Today()),4),

Year(Today())+ 8-MOD(Year(Today()),4))

),

MONTH({!$Record.Birthdate}),DAY({!$Record.Birthdate})),

IF (DATE (YEAR(TODAY()),MONTH({!$Record.Birthdate}),DAY({!$Record.Birthdate})) > TODAY(),

DATE (YEAR(TODAY()),MONTH({!$Record.Birthdate}),DAY({!$Record.Birthdate})),

DATE (YEAR(TODAY())+1,MONTH({!$Record.Birthdate}),DAY({!$Record.Birthdate}))

)

)

Account Engagement Next Birthday

 

Flow #2 – Resets the next birthday custom field to the following year

This Flow triggers on a schedule at midnight to set next birthday field after a birthday. For instance, if today is the customer’s birthday, tonight the Flow will reset the next birthday to the next year.  

Account Engagement birthday flow

Account Engagement birthday flow Account Engagement birthday flow Account Engagement birthday flow

NOTE: See Next Birthday calculation to add the formula to the Flow.

Dynamic Lists

Now that your Next Birthday fields are correctly populating, create a dynamic list to pull in the Contacts on their birthday. This dynamic list will add the Contact on their birthday, and drop the Contact the next day. Use this dynamic list with an engagement studio program to send a birthday email every year on Contact’s birthday without any manual intervention. (Make sure you set the engagement studio to “Allow prospects to enter more than once.”)

 

account engagement birthday email dynamic list