How to Send Birthday Campaigns with Pardot (Account Engagement)

Pardot Birthday Email

Birthday campaigns touch prospects on their special day – a simple greeting, perhaps with a discount. This personal, and unexpected interaction gets your brand noticed. Even in B2B marketing it’s a worthwhile exercise, after all, business buyers are human, too.

How can you fully automate birthday campaigns using Pardot (Account Engagement)? This guide will teach you how to get data into the correct format, and build the Pardot (Account Engagement) automation that will deliver this moment of celebration.

Step 1: Transform Birthdate to Birthday

Note: There’s an assumption that you have a birthdate field in Salesforce already set up, and populated to some extent.

Birthdate is a standard field on the Salesforce Contact object. We’ll use Salesforce Flow to turn the birthdate into their birthday: The actual day they were born → the day and month, this year.

  • Create a new custom field on the Contact object, named ‘Birthday’ or ‘Next Birthday’. This custom field needs to have a field type of “date”.

On Step 4 of the field setup, you decide which page layouts this field should appear on. While testing, keep these selected. You can come back later to deselect all the page layouts listed because this is only an operational field (for behind the scenes work).

Note on Leads: Remember I said Birthdate is a standard field on Contacts? If you want to roll this campaign out to your Leads too, then create a custom Birthdate field for Leads, and repeat Step 1 for Leads.

Step 2: Configure the Flow Start

Before we go any further, if you are not the Salesforce Admin, check in with your admin about creating this process. Automation should be combined into a set of Flows for each object; you don’t want multiple processes firing at once, potentially clashing with each other or erroring out.

Note: The tutorials we are showcasing are built in developer edition orgs with limited data and only a few custom automations. Ensure that you evaluate your existing processes properly before building new ones, including both declarative automations and custom Apex. For Flow specifically, consider the recommended best practices when it comes to the number of record-triggered flows per object.

Now that we’re past the initial steps, navigate to Setup and into Flows. I will create a new Record-Triggered Flow for this example. We will choose Contact as the object triggering the automation, but keep in mind that you could also do this with Leads, or even Person Accounts, if required.

Make sure to set the entry criteria and logic correctly, as that will determine if the record being created or updated will make the automation run or not.

Since we are using information from the Contact record to update another field on the same record, thus the Flow will be optimized for Fast Field Updates and will run before the record is saved.

Step 3: Update Records Element

The next step is to update the custom Birthday field which we just created on the Contact, and for this an Update Records element will do the trick.

As you can see below, as the Flow runs before the record is saved, updating the triggering record is the only option, and it is automatically selected.

As far as the value goes, we need to use a formula which can’t simply be pasted in the Value field. A Resource needs to be created, and we can directly do so from this screen, by clicking on the Value field, then on “+ New Resource”.

The resource should be created as below, with the resource type being formula. Supposing you are using the Birthdate field, you can use the same formula as well:

IF (AND(MONTH({!$Record.Birthdate})= 2,DAY({!$Record.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({!$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}))
 )
)

In the end, the Update Element and the Flow should look like below. Let’s activate the Flow and see it in action!

Note: Within the Update Records Element, you need to add the name of your custom field to be updated, which may be different to mine. Search for your field name by clicking on the field, then Record >, then select the field.

Step 4: Test the Birthdate to Birthday Automation

Either create or just navigate to an already existing test record, insert or change the standard Birthdate, and watch the Birthday field populate. As expected, either upon Contact creation or Birthdate field update, the Birthday is properly populated either with this year’s birthday if the date is in the future, or next year’s if this year’s has already passed.

Alternative Option: Create a Formula field

You can also opt to build a formula field that will show the same result instead of a Flow, directly on your Contact object as well, which will be calculated after the record is saved. The advantage of the formula field approach is definitely the fact that the data will be historically filled in as well, based on Birthdate, as soon as the field is created.

Of course, the formula we used above in the Flow resource will need to be adapted to be used in the formula field, by replacing {!$Record.Birthdate} with just Birthdate.

IF (AND(MONTH(Birthdate)= 2,DAY(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(Birthdate),DAY(Birthdate )) > TODAY(),
DATE(YEAR(TODAY()), MONTH(Birthdate),DAY(Birthdate )),
DATE(YEAR(TODAY())+1, MONTH(Birthdate),DAY(Birthdate ))
)
)

READ MORE:
Formula Fields + Pardot: The Problem and How to Solve It

Step 5: Create the Pardot Custom Field

  1. In Pardot, create a prospect custom field, named ‘Birthday’/‘Next Birthday’ (same as the field you created earlier in Salesforce).
  2. Map the prospect field to your Salesforce Birthday field.
  3. 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.
  4. Select the Date field type. This will give you the correct Pardot automation choices in the next step.

Step 6: Generate 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 (vs Dynamic List) is my preferred option because in one place, you can set the criteria (which prospects to include) and the action (what Pardot should do). Here is the criteria (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 is today (less than one day away, and less than one day ago).

Step 7: Add the Email Automation

On the Automation Rule, the next section 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.

Summary

Birthday campaigns are great to include in all your marketing communications to touch prospects on their special day.

This guide has taken you through how to automate a birthday campaign in Pardot (Account Engagement) with support from Salesforce’s more advanced data transformation tools.

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

 


 

This Pardot article written by: 

Salesforce Ben | The Drip

Lucy Mazalon is the Head Editor & Operations Director at Salesforceben.com, Founder of THE DRIP and Salesforce Marketing Champion 2020.

Original Pardot Article: https://www.salesforceben.com/the-drip/how-to-send-birthday-campaigns-with-pardot-account-engagement/

Find more great Pardot articles at www.salesforceben.com/the-drip/

Pardot Experts Blog

We have categorized all the different Pardot articles by topics.

Pardot Topic Categories

More Pardot Articles

See all posts

 


 

This Pardot article written by: 

Salesforce Ben | The Drip

Lucy Mazalon is the Head Editor & Operations Director at Salesforceben.com, Founder of THE DRIP and Salesforce Marketing Champion 2020.

Original Pardot Article: https://www.salesforceben.com/the-drip/how-to-send-birthday-campaigns-with-pardot-account-engagement/

Find more great Pardot articles at www.salesforceben.com/the-drip/