An issue faced by many marketers using Marketing Cloud Account Engagement (Pardot) is how to find a workaround for dynamic dependent picklist fields and Pardot forms that will reduce sync errors in Salesforce. Specifically, Pardot admins are often looking for ways to collect and sync values from Pardot forms and form handlers to Salesforce restricted picklist fields.
Out of the box, Pardot’s handling of dependencies between fields is virtually non-existent. This leads to sync errors when values passed from Pardot cannot be accepted by Salesforce.
The workaround described below aims to mirror the dependencies between dynamic picklist fields so that values can be passed cleanly to Salesforce without error.
The Challenge: Syncing Dynamic Dependent Picklist Values
Using dynamic dependent picklists in Pardot is a great way to cut down on otherwise lengthy lists of values from which your audience can choose. Here’s an article from Marcos Duran that describes how to set up this use case for dynamic dependent picklists. So how do you sync this data to Salesforce CRM?
Example: Country and State Global Picklists
One very common example of this type of dependency is found between the Country and State global picklists in Salesforce. For example, a country of the United States may only accept values matching one of 52 allowable states, while the country of Canada may only accept one of 13 provinces or territories.
If a Pardot prospect has a country of Canada and a state other than one of those 13 allowable values, a sync error will result — even if the state value matches one of the 52 allowable U.S. states.
Example: Dependencies Between Custom Salesforce Fields
Another common example involves dependencies between custom Salesforce fields. For example, dependencies can exist for product lines and SKU.
In this example, a candy company might sell products that fall into one of 3 product lines:
- Hard Candies
Within the Chocolates product line, available SKUs include chocolate bars, truffles, and hot chocolate. Each SKU can belong to only one product line — in other words, a chocolate bar can only belong to the chocolate product line, and cannot qualify as a hard candy or gummy.
Requirements for Setting Up Dynamic Dependent Picklists in Pardot
For the purposes of this blog, I will focus on the candy company’s use case, described above. The below solution assumes that a prospect can only belong to one Product Line at a time and that a prospect cannot be interested in multiple SKUs within that Product Line simultaneously.
The candy company’s Salesforce org utilizes two restricted picklist fields:
- Product Line (Product_Line__c)
- Data type: Picklist
- Values: Chocolates, Hard Candies, Gummies
- SKU (SKU__c)
- Data type: Picklist – dependent on value selected on Product Line field
- Values: Chocolate Bar, Truffle, Hot Chocolate, Lollipop, Candy Apple, Mints, Gummy Bears, Gummy Worms, Wine Gums
A dependency has been set on the “Product Line” field to control which “SKU” values can be accepted under each Product Line:
Pardot Dropdown Form Fields
The candy company’s marketing team is using a Pardot form to collect new leads. That form collects both “Product Line” and “SKU” values:
Because the prospect fields in Pardot are not dependent on one another, a prospect is able to select any SKU value regardless of the Product Line selected. This is resulting in sync errors when a newly generated prospect tries to sync from Pardot to Salesforce with a SKU value that does not align with their selected Product Line.
The Solution: Custom Fields + Dependent Fields + Engagement Studio Program
To help the candy company solve their data syncing woes, we will use a combination of tools available within Pardot. We will create custom Pardot prospect fields, dependent fields on the Pardot form, and an Engagement Studio program to translate values from one Pardot field to another.
The entire solution should take less than 2 hours to implement.
STEP 1: Create new custom prospect fields in Pardot
Create a new custom prospect field for each of the three “SKU” value subsets. These will be Pardot-only fields and should NOT sync to Salesforce:
- Data type: Dropdown
- Values: Chocolate Bar, Truffle, Hot Chocolate
- SKU2_Hard Candies
- Data type: Dropdown
- Values: Lollipop, Candy Apple, Mints
- Data type: Dropdown
- Values: Gummy Bears, Gummy Worms, Wine Gums
STEP 2: Update your Pardot form to include the above fields
- Edit the existing “Product Line” field on your Pardot form to display dependent fields based on the criteria shown below.
During this step, you can allow Pardot to automatically create the 3 dependent fields by following the prompts provided:
- Edit each of the 3 new “SKU#” dependent fields to display as dropdowns and load in your pre-defined SKU values by clicking the “Load Default Data” button.
- Add a completion action to your form to add prospects to a static list on form submission.
NOTE: You will need to create the static list before completing this step.
- Save your new form — and voila! The new dependent “SKU#” fields will now appear or disappear based on the “Product Line” value selected.
STEP 3: Create an Engagement Studio program
- Create a new Pardot Engagement Studio Program. This program will translate the SKU# values collected via your Pardot form into the SKU values that will sync to Salesforce.
- Edit the program’s “Start” step – add the static recipient list referenced in Step 2 as your “Recipient List.”
- Add a “Rule” step to check for each of the available SKU# values, as below.
Note: based on the candy company’s defined requirements, you will need a total of 9 Rule steps:
- “SKU1_Chocolates” is Chocolate bar, or
- “SKU1_Chocolates” is Truffle, or
- “SKU1_Chocolates” is Hot Chocolate, or
- “SKU2_Hard Candies” is Lollipop, or
- On the YES branch beneath each Rule, add an “Action” step to update the prospect field “SKU” based on the value found on the SKU# field – for example:
- If “SKU1_Chocolates” is Chocolate bar, then change prospect field value “SKU” to Chocolate bar
- If “SKU1_Chocolates” is Truffle, then change prospect field value “SKU” to Truffle
- Add an “Action” step just above the End step on your program to remove the prospect from your recipient list. This will allow us to re-enter the prospect into the program at a later date, if desired.
- OPTIONAL: Add an ‘ELSE’ condition on the leftmost NO branch to catch any prospects whose SKU# value cannot be translated. This is a failsafe to catch any prospects who might have entered this program by accident or who were not able to be processed.
- In the example below, I have added a step to notify a specific user (i.e. the Pardot admin) who will then review and update the records that could not be processed via the Engagement Studio.
- I also added an additional “End” step following this ‘ELSE’ action so that prospects who cannot be processed by the Engagement Studio will remain on the recipient list for review by the Pardot admin.
- Start your Engagement Studio Program!
Solve Your Salesforce Sync Error Woes
That’s it! You’ve created custom and dependent fields and set up a new Pardot Engagement Studio Program. Now the source of your sync errors should be resolved!
Continue to monitor your sync error queue over time to determine whether adjustments to your Engagement Program are needed. For example, does the program need to repeat for returning prospects and, if so, how often?
And if you still have troubles, reach out to the team at Sercante for guidance.