How to Send Birthday Campaigns with Pardot (Account Engagement)
- January 26, 2023
- Pardot Admin, Salesforce Ben | The Drip
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 ))
)
)
Step 5: Create the Pardot Custom Field
- In Pardot, create a prospect custom field, named ‘Birthday’/‘Next Birthday’ (same as the field you created earlier in Salesforce).
- Map the prospect field to your Salesforce Birthday field.
- 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.
- 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
- Account Based Marketing (ABM) (7)
- Business Units (14)
- ChatGPT / AI (3)
- Completion Actions (5)
- Connectors (10)
- Custom Redirects (4)
- Data Cloud (2)
- Demand Generation (8)
- Dynamic Content (6)
- Einstein Features (12)
- Email Delivery (17)
- Email Open Rates (3)
- Pardot A/B Testing (2)
- Email Mailability (16)
- Do Not Email (1)
- Double Opt-in (2)
- Opt Out / Unsubscribe (14)
- Email Preferences Page (6)
- Engagement Studio (16)
- Industries (1)
- Non Profit (1)
- Landing Pages (9)
- Lead Generation (1)
- Lead Management (13)
- Lead Routing (3)
- Lead Scoring (16)
- Leads (3)
- Marketing Analytics – B2BMA (9)
- Marketing Automation (1)
- Marketing Cloud (3)
- Marketing Cloud Account Engagement (4)
- Marketing Cloud Growth (2)
- New Pardot Features (6)
- Opportunities (2)
- Optimization (2)
- Pardot Admin (64)
- Duplicates (1)
- Marketing Ops (1)
- Pardot Alerts (1)
- Pardot API (2)
- Pardot Automations (3)
- Pardot Careers (12)
- Pardot Certifications (4)
- Pardot Consulting (1)
- Pardot Cookies (3)
- Pardot Custom Objects (3)
- Pardot Email Builder (8)
- Pardot Email Templates (9)
- HML (6)
- Pardot Events (16)
- Pardot External Actions (1)
- Pardot External Activities (4)
- Pardot Forms (29)
- Form Handlers (8)
- Pardot Integrations (20)
- Data Cloud (1)
- Slack (1)
- Pardot Lead Grading (5)
- Pardot Lead Source (2)
- Pardot Lightning (1)
- Pardot Migration (1)
- Pardot Nurture / Drip Campaigns (1)
- Pardot Personalization (3)
- Pardot Profiles (1)
- Pardot Releases (18)
- Pardot Sandboxes (2)
- Pardot Segmentation (5)
- Pardot Strategy (7)
- Pardot Sync (2)
- Pardot Sync Errors (1)
- Pardot Tracker Domains (5)
- Pardot Training (3)
- Pardot Vs Other MAPs (4)
- Pardot Website Tracking (2)
- Reporting (22)
- Salesforce and Pardot (31)
- Marketing Data Sharing (2)
- Pardot Users (3)
- Salesforce Automation (5)
- Salesforce Flows (2)
- Salesforce Campaigns (20)
- Salesforce CRM (3)
- Record Types (1)
- Salesforce Engage (3)
- Salesforce Queues (2)
- Security and Privacy (1)
- Tags (3)
- The Authors (504)
- Cheshire Impact (9)
- Greenkey Digital (51)
- Invado Solutions (37)
- Jenna Molby (9)
- Marcloud Consulting (6)
- Nebula Consulting (60)
- Pardot Geeks (44)
- Salesforce Ben | The Drip (235)
- SalesLabX (3)
- Slalom (4)
- Unfettered Marketing (46)
- Uncategorized (1)
- Website Tracking (2)
- Website Search (1)
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/