Pardot sync errors occur when a Pardot prospect record fails to sync with its associated lead or contact record in Salesforce. Sync errors in Pardot – no matter how significant or minor the cause – will prevent the Pardot sync queue from processing these troublesome prospect records.
Monitoring the Pardot sync queue is vital to avoid a multitude of headaches – like disrupted lead handover, dodgy campaign execution, inaccurate reporting, and more. This guide will help you understand and solve the most common Pardot-Salesforce sync errors.
Where are Sync Errors in Pardot?
The first step is to compile your sync error data. If you haven’t looked at your Prospect sync error queue before, this may shock you. The problem with Pardot-Salesforce sync errors is you don’t get notified when they happen, which is why proactively checking the queue is vital. Note that errors are flagged on individual prospect records (appearing as a notification banner).
Navigate to the Prospect Sync Error Queue:
- Pardot Settings → Connectors, find the cog symbol by the salefsorce.com connector → Sync Errors
You will land on the sync error table, where you can sort and filter the error entries. If you have many errors to tackle, I recommend you export to CSV.
- Select all the records (using checkbox in the table header) → Tools (right-hand above the header) → CSV Export → select ‘Express Export’.
Your file will begin downloading, or you will receive a download link via email.
Next, sort by the error type and prioritize which to tackle first based on the number of errors its causing.
Now, let’s dive into some of the sync errors you may find in your export file.
1. Apex CPU time limit
Apex CPU time limit exceeded
Why does it happen?
The Salesforce platform imposes a CPU usage governor limit – approximately 10 seconds – to execute any transaction (code, declarative tools, or a combination of both). In short, this means your system is overloaded with too many complex transactions, kicking off simultaneously – which takes too long to process.
How to solve it:
Pass these suggestions to your developer/admin to debug the Apex code, and then streamline processes to possibly combine/stagger them.
2. Custom Validation Exception
Custom Validation Exception: Phone number must be 10 digits, must begin with ‘+’ and include country code
Why does it happen?
This is caused by a Salesforce validation rule that has been put in place to ensure that data meets certain criteria before the lead/contact record can be saved:
- Data formatting: eg. phone numbers, ZIP codes must be a certain length, start/end in specific characters.
- Required fields based on record criteria: eg. the ‘unqualified reason’ must be filled in when the lead status is changed to ‘unqualified’.
Due to this one field, the entire prospect record is barred from updating the lead/contact.
Aside from not being aware of which Salesforce validation rules are enabled in your Salesforce org, there are other reasons you could bump up against this error:
- While working with data in Excel, data was altered by a formula. You can accidentally import rogue data into Pardot, eg. 3.75E+16 could actually have been someone’s phone number at one time…
- Dirty data has synced down from Salesforce. You may not believe this, but it happens due to a lack of validation for Pardot fields (ie. Admins can’t set validation rules on Parodt fields). It’s not an equal playing field.
How to solve it:
To solve the data altered by Excel formulas:
- Check the field sync behavior for that field, if “Use Salesforce’s value” is selected, you’re good to go.
- Remove all values in that column in the Excel file.
- Reimport the file, tick to override values in the Data Mapping screen of the Import Wizard (2nd step)
- The bad values will clear from Pardot, and the clean values will sync down from Salesforce.
To solve for absolutely necessary validation rules:
- Identify the validation rules that are causing you issues. Evaluate their purpose – are they still useful or are they the result of over-customization?
- Any validation rules that don’t add value can be deactivated. Rules that must stay active, note down the record criteria/formats that will be accepted.
- If possible, do a one-time swoop of prospect records missing this field. I recommend using a dynamic list to identify these prospect records, and enrich their data; plus, as dynamic lists automatically refresh with new matching prospects, you can continue using the list for monitoring. Tip: with the first batch of prospects caught by validation rule sync errors, check if there are common lead sources, pumping incomplete data into Pardot, then…
- Work these requirements into your processes – in other words, which fields does a prospect need to be populated before it can be assigned (and sync to Salesforce)? If Pardot automation changes one field, do other fields need to then be populated?
- However, if it’s not possible to work these data requirements into your Pardot processes – but if you’re flooded with thousands of errors, then there is one trick you can use…
“Bypass the connector user” validation rules trick
With the Salesforce Connector V1, this involved creating a custom checkbox on the user record; however, you can’t edit the B2BMA Integration user record (Connector V2). Here’s a workaround:
- The B2BMA Integration user record has the Pardot Integration User permission set assigned (and should be the only user!)
- Follow these steps to create a Custom Permission based on the Permission Set (confusing, I know…)
- Add a statement to the validation rules causing trouble: && $Permission.Pardot_Integration_User = FALSE
To solve the dirty data cycle:
Alone, there’s unfortunately not much you can do. Work with your Salesforce Admin/team to…
- Recently activated validation rules could mean that dirty data entered and saved beforehand still lingers on lead/contact records. This is then an exercise for the Salesforce team to update data for the field (eg. phone numbers) to the correct format.
- The clean values will sync from Salesforce to Pardot, providing the field sync behavior is appropriate.
3. Duplicate records
Deduplication matching rule conflict
Why does it happen?
Salesforce duplicate rules can be set to either block duplicates, or report them (flagging them). Duplicate rules are based on matching rules which define what a ‘duplicate’ means to your organization. This is how the standard functionality works, your org may leverage a third-party deduplication tool, such as DemandTools or Plauti which enable more granular deduplication.
Pardot deduplicates prospects in a less sophisticated way:
- If duplicate records are synced from Salesforce, Pardot accepts two prospect records even if they have the same email address (due to AMPSEA)
- If a prospect record coming into Pardot has the same email address as an existing prospect (eg. a form submission, prospect import), the new data is automatically merged with the original record.
With these measures in place on both sides of the connector, how do duplicate disagreements still occur?
- Matching fields other than email address mean that two prospect records are considered duplicates in Salesforce (eg. based on first name, last name, and company matching). This can also occur when the email address/domain is spelled slightly differently.
- On a related point, contact/lead records with missing email addresses won’t sync to Pardot as prospects. If this individual comes into Pardot, as a new prospect record, then syncs to Salesforce, it could flag as a duplicate with the ‘isolated’ lead/contact.
- Lead to contact matching hasn’t been set up properly.
How to solve it:
Advice on how to handle duplicates should be given on a case-by-case basis. Depending on the state of your data, you can tackle duplicates from either side:
- You can see how many records share the same email address to get a good “lay of the land” (read: Quick Check for Duplicates in Your Salesforce Marketing Database)
- Identify duplicates in Salesforce, consider merging them (read: Merge Duplicate Records in Salesforce Lightning)
- Identify duplicates in Pardot, consider merging them.
4. Field Type Mismatch
Field Type Mismatch: [Upsert Batch ID: ] Object: Lead, Field:
Why does it happen?
Every Salesforce and Pardot fields have a field type (eg. text, number, picklist, checkbox, etc).
The field type of lead/contact does not match the prospect field type. “Upsert Batch ID” means that all records syncing in that batch (max ~200 records) will have been prevented from syncing – so although the Field Type Mismatch error may not apply to every record, they need to be resynced once the field mapping issue has been solved.
How to solve it:
- The end of the error specifies whether this is a lead-to-prospect or contact-to-prospect mismatch, and the field in question. Check the field type in Salesforce and in Pardot – are they compatible? For example, you could be attempting to sync a text field (containing letters and numbers) to a number field.
- Update the Pardot field type. Resync all prospects in the “Batch ID” specified.
5. Filter Validation Exception
FIELD_FILTER_VALIDATION_EXCEPTION, Value does not exist or does not match filter criteria
Why does it happen?
Lookup fields link one record to another record belonging to a different object, for example, awards (a custom object) and the contacts that won them. Lookup filters restrict the values users can see when inputting the lookup field value, for example, users can only search for certain contacts eligible for the awards program.
If the Pardot sync updated fields that changed the eligibility criteria, the filter would no longer be respected – and the sync error occurs.
How to solve it:
- Investigate the lookup filters (navigate to the field in question via the Object Manager)
- You may decide to amend the lookup filter criteria to accept the errored records,
- Or, fix the field value on the Pardot record.
6. Flow trigger
Cannot execute flow trigger: The record couldn’t be saved because it failed to trigger a flow. A flow trigger failed to execute the flow with version ID
Why does it happen?
Salesforce Flows and Process Builder flows can from time to time (in highly technical terms) “fall over”.
How to solve it:
Errors can occur for a number of reasons, so the Salesforce Admins will need to investigate/debug the process in question (pass the “version ID” at the end of the error message to them).
7. Insufficient access
Insufficient access: insufficient access rights on object id:
Why does it happen?
The Salesforce connector user does not have the access it requires to work with the lead and contact objects. In short, the connector is trying to update a record it cannot ‘see’ or edit. There are two potential causes:
- The org-wide default (OWD) is set to “Private” for leads/contacts/accounts/opportunities/campaigns (no object ID is included in the error)
- Or, the connector user has “View All” permission for leads/contacts but not “Modify All” (object ID is included in the error)
How to solve it:
If you are able to update the connector user’s permissions without causing disruption to your sharing model, then go ahead (use the object ID is included in the error). In more complex sharing models, for example, private sharing models, read Salesforce’s advice on creating public groups.
8. Invalid field length
Invalid field length: is too long – max length is
Why does it happen?
No prizes for guessing, this means that the value you are syncing with Salesforce is too long. Salesforce fields can have field lengths defined. The maximum for a text field is 288 characters, but this could be less in your Salesforce org.
How to solve it:
Reduce the length of the field value. With the field values exported to CSV, you can write a formula to display the length and pinpoint your culprits: =LEN(cell no.)
9. Invalid Picklist Value
Invalid picklist value: bad value for restricted picklist field
Why does it happen?
Picklist fields that are dropdowns, restricted to certain values (picklists are the Salesforce equivalent to Pardot dropdown fields). A Salesforce picklist field setting can restrict system updates (ie. not user-initiated updates) to the picklist values (without the setting enabled, picklists will accept anything).
Another possible cause is that the picklist value has been deactivated, but the prospect field value has not been updated since. The connector is trying to sync a value that no longer exists.
How to solve it:
- Cross-reference: identify Salesforce picklist fields that are mapped to Pardot prospect fields. View the current picklist values in Salesforce, and compare them with the Pardot dropdown values. Ensure you enable the “Keep this field’s type and possible values (for dropdowns, radio buttons, checkboxes) in sync with the CRM” option on the prospect field settings.
- Change field type: if text fields are syncing with picklist fields, change these to dropdown fields.
- Check forms: even with the “Keep this field’s type and possible values…” setting enabled, the values Pardot forms display won’t be updated automatically. On any forms using dropdown fields, click the “Load Default Data” button to have updated picklist values reflected on the form.
- Validate for import: enable the “Validate this field on import” option on the prospect field settings.
Cleaning your data is best done in Excel, the example below shows different variations for country values:
10. Invalid user type
Operation with invalid user type: Operation not valid for this user type
Why does it happen?
You’re attempting to sync a prospect who is assigned to a user that is either:
- Inactive
- Has a Chatter Free license: a free license you can assign to users who only need access to Chatter (not a proper license to manage lead or opportunity lifecycles)
How to solve it:
- Investigate which inactive/inadequate users the prospects were being assigned to. Which automation caused this, an automation rule, Engagement Studio, or a completion action? This may take you some time.
- Correct any automation that was causing the errors.
- Reassign errored prospect records to active users.
Alternatively, you may discover your Pardot automation is correct, but the user’s record in Salesforce is inactive/does not have the correct license – if this applies to you, follow these steps.
11. Owner ID
Owner ID: id value of incorrect type:
Why does it happen?
This error is all about assigning prospects to Salesforce Queues. The first thing to note is that Queues are only available for Salesforce leads, not contacts. Try assigning a contact to a queue, and you will come across this error. The second thing, Queues act like users (as they are the “record owner”), hence why the error states “owner ID/incorrect type”.
How to solve it:
- Ensure that contacts are not being assigned to Queues; check any automation that is assigning prospects, and put in conditions that only leads should be processed.
- Disable Reverse Sync: the Salesforce Connector settings can be changed to create contacts instead of leads. If you wish to leverage Queues for assignment, then having Reverse Syncing enabled is contradictory.
- Contacts in Salesforce will have record owners, so ensure that these Salesforce users have Pardot user records too – even if you don’t give them access to Pardot (removing the Pardot Lightning App tab, giving them the most restrictive user role, etc.) This will mean you will avoid having contact prospect records with no owners.
13. Required field missing
Why does it happen?
Another error that doesn’t take any effort to decipher! This means that the prospect record has a field missing that is required for the Salesforce lead/contact record to be created/updated. Fields are made required with a checkbox on the Salesforce field’s settings.
How to solve it:
As with most sync errors, there is a step to ‘cure’ and one to ‘prevent’.
- Cure by populating the prospect field with values.
- Prevent by checking all sources for incoming prospect data to add this field to forms, and instill practices around data import files (eg, giving your team Excel templates to use to format their data).
- If tackling entry sources isn’t possible, could automation rules help to enrich data? (it’s your responsibility to stick within the bounds of compliance when enriching data for profiling)
Hopefully, these actions will help you nip this issue in the bud.
14. Uniqueness error
Uniqueness error with http://pi.pardot.com/prospect/read/id/123456. Consider merging.
Why does it happen?
A prospect is trying to sync with a lead/contact that is actually associated with a prospect that had been previously sent to the Pardot Recycle Bin. You may find this occurs if there has been a mass Prospect archive.
How to solve it:
- Visit the Pardot Recycle Bin, navigate to: Pardot Settings → Recycle Bin → Prospects
- Undelete any prospect records that match the errored prospect’s email address.
- If these two records are true duplicates, merge the two prospect records. Note: you will need to determine your primary record.
How to Resync Prospects
You’ve investigated the cause of your Pardot sync errors and fixed the underlying issues in Salesforce or Pardot. Sync errors won’t automatically clear themselves (unless a record change triggers the connector sync). So you’ll be left thinking: How do I clear my Pardot sync queue? You have three options…
- Resync prospects (mass action): available when you mass select prospects in the sync error list (see image above). If you’re confident you’ve solved the issue without needing to mass update prospect data, this option will suit you well.
- Prospect database full sync: The connector setting called “Sync All Prospects” enables you to run a full sync on your prospect database. This will be possible every 7 days when there are less than 500,000 prospects (by business unit). (See image below)
- Manually: on any prospect record with an error, click the “Sync with Salesforce” button. This prospect jumps the sync queue, synced with Salesforce immediately. You get immediate feedback – whether if the resync was successful, or the Pardot sync error persists.
- Prospect import: if you need to mass update prospect data, you may find a spreadsheet is the most efficient way. Before reimporting the cleaned/enhanced data, be sure to check the field sync behavior for the affected field/s. If in doubt, seek help from a Pardot certified specialist.
Summary
Pardot Sync errors in Pardot – no matter how significant or minor the cause – will cause a multitude of headaches!
Avoid disrupting your lead handover, campaigns, reporting (and more!) by monitoring your Pardot-Salesforce Connector sync errors regularly. I recommend you check daily if you have a complex Salesforce org – multiple record types, validation rules, automated processes, Pardot business units, etc.
Now that you understand the most common Pardot-Salesforce sync errors, hopefully, you will be able to solve them, too.