One of the tricky and little-known-things about Pardot is how the system handles blank values.
If you’ve never had a reason to, you probably haven’t thought about it. But when it DOES come up — here’s what you need to know to be ready.
Prepare yourself to get way down in the weeds here. Waaaay in the weeds.
The Core Principle Behind the Quirks in Handling Blank Values: Pardot Likes Data
Pardot treats data the way 8-year-old Andrea treated her Animorph and Harry Potter book collection. Ultra dorky hoarder status.
Pardot’s mission in this world is to help you get more data on prospects. It wants to capture their activities, their preferences, their intent, and use progressive profiling on forms to continually capture more data points on a prospect.
Philosophically, Pardot’s posture is that “some data is better than no data.” Which sometimes makes sense. Other times not so much.
A Quick Refresher on Sync Behavior
When you create a custom field or edit a default prospect field, you have several options on how this should interface with Salesforce:
For example, let’s say a prospect downloads a whitepaper via a Pardot form and inputs the Job Title “Marketing Manager.” This form submit populates the relevant fields in Pardot, and then syncs to Salesforce as a lead when it is given an Assigned User.
Then, let’s say the prospect comes back and submits a different form with the Job Title “Marketing Director.” (Because they went and got themselves promoted with all of the knowledge bestowed upon them by your whitepaper, obvi.)
If the Sync Behavior for Job Title is set to “use Salesforce’s value,” when the Pardot record looks at the Salesforce record as sees a mismatch, Salesforce will always wins. So Salesforce’s old value of “Marketing Manager” will overwrite Pardot’s value of “Marketing Director.”
If it’s set to “use Pardot’s value” – you guessed it, Pardot always wins. And if it’s set to “Use the most recently updated record” it syncs bi-directionally and takes the latest and greatest data points from the last modified record.
In most cases, setting sync behavior to the most recently updated record makes the most sense. The exception would be any values that drive other processes in Salesforce that need to be controlled or protected.
Sync Behavior Doesn’t Matter with Blank Values – Some Data Always Beats No Data
Regardless of how sync behavior is configured on your fields, though, some value (any value) will always overwrite a blank value.
Continuing with the above example, if a prospect fills out a form and skips the Job Title field – Pardot isn’t going to delete the info it has on that prospect. It’s going to see that Salesforce still has data, and fill the blank field with what Salesforce has.
The same is true even if a Pardot or Salesforce user does the deleting. Say that the prospect fills out the form with “Mickey Mouse” as the job title, and you delete that from Salesforce… Pardot will pull a Taylor Swift, see a blank space, and write you a name.
In non-song lyrics terms, this means Pardot will repopulate the Salesforce title field with “Mickey Mouse.” If you really want to get rid of that data, you have to delete it from both systems.
An Exception: Checkboxes Are Weird, Since They’re Not Really “Blank”
As described above, if you clear a text, picklist, multiselect, or number field, etc. — Pardot will re-fill it with a value from Salesforce.
If it’s a checkbox in Salesforce though, it’s a little bit of a different ballgame. A blank checkbox is set to “false,” which is different than being empty. So if you uncheck a checkbox in Salesforce that’s mapped to a Pardot radio button, the “false” value is synced back to Pardot.
An Exception to the Exception: Do Not Email Related Fields
Ignore that last section for all of the various fields related to email opt out, do not email, hard bounces, etc. They operate in their own alternate universe. This is going to be the topic of a future blog post all its own.
The short story: if you try to opt someone back in from Salesforce by just clearing the Email Opt Out checkbox, you will fail. This is the exception to the exception about syncing cleared checkboxes.
Blank Values & Pardot Imports
So if you’re importing a file into Pardot with a bunch of blanks, what happens?
You will have the opportunity to indicate at the field level whether you want that to overwrite existing data:
But blanks don’t overwrite existing data. Even with the checkbox checked. Some data beats no data, again.
Blank Values & Automation Rules
You may be acquainted with the “Clear Prospect Field Value” in automation rules and completion actions:
If you’re thinking:
“Oh well I’ll use the ‘clear field value’ action in an Automation Rule to clean this house once and for all.”
…not so fast.
If you use an automation rule to wipe a field value, but the Salesforce field still has data, the same behavior takes place. Some data beats no data, again.
But If This Really Doesn’t Work for You, You Can Change It
If you have a legitimate use case to sync blank data, you have options:
1. Unverify the connector & do your clean up
If you have a set of records that you want to clear values from, you can temporarily deactivate your connector, erase the data in Pardot, erase the data in Salesforce and reverify the connector.
[PS – If you’re using Data Loader on the clean up for the Salesforce side, note that you have to enable the ability to ‘Insert Null Values’ on import.]
2. Get support to change this setting
If you do want blanks to be able to sync, you can change your Salesforce connector settings to allow this. This has to be enabled by support. It’s a global setting though – you can’t pick field by field where you want to allow blanks.
A few things change when this happens:
- When a Salesforce field is changed from ‘something’ to blank, the Pardot field is changed to blank.
- When a Pardot field value is changed to blank, it stays blank. It does not re-sync the value from Salesforce, but it doesn’t wipe out the Salesforce value either. If the Salesforce value is later changed to something else, it resumes normal sync behavior.
What the Blankety Blank Blanking Blank?!
This is nuanced. Confusing. Kinda sorta documented.
If you’re thinking through a use case that involves blank values, TEST IT. Then test it again, and think carefully about your options to work within the system constraints to acheive what you what.
Do you have questions or examples? More Taylor Swift lyrics to share?
Let’s hear it in the comments!