This article covers common issues that arise with the Salesforce integration for Pendo Engage. For an overview of the integration, see Salesforce integration with Pendo. For setup instructions, see Set up the Salesforce integration for Pendo.
Initial connection
This section covers issues that might arise when you set up the connection between Pendo and Salesforce objects. The issues tackled in this section deal with the mapping process:
- Can't find the Salesforce field I want to use as a unique identifier
- Message: 0 matched in Pendo
- Warning: Duplicate entries found
- Query size failure: Timeout awaiting response headers
Can't find the Salesforce field I want to use as a unique identifier
After you've chosen Salesforce objects to connect with, you must select a unique identifier (ID) for the visitors and accounts you want to use in the integration. If you can't find the field you're trying to use for the unique identifiers while setting up the initial connection, check the Salesforce field for the following:
- Does the field start with "Pendo"? You can't use a Salesforce field that starts with “Pendo” for the initial connection. If it does, ask your Salesforce admin to change the API field name so that it doesn't start with “Pendo”.
- Does the field belong to the Salesforce object that you connected with Pendo? The field must exist on the Salesforce object connected to Pendo. For more information, see Salesforce integration with Pendo.
- Is the Salesforce field a supported data type? The Salesforce field must be a string, float, or integer data type. For more information about supported data types, see the Set up the Salesforce integration for Pendo.
Message: 0 matched in Pendo
We recommend that you check the Last Sync date and time to verify the initial connection you make between Pendo and Salesforce. If successful, the blue Salesforce Integration box at the bottom of the Data Mappings page says something like the following: “Done! Your data will sync nightly. XX Salesforce records found; XX matched in Pendo. Last Sync: Jun 21, 2023 11:08:21 PM”.
If, instead, you see a message that reads something like "0 matched in Pendo", there is a problem with the unique identifier chosen.
The Salesforce integration expects the values in the Pendo Field and the Salesforce Field to be identical. Even minor differences in spacing, punctuation, or casing can cause a mismatch. For information about the requirements for unique identifiers, see Plan your connection in the Set up the Salesforce integration for Pendo article.
For example, if you map a Salesforce field called User ID
to the Visitor ID
in Pendo, the records for the individual visitors within those two fields must match exactly. If an individual's Visitor ID
in Pendo is 1234
, that same individual must also be represented as 1234
under User ID
in Salesforce.
If you get a message saying that no matches were found when you verify the integration, check that the field values that you selected during the Setup Mapping step are identical between Pendo and Salesforce.
- Check that the appropriate Salesforce object was selected to connect with the visitor or account object in Pendo.
- Review the selections for Pendo Field and Salesforce Field. For an individual visitor or account, these two fields must contain the exact same value.
To cross-reference your chosen field in Salesforce against the corresponding field in Pendo and check that your visitors or accounts are represented by the same value in both:
- In Pendo, navigate to People > Visitors and open one of the visitors in the list.
- Find the configured Pendo field (for example, Visitor ID) and take note of the value for that field for this particular visitor.
- In Salesforce, find the relevant Salesforce record for the same visitor.
- Check that the record belongs to the same Salesforce object that was selected during the Setup Mapping step.
- Check that the value in the Salesforce field is an exact match with the Pendo field.
Warning: Duplicate entries found
The following message above the Last Sync date and time in the blue Salesforce Integration box at the bottom of the Data Mappings page indicates that not all records are being updated: "Warning: Duplicate entries found".
This is because there's more than one record on the Pendo side, the Salesforce side, or both sides that have the same value in the fields you've selected for your mapping. The sync still runs, but some records might be skipped because the integration must decide which of the duplicate records to update.
For example, matching Pendo visitors to Salesforce contacts using email address can cause duplicates because both platforms allow more than one end-user to have the same email address. Thus, if you're using email address as the unique identifier for visitors, the integration could find duplicate records for visitors.
In this scenario, Pendo creates two tables of duplicate records when running a sync. One table contains duplicates found in Pendo and the other table contains duplicates found in Salesforce. If the field is an integer, the lowest numbered record is selected to update and the rest of the duplicates are skipped. If the field is not an integer, a programming technique called "string comparison" identifies which record is "lower". This can make the choice between what to update and what to skip appear to be random.
To avoid duplicate records, you must ensure that there is a true one-to-one match between records in Pendo and Salesforce, with no duplicates in either system. You can choose to sync on fields that enforce uniqueness. On the Pendo side, both the Account ID and the Visitor ID fields enforce uniqueness, meaning it's impossible to create duplicate records. You can also work with your Pendo and Salesforce administrators to identify and clean up any duplicates.
Query size failure: Timeout awaiting response headers
The Pendo Salesforce integration uses the Salesforce API to both pull Salesforce data into Pendo and to push Pendo data into Salesforce. When communicating with Salesforce, Pendo first requests all of the possible records from Salesforce that contain a value for the selected Salesforce field, regardless of whether those records have a match in Pendo.
In some situations, the number of Salesforce records is too big, causing a timeout and the sync then fails. You might see a notification in Settings > Error Log that says “Timeout awaiting response headers.”
You can reduce the number of records returned in the query by only including active records in your sync. There are two main options for optimizing your configuration and reducing the likelihood of generating a timeout error:
Both of these Salesforce-side options require assistance from your Salesforce admin. They work by limiting the number of records available for Pendo to request to just the records that need updating.
While the examples below are based on syncing visitor-level data, the same options also apply to account-level data.
Option 1. Add a new formula field
You can connect your Pendo field with a formula field in Salesforce that's only populated with data for active users in your application. This reduces the number of records returned in the initial query by limiting that query to active Salesforce records.
For example, the email address field of the Contact object in Salesforce populates with the contact's email address regardless of whether they're a customer, prospect, or churned user. To reduce the query size to only active customers, you can create a field on the Contact object that uses a formula to determine a contact’s status. If the user is active, the formula field populates with their email address.
You can then use the new field in Salesforce for mapping to the respective field in Pendo. When Pendo runs the initial query, only the records with a value in that formula field are updated by Pendo.
Note: If the new field name or field label begins with "Pendo", it doesn't appear as an mapping option. Ensure you start the field with something else.
Option 2: Use a custom object
You can reduce the number of records returned in the initial query by using a custom Salesforce object that only holds records for active users or accounts.
Rather than using a default Salesforce object like Contact that usually contains both customers and prospects, you can create a custom object in Salesforce that populates with many of the same fields as the Contact object, but only with records for active customers.
- Ask your Salesforce admin to create a new object and then add the fields that you would like to pull into Pendo.
- From the Data Mappings page in Pendo, update your Salesforce integration settings to point to the newly created custom object.
Salesforce pull
This section covers issues that might arise when you set up "pull" data syncs. The issues tackled in this section include:
Can't find fields for data mapping
A Salesforce "pull" is configured in Settings > Data Mappings. To bring Salesforce data into Pendo as visitor or account metadata, you must choose Salesforce fields to import into Pendo. This is done separately for visitors and accounts. If you can't find the Salesforce field you're looking for, check the Salesforce field for the following:
- Does the field start with "Pendo"? You can't use a Salesforce field that starts with “Pendo” for a Salesforce "pull". Choose another field or have your Salesforce admin change the API field name so that it doesn't start with Pendo.
- Does the field belong to the Salesforce object that you connected with Pendo? To check, select Setup Mapping in the blue Salesforce Integration box at the bottom of the Data Mappings page.
- Is the Salesforce field a supported data type? For more information about supported data types for the Salesforce integration, see the Set up the Salesforce integration for Pendo.
Missing metadata from Salesforce
If some records in Pendo are missing the metadata from Salesforce, check the following:
- Does the missing metadata field appear in the Metadata table in Settings > Data Mappings with Salesforce as the Group value? If it doesn't, review the instructions for setting up a "pull" data sync.
- Where is the metadata missing from in Pendo? If the metadata is visible on specific visitor or account records, and is only missing in reports, check back in an hour. Although metadata is visible on visitor and account records immediately after the sync, it can take an hour for data to appear in Pendo reports.
- Are there any errors? Navigate to Settings > Error Log to check for recent errors.
- Are there duplicate records? Check the Last Sync date and time in the blue Salesforce Integrations box in Settings > Data Mappings. If there are duplicates, see the troubleshooting guidance for Warning: Duplicate entries found.
- Is the unique identifier an exact match between Salesforce and Pendo? To check, follow the troubleshooting guidance for Message: 0 matched in Pendo.
Salesforce push
This section covers issues that might arise when you set up "push" data syncs. The issues tackled in this section include:
- Can't find fields for configuring a report sync
- Missing usage data from Pendo
- Empty rows in the visitor or account report
Can't find fields for configuring a report sync
A Salesforce "push" is configured in individual visitor and account reports. As part of the setup, you must add columns to the report to sync with fields in Salesforce.
If you can't find the Salesforce field you want to push this data to, check the Salesforce field for the following:
- Does the field start with "Pendo"? Only Salesforce fields that start with “Pendo” can be used in a Salesforce push. If it doesn't, ask your Salesforce admin to change the API field name so that it starts with “Pendo”.
- Does the field belong to the Salesforce object that you connected with Pendo? To check, select Setup Mapping in the blue Salesforce Integration box at the bottom of the Data Mappings page.
- Is the Salesforce field a supported data type? Particular Pendo data types must match with particular Salesforce data types. For more information about supported data types, see the Set up the Salesforce integration for Pendo.
Missing usage data from Pendo
If some records in Salesforce are missing usage data from Pendo, check the following:
- Was the sync successful? Check this in Pendo by opening the visitor or account report that is set up to sync with Salesforce. You can also navigate to Settings > Error Log to check for recent errors.
- Does the data type of the Salesforce field mapped in the report match the data type of the Pendo data being pushed? For example, the Pendo report column, "Time on App" is an integer value in Pendo, and thus must be mapped to a Salesforce field with an integer data type.
- Are there duplicate records? Check the Last Sync date and time in the blue Salesforce Integrations box in Settings > Data Mappings. If there are duplicates, see the troubleshooting guidance for Warning: Duplicate entries found.
- Is the unique identifier an exact match between Salesforce and Pendo? To check, follow the troubleshooting guidance for Message: 0 matched in Pendo.
Empty rows in the visitor or account report
Visitor and account reports only show data rows of visitors or accounts that meet the segment and date range criteria.
When viewing a report that's successfully synced with Salesforce, the report might include additional rows that have zeros (0) for values. These empty rows are necessary for a Salesforce push because visitors and accounts without data must still be mapped one-to-one with Salesforce objects. The empty row values that are sent to Salesforce don't overwrite data that's already been sent to and stored in Salesforce.
For example, you might have a visitor report with a Salesforce push that segments on visitors that have loaded a certain page the previous day. A visitor that viewed the page yesterday appears in the report. The next day, if the same visitor hasn't visited the page since then, that visitor still appears in the report with no data.
For the Salesforce integration to work, any visitor that was ever on the report must remain on the report. However, the empty values aren't pushed to Salesforce. The only way to remove the empty row created by the visitor in the above example is to create a new report with the same parameters (segment, date range, report columns).
Still need help?
If you still need help, follow the instructions for submitting a support ticket in Get help with Pendo from Technical Support.