Pardot (Account Engagement) Reverse Syncing: Create Salesforce Contacts Not Leads

By Lucy Mazalon

When a prospect first syncs from Account Engagement (FKA. Pardot) to Salesforce, the connector will create a Lead record which continues through your organization’s lead lifecycle.

There are cases where creating Lead records isn’t the suitable option – take, for example, that some organizations don’t even use the Lead object, and so want to avoid any new records heading to that section of Salesforce.

The connector settings (i.e. the one that runs from Account Engagement to Sales Cloud) can be changed to force create Contact records instead of Lead records when prospects first ‘hit’ Salesforce.

This is known as reverse syncing in Pardot (now Account Engagement). In this guide, I’ll cover how the Lead/Contact sync between Sales Cloud and Account Engagement works – and if you see reverse syncing being a good fit for your organization, then be aware of ‘Private Contacts’, which left untackled, could be a challenge that goes undetected for too long.

What Are Private Contacts?

The term ‘private Contacts’ can be misleading. For anyone familiar with Salesforce administration, when hearing ‘private’, what likely springs to mind is the private OWD (the sharing model that restricts data access).

I’ve heard ‘private’ Contacts described as ‘orphaned’ Contacts, which I think is more descriptive of the concept.
Contact records represent employees that work at the prospective/customer company, which is represented as an Account record. So, an Account record can have multiple Contact records associated – this is the ‘parent-child’ concept in action.

You may assume that Contacts must be related to an Account when they’re created. You will notice that this is the case when creating Contacts via the Salesforce user interface (i.e. a user creating records) where the Account lookup field is required (highlighted in the image below). However, the same rules don’t apply for the system – in fact, it’s possible for Contact records to be created without being related to an Account.

Without a ‘parent’ (i.e. Account record) these ‘child’ Contact record could be described as orphaned.

How Account Engagement Works With Salesforce Leads and Contacts

The connector between Account Engagement and the core Salesforce platform works differently depending on the object data you are looking to sync. For example, the strong Prospect* ←→ Lead/Contact relationship syncs well, however, there are other objects that don’t sync as well, or as often.

*Prospect is the Account Engagement object that’s equivalent to Leads/Contacts in Salesforce – they work as counterparts to each other.

Leads & Contacts

Pardot can “read” and update Leads and Contacts.

When a Lead record is converted into a Contact (and Account), the link with the prospect record is carried over to the Contact.

READ MORE: How Do Account Engagement (Pardot) and Salesforce Work Together?
LeadBi-directional.Account Engagement can “read”, update and create Salesforce Leads.
ContactsBi-directional.Account Engagement can “read” and update Salesforce Contacts. If “reverse syncing” is enabled, Account Engagement can create Contacts (and not Leads).
AccountsOne-directional (Salesforce → Account Engagement). Account Engagement can “read” Salesforce Accounts.


We’re introducing more objects – but bear with me! I mention Accounts and their sync behavior because they play a role in how reverse syncing needs monitoring (more on that later!)

What Happens With Pardot Reverse Syncing Enabled?

The settings of the connector that runs from Account Engagement to Sales Cloud can be changed to force Pardot (Account Engagement) to create Contact records when prospects first ‘hit’ Salesforce. This is an alternative to the default – creating Lead records – for when the Lead object isn’t suitable for your marketing/sales lifecycles.

Let’s recap the facts so far:

  • Prospect records are the Account Engagement object that’s equivalent to Leads/Contacts in Salesforce – they work as counterparts to each other.
  • When Account Engagement has a new prospect record to sync to Salesforce, it will create a Lead record by default – unless reverse syncing is enabled, forcing Contact records to be created.
  • Contacts are usually related to Account records (but they aren’t always!).

This final point is one for your attention, as you should now ask yourself: When the connector is changed to force create Contacts (instead of Leads), which Account record will these newly created Contacts be related to?

Without monitoring proactively, you run the risk of orphaned Contact records floating around your Salesforce org.

