How To Map Pardot and Salesforce Custom Fields and Avoid the API Field Name Trap!

Share this article...

You may know that Salesforce Leads and Contacts are different from one another. In Pardot, we have one object – Prospects, which needs to accommodate syncing with both Leads and Contacts, depending on where the Prospect is in the sales cycle.

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


Creating the custom field on both objects is crucial, so that the Lead data is passed to the newly created Contact when a user converts a lead. Once that’s done, you need to map the lead fields. Then, head back to Pardot to do your mapping…

When you navigate to Admin → Configure Fields → Prospect Fields, you will see the ‘ Field Name’ dropdown box. Scroll to find the name of the field you just created.

But wait! What if there are two versions of the same field appearing in the list? Which do you choose – the Lead custom field, or the Contact custom field?

Stop there, and jump back into Salesforce. You need to reconfigure your fields so that they share the same API Name.

What is an API Name?

In short, the API Name is what Salesforce uses when communicating with other applications. Pardot and other connected systems know how to receive and where to send data based on the field’s API name – a unique field identifier.

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

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

The API Name is automatically generated from the Field Name when you click Save.

Let’s look at how Field Name inconsistencies can cause you to trip up when mapping fields with Pardot.

Avoiding the API Name Trip Wire

You have a custom field you want to show on Leads, Contacts and Pardot Prospects called ‘Location of Choice’.

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

Therefore, it must be exactly the same on the Contact object – a field in the image below would not work:

If there is any difference in the name – even that pesky ‘of’ that slipped in – two options for that field will appear in the field mapping dropdown list on the Pardot side. You can only choose one – either contact or lead – and you Prospect custom field would only sync with either Leads or Contacts (excluding half or more of your database).

Essential to know: Naming Salesforce Custom Fields to be Pardot-friendly

As I just mentioned, even a slight difference in the Field’s API names would trip you up. Here are some tips:

  • Field API Names are case sensitive – don’t mix capitals and lowercase!
  • When you save a Salesforce custom field, ‘__c’ will be automatically added to the end. This will happen for every custom field, and you don’t need to worry about it.
  • Ensure you use the same data type across Salesforce and Pardot, eg. text field types and not a mix of number & text fields!
  • What if you’ve messed it up already?

    Editing the API Name on a field 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 things ‘under the hood’ inside and outside your Salesforce org, such as classes & triggers (hard coded by developers), 3rd party integrations, custom report types and more…
Getting visibility into where it’s referenced isn’t so simple, and I would recommend having a Google for some AppExchange solutions that could help you out.

Once you have cleared this field being referenced elsewhere (and only then), edit the field. On the Pardot side, you will see one ‘ Field Name’ in the dropdown box. Now Leads, Contacts and Pardot Prospects can live in harmony, and sleep easy knowing data will sync consistently across custom fields.

2 thoughts on “How To Map Pardot and Salesforce Custom Fields and Avoid 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