Pardot Custom Field Mapping with Salesforce: The API Field Name Trap

Share this article...

Pardot custom field mapping is more challenging than you may think. In Pardot, you have the Prospect object – in Salesforce, however, there are more objects at play.

Salesforce Leads and Contacts are separate records that represent the same person – in Pardot, these “people” records are combined under one umbrella (“Prospects”). Someone can either be a Lead or a Contact at any point in time.

Being two separate objects in the CRM, Leads and Contacts have their own fields. In short, when you create a custom Lead field in Salesforce, it does not automatically get created on the Contact object.

The Pardot-Salesforce connector is designed to sync data regardless of whether the Prospect (in Pardot) is a Lead or Contact (in Salesforce). This is important because when Leads are converted into Contacts (depending on where they are in the sales cycle) you want the related Prospect record to carry across, so the Contact continues to sync with the same Prospect record.

Map Salesforce Custom Fields with Pardot

As Leads and Contacts are two separate objects in the CRM, including their fields, what are the implications for those marketers that use Pardot?

  • You will want Lead-only fields, Contact-only fields, and fields that appear on both objects. Mapped Lead fields will carry across the data from Lead → Contact during Lead conversion.
  • For any Lead/Contact data you want to sync to Prospect records, you must map the Salesforce fields with Pardot fields. You map Pardot fields from Pardot Settings (Configure Fields → Prospect Fields)
  • There are plenty of resources about how to create Pardot Prospect custom fields (example).
  • For each Prospect field, you will see a ‘salesforce.com Field Name’ dropdown box. Scroll to find the name of the field you wish to map.

The Pardot Field Mapping Challenge

But wait! What if you see two versions of the same field appearing in the list? One is the Lead field, the other is the Contact field. So, which do you choose?

The answer is none. Stop right there – you need to reconfigure your fields so that they share the same API Name.

What is a Salesforce Field API Name?

The API Name is what identifies a Salesforce field when exchanging data with other applications. Pardot (and other integrated applications) know how to receive data from Salesforce – and where to send data; the API name is a unique identifier for the Salesforce field.

When you create a Salesforce custom field, you define the:

  • Field Label: what users see
  • Field Name: what applications see

based on the Field Name when you create a Salesforce custom field:

The Pardot API Field Name Trap

Let’s use an example to show how easy it is to get trapped with API Field Names.

You want a field called ‘Location of Choice’ to capture data on Leads and Contacts, and sync to Pardot Prospects.

It could look like this on your Lead object in Salesforce Setup:

In order for Pardot to sync with both the Lead and Contact fields (depending on where the prospect is in their journey) the API Field Name must be exactly the same on the Contact object. A Contact field with a different API Field Name, like the one in the image below, would not work:

Any difference in the name will result in two options appearing in the ‘salesforce.com Field Name’ field mapping dropdown list when configuring on the Pardot side.

Even small differences – like that pesky ‘of’ that slipped in – will cause issues.

As you can only choose one, your Prospect custom field would only sync with either Leads or Contacts (excluding half, or more, of your database).

Pardot-friendly Custom Fields

We’ve seen that even a small difference in the Field’s API names will trap you. Here are some tips to avoid a data headache:

  • Keep the Field Labels consistent, with a logical naming convention. As the Field Name is generated automatically based on the Field Label, you will breeze through without having to think twice.
  • Field API Names are case sensitive – avoid mixing capitals and lowercase letters!
  • Ensure you use the same data type across Salesforce and Pardot fields, e.g. use text field types, and not a mix of text and number fields!
  • When you create a Salesforce custom field, ‘__c’ will be automatically added to the end. This is normal, and you don’t need to be concerned about it.
  • Fix Prospect Custom Field Issues

    Note: Editing the Salesforce field API Name should be done with caution. In fact, if you attempt to do this, you will be warned:

Don’t ignore this warning. The API name could be referenced in many places, ‘under the hood’, both within your Salesforce org (e.g. Apex triggers, validation rules, formula fields), and beyond, in integrations.

Getting visibility into where it’s referenced isn’t so simple, and I would recommend seeking a third-party change intelligence solution that leverages the Dependency API to locate how and where the field is being used.

Once you have full visibility into how and where this field is being referenced elsewhere, edit the Salesforce API Field Name. Then, on the Pardot side, you will see one ‘salesforce.com Field Name’ in the dropdown box that will represent both the Lead and Contact field.

Now Leads, Contacts, and Pardot Prospects can sync in harmony. You will sleep easy knowing data will sync consistently, no matter where a person is in their prospect journey.

2 thoughts on “Pardot Custom Field Mapping with Salesforce: The API Field Name Trap

  1. How to go for it if its not a custom field but a default field. In Salesforce the Country field has different API names on lead and contact. Lead = country, Contact = mailingcountry.

    How can we make sure that after the lead conversion, the contact will sync a different or a new value on the field country?

    Thank you

    1. Hi Peter, very good question! Any Pardot fields out of the box are mapped already, so you don’t need to worry about those.

Add Comment