This happens because Account Engagement (Pardot) cannot create Account records. Salesforce Accounts are synced to Account Engagement, which are called ‘Prospect Accounts’ – being read-only, Account Engagement cannot create, edit, or delete Prospect Accounts.

What’s the connector to do, other than send the contact to Salesforce and hope for the best?

How to Manage Private Contacts

Here’s the challenge: You will end up with many Contacts floating around your org without being related to the Account they should be.

The go-to report for Contacts in Salesforce is ‘Contacts and Accounts’. I’m going to call upon my friend, Stacy, who explained the ‘Contacts and Accounts’ report type limitations so well:

“What if you have Contacts where there is no Account? And I hear you! “But Stacy!” you say, “The Account field is required on the page layout, of course, the Account field is filled out on all Contacts!” But, are you really sure? You should probably run a report on the Contact object, where Accounts = Blank to check out your data. You may be surprised…

Oh wait – you can’t! There is no report for just the Contacts object, only Contacts & Accounts, or Contacts & something else! Oh, the horror!”

READ MORE: 5 Salesforce Lead & Contact Hacks Every Admin Should Know

So, here are the steps you need to follow to keep track of private Contacts:

Step 1: Create Custom Report Type

Create a custom report type that will show Contacts – regardless of whether they are related to an Account record.

Step 2: Create Salesforce Report

Create the Salesforce report, and use the filter:

  • Account name — equals — [leave blank]

Add any other columns you may find useful, such as contact owner or created date.

Step 3: Schedule the Salesforce Report

You can schedule the report to run regularly (refresh itself), and be sent via email to users on a specified day/time.

The optimal frequency for your organization will depend on the volume of new Contacts being created by your Account Engagement connector, for example, for a moderate volume, you could perhaps have the report emailed to the Admin’s inbox once a week, and from there, they would manually relate the private Contacts to their intended Account.

Bonus Tips

  • Capture the Company value: A preventative measure to put in place is to ask for prospect’s ‘Company’ on forms. Salesforce then has that With that information to match on. It’s not a fail-safe policy, however, because variations in the company name (abbreviations, suffixes appended, etc.) could put a wedge in the process running smoothly.
  • [[Unknown]] Company: We know that when the Connector creates Leads without a value in the ‘Company’ field, , it appears as [[Unknown]] – just another data quirk to watch out for.


Reverse syncing in Account Engagement (Pardot) is a connector setting that force creates Contact records instead of Lead records when prospects first ‘hit’ Salesforce.

There are cases where creating Lead records isn’t the suitable option – take, for example, that some organizations don’t even use the Lead object – so this is an option to explore if this applies to you. However, be aware of ‘Private Contacts’, which left untackled, could be a challenge that goes undetected for too long.

Of course, ownership is required – likely your Salesforce Admin – to take charge of reuniting private Contacts to their Accounts.

The Author

Lucy Mazalon

Lucy is the Operations Director at Salesforce Ben. She is a 10x certified Marketing Champion and founder of The DRIP.


    Becky Sweetman
    December 04, 2019 2:40 am
    This is SO handy. I have had this issue in the past and never thought to add a report type to identify them. Thank you!
    December 12, 2019 9:36 am
    Thank you Lucy, for sharing this insightful article. I would like to fix this issue, please let me know a way as I have 1000's of Orphan record. I have to spend time to check for duplicate record & then merge these. I ending up doing more with Marketing Automation.
    Lucy Mazalon
    December 20, 2019 9:16 am
    Hi Sharad, thank you for your note on this - unfortunately there's no fast way to deal with duplicates if there's no specific criteria you are basing the master record on :( you can use a de-duplication tool on the AppExchange to help with the matching, but if it requires a human eye, then you will need to be patient going through them
    February 03, 2020 11:37 am
    Hi Lucy, I have these orphan contacts which are created via Chat functionality (Embedded Services). I created a Dummy account, and created a process to move these contacts to dummy accounts upon creation using some filters. However, this is not a very scalable solution. We also use Marketo for prospecting purposes, so these contacts do not work well there. What is the best approach to deal with these contacts?

Leave a Reply