ChangelogBook a demoSign up

Salesforce Pardot

Run better email campaigns on Salesforce Pardot with up-to-date customer data from your data warehouse

Supported syncing

Sync TypeDescriptionSupported Sync ModesAPI Reference
ProspectSync Prospects to update list membership objectsUpsert, UpdateProspects v5, Prospects v4, Prospects v3
ListsSync Prospects to update list membership objectsUpdateLists v5, Lists v4, Lists v3
Campaign TriggerTrigger email sends on a Prospect by Prospect basisUpdateEmail v5

For more information about sync modes, refer to the sync modes docs.

Connect to Salesforce Pardot

Go to the Destinations overview page and click the Add destination button. Select Salesforce Pardot and click Continue. You can then authenticate Hightouch to Salesforce Pardot via OAuth.

Connect to Pardot via OAuth by logging into your Pardot account. Then, input your Business Unit ID, which can be found in your Pardot App by navigating to Setup > Pardot > Pardot Account Setup.

Next, select the version of the Pardot API you wish to utilize. The v5 option is recommended for modern accounts. Please note that syncs which have been configured for v3 / v4 are not currently cross-compatible with v5. For this reason, we recommend leaving your version unchanged once the destination is configured.

If your Pardot account type is Pardot Developer Org, input pi.demo.pardot.com in the optional Pardot Custom Domain field. When left unset, this will default to pi.pardot.com.

Sync configuration

Once you've set up your Salesforce Pardot destination and have a model to pull data from, you can set up your sync configuration to begin syncing data. Go to the Syncs overview page and click the Add sync button to begin. Then, select the relevant model and the Salesforce Pardot destination you want to sync to.

Syncing Prospects

Record matching

To match source rows to Prospects in Salesforce Pardot, you need to select a source column and corresponding Salesforce Pardot field. Depending on the sync mode you select, you can match on the following Salesforce Pardot fields:

  • Prospect Email
  • Prospect Salesforce ID
  • Prospect ID

In Pardot API v3 / v4, all of these IDs are valid first-order identifiers. In large v3 / v4 syncs(>=7500 rows per run), the batchUpdate and batchUpsert endpoints will be used, which enable us to send 50 records per API request.

Large v5 syncs automatically switch to the CSV processing endpoint, which is identifier-agnostic and uses very few API requests per 100,000 rows. Pardot only processes one file at a time, so if you have many syncs which are sending CSV files at once, please know that you may experience higher sync times as Hightouch waits for Pardot's CSV queue to open up again. You can examine your Pardot CSV Console (Admin -> Import -> Prospects) to view the CSV files that Hightouch is syncing to Pardot, as well as the Prospects which were created and updated as a result of them.

By contrast, small v5 syncs(<7500 rows per run) do not utilize the CSV endpoint. These Prospect by Prospect endpoints require the Prospect Id to be present in update requests and require the Prospect Email to be present in upsert requests. Therefore:

  • If you select Prospect Id to match records in small v5 upsert syncs, extra API calls will be made to look up the Prospect's email
  • If you select Prospect Email to match records in small v5 update syncs, extra API calls will be made to look up the Prospect's Prospect Id

Field mapping

You can sync columns from your source to Salesforce Pardot's default and custom fields. If you send data for a custom field that doesn't exist, Hightouch adds the field and automatically detects its type.

Refer to the v3 / v4 object docs or v5 overview for more information about object fields.

Match list

You can select if you want to add the Prospects a match list (new or existing), or if you prefer not adding them to any list.

Delete behavior

The delete behavior you select dictates what to do when a row no longer appears in your model's query results. You have the following options:

BehaviorDescription
Do nothingKeep the Prospect in Pardot
Clear fieldsKeep the Prospect in Pardot but clear the synced fields
Remove recordRemove the Prospect from the specified List
Delete recordDelete the Prospect from Pardot entirely

Syncing Lists

Record Matching

To match source rows to lists in Salesforce Pardot, you need to select a source column and corresponding Salesforce Pardot field. You can match on the following Salesforce Pardot fields:

  • Prospect Email
  • Prospect ID

All of the endpoints involved in List syncing prioritize Prospect Id as an identifier. List syncing is currently only supported on v5 of our integration.

Therefore, using Prospect Email in record matching will add aditional API requests to your sync runs.

CSV Mode

Here, we give you the ability to explicitly opt into or out of the CSV endpoint methodology. As outlined in the Prospects section, this is a tradeoff where CSV processing can at times be slower but also enables bulk processing of data and a diminished API request count.

Delete behavior

The delete behavior you select dictates what to do when a row no longer appears in your model's query results. You have the following options:

BehaviorDescription
Do nothingLeave the Prospect on the List
Remove recordRemove the Prospect from the specified List

Sending Emails

To match source rows to Emails in Salesforce Pardot, you need to select a source column and corresponding Salesforce Pardot field. You can match on the following Salesforce Pardot fields:

  • Prospect Email
  • Prospect ID

The notion of sync mode is less applicable here, because the Campaign Trigger sync type does not create an object in the destination. Instead, it simply references a Prospect and the Email Template to send them. If that Prospect does not exist, the request will fail; this sync type does not enable the upserting of Prospects at the same time.

All of the endpoints involved in List syncing prioritize Prospect Id as an identifier. Therefore, using Prospect Email in record matching will add aditional API requests to your sync runs.

Use the Email Template selector to preview your email content. If you are sending Emails to Prospects which already exist in an updated state in Pardot, their template system will automatically fill out data in your template so long as it is formatted correctly.

Tips and troubleshooting

Common errors

  • "Invalid Campaign Id": There are actually two kinds of Campaign Ids in the Salesforce world. The campaignId is strictly a numerical value which is present in Pardot. The salesforceCampaignId is a slightly longer value which is alphanumeric and in a different format, originating from SFMC and Salesforce more generally. The naming overlap here makes it difficult to tell the difference between them, but pay close attention to how your models are being formed and where the Campaign Ids are being selected from. This destination integration currently only accepts the numeric campaignId.

  • "CRM Connector": If there is a CRM connector already present between your Salesforce account and Salesforce Pardot accounts, Pardot may explicitly disallow you from attaching campaignId to Prospect requests. This is because the Prospects are already being automatically associated with campaigns based on the rules defined by your integration. To modify this behavior, consider reaching out to Salesforce Pardot support directly.

Live debugger

Hightouch provides complete visibility into the API calls made during each of your sync runs. We recommend reading our article on debugging tips and tricks to learn more.

Sync alerts

Hightouch can alert you of sync issues via Slack, PagerDuty, SMS, or email. For details, please visit our article on alerting.

Ready to get started?

Jump right in or a book a demo. Your first destination is always free.

Book a demoSign upBook a demo

Need help?

Our team is relentlessly focused on your success. Don't hesitate to reach out!

Feature requests?

We'd love to hear your suggestions for integrations and other features.

Privacy PolicyTerms of Service

Last updated: Aug 22, 2025

On this page
  • Supported syncing
  • Connect to Salesforce Pardot
  • Sync configuration
  • Syncing Prospects
  • Syncing Lists
  • Sending Emails
  • Tips and troubleshooting
  • Common errors
  • Live debugger
  • Sync alerts

Was this page helpful?