Run better email campaigns on Salesforce Pardot with up-to-date customer data from your data warehouse
Supported syncing
Sync Type | Description | Supported Sync Modes | API Reference |
---|---|---|---|
Prospect | Sync Prospects to update list membership objects | Upsert, Update | Prospects v5, Prospects v4, Prospects v3 |
Lists | Sync Prospects to update list membership objects | Update | Lists v5, Lists v4, Lists v3 |
Campaign Trigger | Trigger email sends on a Prospect by Prospect basis | Update | Email 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:
Behavior | Description |
---|---|
Do nothing | Keep the Prospect in Pardot |
Clear fields | Keep the Prospect in Pardot but clear the synced fields |
Remove record | Remove the Prospect from the specified List |
Delete record | Delete 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:
Behavior | Description |
---|---|
Do nothing | Leave the Prospect on the List |
Remove record | Remove 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. ThesalesforceCampaignId
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 numericcampaignId
. -
"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.