How to Send Birthday Campaigns with Pardot

Share this article...

Birthday campaigns are a way marketers can touch prospects on their special day; even just a simple greeting with a discount makes an impact. It’s the unexpected things you do that gets your brand noticed.

Question is: how can you fully automate this process? This has been on my mind, as I just celebrated my birthday this past weekend, so I wrote this post to walk you through the set up. You will learn how to get the data into the correct format, and build the Pardot automation that will drive the celebratory messages.

Note on Pre-requisites – before we start, I am assuming that you have a birthdate field in Salesforce already set up.

Step 1: Transform Birthdate to Birthday

This first step will use Salesforce automation to turn the birthdate (the actual day they were born), to their birthday (the day and month, this year).

Birthdate is a standard field on Contacts.

First, create a new custom field on the contact object. This custom field needs to have a field type of ‘date’.

Call it ‘Birthday’ or ‘Next Birthday’.

On Step 4 of the field create wizard, deselect all the page layouts listed. You don’t need to add the field to any page layouts, because it is only an operational field – for behind the scenes work.

Now, open up Process Builder.

Before you go any further – if you are not the Salesforce Admin, check in with your Admin about creating this process. It is best to combine processes wherever possible, especially as Salesforce can get overwhelmed when trying to execute multiple processes at once.

Here is what I named my new process. For “The process starts when*” dropdown, select ‘When a record changes’:

Once you’re into the Process Builder, click ‘+ Add Object’. The sidebar will appear.

  • Select ‘Contact’
  • Start the process = “when a record is created or edited”
  • Select the checkbox in the advanced collapsable section

Click ‘+ Add Criteria’. The sidebar will appear.

  • Criteria Name should be descriptive, for example: “Change Birthdate – current year”*
  • Criteria for Executing Actions = “Conditions are met”
  • Set Conditions, click ‘Find a field’

*you will see why later!

A window will appear, where you need to search for the birthdate field, then click ‘choose’.

Once you have returned to the main screen, select the following:

  • Next to Birthdate: ‘Is null’ — Boolean — True
  • Click ‘Find a field’, and select the ‘Birthday’ or ‘Next Birthday’ field you created earlier.
  • Next to Birthday/Next Birthday: ‘Is null’ — Boolean — True
  • ‘Find a field’, and select the ‘Birthdate’ once again.
  • Next to Birthdate: ‘Is changed’ — Boolean — True

It should look like the below images:

  • Conditions, select “Customize the logic”
  • Paste this into the Logic box that appears below: (1 AND 2) OR 3

What you have just told Salesforce to do is take action when:

  • The contact has a Birthdate*, but the contact has no Birthday (*Note the double negative!)
  • Or, when the Birthdate is changed

This is the finished product:

Let’s get to the action!

Click ‘+ Add Action’. The sidebar will appear.

  • Action Type = “Update Records”
  • Action Name = “Update Birthday” (or anything you fancy)
  • Record Type = “Select the Contact record that started your process”


  • Criteria for Updating Records = “No criteria—just update the records!”

Scroll down to the “Select and Define Action” section.

  • Click ‘Find a field’, and select the ‘Birthday’ or ‘Next Birthday’ field you created earlier.
  • Type = Formula
  • Click ‘Build a formula’. The formula editor will appear. Copy and paste the below into the box.
  • Finally, click ‘Use this formula’, then Save.

IF (AND(MONTH([Contact].Birthdate)=2,DAY([Contact].Birthdate)=29),

IF (OR(MOD( YEAR(TODAY()), 400 ) = 0,AND(MOD( YEAR(TODAY()), 4 ) = 0, MOD( YEAR(TODAY()), 100 ) != 0)),

IF (DATE(YEAR(TODAY()), 2, 29) > TODAY(),

DATE(YEAR(TODAY()), 2, 29),

DATE(YEAR(TODAY())+1, 2, 28)


IF (DATE(YEAR(TODAY()), 2, 28) > TODAY(),

DATE(YEAR(TODAY()), 2, 28),

IF (OR(MOD( YEAR(TODAY())+1, 400 ) = 0,AND(MOD( YEAR(TODAY())+1, 4 ) = 0, MOD( YEAR(TODAY())+1, 100 ) != 0)),

DATE(YEAR(TODAY())+1, 2, 29),

DATE(YEAR(TODAY())+1, 2, 28)




IF (

DATE(YEAR(TODAY()), MONTH([Contact].Birthdate),DAY([Contact].Birthdate ))>TODAY(),

DATE(YEAR(TODAY()), MONTH([Contact].Birthdate),DAY([Contact].Birthdate )),

DATE(YEAR(TODAY())+1, MONTH([Contact].Birthdate),DAY([Contact].Birthdate ))



NB: you will need to add the name of your custom field, which may be different to mine above! Search for your field name using the ‘Insert’ boxes on the formula editor – you can see this highlighted in the image above.

Note on Leads: remember I said Birthdate is a standard field on Contacts? If you want to roll this campaign out to your Lead database too, then there’s an extra step involved to create the Birthdate field for leads.

Step 2: Test the Birthdate to Birthday Automation

Go to a test record, insert or change the birthdate, and watch the birthday field populate when saved.

Step 3: Create & Map a Pardot Custom Field

In Pardot, name the field and map it to your Salesforce Birthday field. When you reach Sync Behavior, chose If Pardot and Salesforce values differ when data sync occurs: Use Salesforce’s value; this is because the Salesforce formula will be responsible for changing the birthday date, year by year. Finally, make sure you select Date type – this will open up the correct Pardot automation choices in the next step.

Step 4: Create the Segment

By using an Automation Rule, you can single out anyone with a birthday today (the criteria), and send them the birthday email (the action).

An Automation Rule is my preferred option, because you can set the criteria and action in one place. Here is how the criteria should be set:

Match all:
Prospect custom field — [Birthday] — days ago greater than or equal to — 0
Prospect custom field — [Birthday] — days in future less than or equal to — 0

This is telling Pardot to include anyone whose birthday date is less than 1 day away, and less than 1 day ago – in short, today.

If you want to make your birthday campaign into a longer sequence of emails, create a dynamic list using the same criteria (image below). Later, you can use this as the starting point of an Engagement Studio program.

Step 5: Add the Email Automation

The next section on the Automation Rule is the Action section. For this one-shot email, we can use the ‘Send prospect email’ action. Note that your email has to be an email template, otherwise it will not show up to select.


This post has taken you through how to build a birthday campaign in Pardot, step-by-step. You will have fully automated this process, including getting the data into the correct format, and build the Pardot automation that will drive the celebratory messages. Perhaps after this post is published, Pardot prospects all over will be showered by birthday messages!

Credit to Lara Black for her answer on the Pardot B2B Marketing Automation Trailblazer Community Group, which inspired this post.

Leave a Reply