I’ve barely kept the lights on around here in the past few years, but I have noticed I got a few comments asking about checkbox fields in Pardot. And in everyone’s defense I said that they would get a whole post, so…here we are.

Checkbox basics
Before we bring Pardot into the mix, let’s just consider the humble checkbox. A box. That one may check or uncheck. We call this a boolean because it has only two potential outcomes — true or false, checked or unchecked.
Are you a robot? If you are NOT a robot, check this box.
Did you read those terms and conditions? Yes? Then check this box.
True or false.
And in Salesforce (not to mention most other similar platforms), that is exactly how it is used. A checkbox field will have a field label and can carry either a true or false value.


Why this is important
I have done a lot of data migrations, and I am still doing a lot of them, and one of the most common data transformations that I have to do is turn a series of Yes/No values to TRUE/FALSE, in order for Salesforce to accept said values. To be fair, a 1/0 would also work, but I find it easier to share with clients with the true/false.
This is important.
Salesforce will ONLY accept a 1 or true to check a box. A blank value, a 0, or false will leave the box unchecked. There is no other value accepted during an exchange of data from another system.

And then there’s Pardot…
To be fair, it’s not just Pardot we’re talking about here. Most form tools take the humble single checkbox and turn it into a selection-type question: select all that apply!
For each value that you want to include, you check the box next to it.

And more specifically, with Pardot and these other forms, a checkbox implies that you may select MULTIPLE values. (Whereas a radio button selection implies a single option must be selected from the available values.)
And another thing
All of this in and of itself is good to know, but there’s one more piece to remember: Pardot and Salesforce communicate via API.
APIs have their own parts of speech, just like we do — they’re called data types, and there are only a few of those that are used: strings (text), numbers (a couple of types), boolean…and picklists are not one of them.
So when Pardot and Salesforce speak, they don’t have a way to share a picklist because the API has no concept of what that is.

Putting it all together
So we have Pardot/form tool that is using checkboxes to effectively toggle a series of selections on or off trying to potentially send those various values to a single checkbox that accepts only TRUE or FALSE.
It doesn’t work.
All of this is to say that while they have the same name, the data types themselves are in fact different. The checkbox field in Pardot lines up much better with something like a multi-select picklist (MSP) in Salesforce.
Or you can use all of this combined knowledge to your benefit.
Option 1: Send TRUE/FALSE values
The first option you have is to create a single checkbox question instead of a multi-select question. For instance “I would like you to contact me” — that’s a simple, yes or no question.
For something like this, you would create your new custom field, and you would create a value option called “true.” (Remember: if there is NO value sent to a checkbox, then it’s false.)

When you want to include that field in a form, you add it, and in the settings for that field on that form, you set the display value as a blank value. Now when someone looks at the form, they see the field label and a checkbox. They check the box, the value sent to Salesforce is “true,” so the synced field is checked.

Boom.

Option 2: Sync your Salesforce checkbox to a Pardot text field
Since Pardot treats the various values as text values, then it’s perfectly acceptable to just…send text values to Salesforce.
The downside here of course if that you lose the more aesthetically pleasing UI of a picklist for your Salesforce users. And reporting could be difficult, if you need to pinpoint certain selections. But you don’t have to worry about sync errors, which is pretty nice.
Option 3: Sync your Pardot checkbox to a Salesforce MSP
I can already hear some admins grinding their teeth, but the fact remains — a checkbox field in Pardot is closest to a multi-select picklist in Salesforce. You could always just embrace that fact.
Or again — use a text field! Let Pardot send strings upon strings of letters to open text field in Salesforce and just don’t report on it if you can help it.
Option 4: Don’t use checkboxes on forms
This is the simplest option out there — checkboxes themselves are fairly easily managed directly. The complications come when you start using them on forms, getting text values that don’t match. So you could avoid it all together and simply manage checkbox data through other means, like automation or manual entry.
That’s if you even really, truly need to use one.
Honestly, though…
This is all good stuff to know, but it also may never come up for you! Like anything else technology, your best bet is to try out a few different options, and find the solution that works best for you and your use case.
But hopefully this can help when you start down that journey.