This article describes how to configure the Salesforce integration for the first time, which broadly involves the following activities:
- Create a connection with one-to-one matching between Pendo and Salesforce objects. You can choose one Salesforce object to connect with the visitor object in Pendo, and one Salesforce object to connect with the account object in Pendo.
- Set up your push and pull functionality (one or both, in line with your business needs). You can push and pull multiple fields providing that they belong to the same connected object with unique IDs that exactly match between systems.
We recommend that you also read the overview article: Salesforce integration with Pendo Engage.
To use the Salesforce integration with Pendo Engage, you must have admin access to your Pendo subscription and you must have Salesforce enabled. If you don’t see Salesforce at the bottom of the Settings > Data Mappings page within Pendo, contact your Pendo representative to add the Salesforce integration to your Pendo subscription.
You also need a Salesforce user to authenticate the Pendo Salesforce integration. We recommend creating a dedicated Salesforce user record for Pendo instead of using a record tied to an individual employee. This protects you from having the Salesforce user deactivated if the employee leaves the company.
The integration inherits the permissions of the Salesforce user that it’s authenticated with. At a minimum, on the Salesforce side, the user must have “API Enabled” permissions and “Read” access for Salesforce objects and fields in order to pull data from Salesforce into Pendo Engage. To push data to Salesforce from Pendo Engage, the Salesforce user must have “Write” access as well.
Supported data types
The integration supports the following data types. Particular Pendo data types should be matched with particular Salesforce data types. This is most important when choosing a unique identifier for setting up the initial connection. However, it can also impact:
- Which Salesforce fields can be pulled into Pendo as metadata when setting up the pull.
- The Salesforce fields that Pendo tries to send data to when setting up a push at the individual visitor or account report level.
|Salesforce primitive type||Pendo metadata type|
|Salesforce field type||Pendo metadata type|
We don’t support any data types that aren’t listed in the above tables. Pendo isn’t currently compatible with Lookup Type, Record Type, Address, Hierarchy, Content(20), or URL (255) object types.
Plan your connection
Before integrating Pendo with Salesforce, plan how you want to connect the two systems. This involves considering:
- Which Salesforce object to connect to the Pendo visitor object and which Salesforce object to connect to the Pendo account object. These connections are used for both pulling and pushing data between the two systems.
- What you want to use as your unique identifier, which should match one-to-one between Pendo and Salesforce. Choose one unique identifier for visitors and one for accounts.
Choose Salesforce objects
You can only connect one Salesforce object to Pendo visitors and one Salesforce object to Pendo accounts. Default Salesforce objects that you can connect to are Account, Asset, Contact, Lead, and Opportunity. A common setup maps both Salesforce Accounts and Salesforce Contacts to Pendo accounts and Pendo visitors, respectively.
We also support custom objects, which can be useful for more complicated configurations. For more information, see Connect more than one object in Salesforce to Pendo Engage.
Choose unique identifiers
There must be an exact match for one field in both platforms. On the Pendo side, you can choose the Visitor ID, Account ID, or any other metadata field as your unique identifier.
If you don't already have unique identifiers in both platforms, we recommend matching Salesforce data with Pendo Account and Visitor IDs. To match these IDs in both platforms, set up recurring processes to export Account IDs and Visitor IDs from Pendo, and push these values into a field on the Salesforce object that you want to sync with. You might need to pull additional data from Pendo to help identify the appropriate record in Salesforce. These processes must run on a regular basis to add those values to the appropriate records in Salesforce when new Visitor and Account IDs are created in Pendo.
On the Salesforce side, you can choose any field that meets the following criteria:
- It doesn’t start with “Pendo_”.
- It's a string, float, or integer data type.
There should also be no duplicates of the field that you choose for your unique visitor and account identifiers. For example, if you choose the field
Set up the connection
After you plan which objects to connect and what fields within those objects to use as the unique identifiers, you’re ready to set up the connection in Pendo.
Setting up the connection must be completed by a Pendo admin user from the Data Mappings page, which is found in Settings at the bottom of the left-side navigation in Pendo.
We recommend creating a specific Salesforce user for Pendo and other third-parties instead of a user record tied to an individual employee. This protects you from having the Salesforce user deactivated if the employee leaves the company.
The Salesforce user must have API Enabled permissions and Read access to the objects and fields in Salesforce that you want to connect to Pendo. If you intend to push Pendo usage data into Salesforce, the user must also have Write access in Salesforce.
Authenticate with Salesforce
First, you must authenticate with Salesforce:
- Sign in to Salesforce as the user you plan to use for authenticating the Pendo Salesforce integration.
- In a separate tab, sign in to Pendo and go to Settings > Data Mappings. There are two tabs here: Visitor Level Data and Account Level Data. It doesn’t matter which tab you’re in for the steps in this section.
- Select Begin in the blue Salesforce Integration box at the bottom of the page and follow the authentication instructions. You can do this from either tab in Data Mappings. You don’t have to repeat the process for both visitor and account level data.
- Select Done when you see the green success message. This completes the authentication part of the process.
Set up mapping
For the integration to work properly, there must be no duplicates of the key field chosen to link Pendo and Salesforce. If you want to sync both the Pendo visitor and account objects, you must complete the following steps for each tab in Data Mappings:
- Select Setup Mapping in the blue Salesforce box at the bottom of the page.
- Select the Salesforce object that you want to connect with the appropriate Pendo object.
- Select the fields in Pendo and in Salesforce that you want to use for the unique identifier.
- Select Save.
You have now completed the initial setup of the Pendo Salesforce integration.
Check the mapping
Take note of the mapped Salesforce object and field for either or both Pendo accounts and Pendo visitors and check that this matches the information in Pendo.
You can find this information in each tab of the Data Mappings page. In the blue Salesforce box at the bottom of the page, select Setup Mapping and check that:
- The Salesforce Object is what you expect.
- The Pendo Field and the Salesforce Field match.
Set up "pull" data syncs
This section describes how to set up "pull" (read) data syncs with Salesforce. Pulling data into Pendo involves adding Salesforce data to Pendo as visitor and account metadata for segmentation, which can then be used for data analysis or guide targeting. For more information on what we mean by “pull” with the Salesforce integration, see the overview article: Salesforce integration with Pendo Engage.
As a Pendo admin user, go to Settings > Data Mappings. Unlike the initial connection process, you must set up your data syncs for Account Level Data and Visitor Level Data separately. If you’re adding visitor metadata, ensure you’re in the Visitor Level Data tab. If you’re adding account metadata, ensure you’re in the Account Level Data tab. If pulling both types of data, complete the following steps for each tab:
- Select Pick Fields to Add to Pendo in the blue Salesforce Integration box at the bottom of the page.
- Choose from the fields that exist in the Salesforce object that you identified during the initial connection process. If selected, these fields are pulled into Pendo as either visitor or account metadata fields.
- Select Done when you’re finished making your selection.
If you’re mapping both data types, repeat these steps for the other tab.
This data is automatically synced every 24 hours, but you can also manually sync by selecting Sync Now in the bottom right of the blue Salesforce Integration box. Metadata then pulls from Salesforce and appears on the corresponding object in Pendo’s Data Mappings page.
Set up "push" data syncs
This section describes how to set up "push" (write) data syncs with Salesforce. Pushing data into Salesforce involves syncing your visitor and account activity data in Pendo to objects that you specify in Salesforce. For more information on what we mean by “push” with the Salesforce integration, see the overview article: Salesforce integration with Pendo Engage.
Creating a "push" involves:
- Configuring an Account Report or Visitor Report in Pendo.
- Asking your Salesforce admin to create fields for Pendo to push data to.
- Creating a Salesforce Push within the account or visitor report you configured.
Data that’s pushed into Salesforce is based on content from an account or visitor report in Pendo. You must create or open a visitor or account report in Pendo and then create a Salesforce Push on that report, choosing the columns belonging to the visitor or account report you want to see in Salesforce.
Pendo pushes this data into the same object that was initially selected for setting up the connection. A Salesforce admin must create new fields belonging to this object in Salesforce for Pendo to push data to.
Configure a report in Pendo
Each push sync is set up within the individual visitor or account report, which allows you to set up syncs across multiple reports with different segments and date ranges if required. You can either create a new report or use an existing report. For guidance on configuring reports in Pendo, see the Visitor Reports and Account Reports articles. We recommend starting with accounts because most accounts in Pendo have a corresponding record in Salesforce. This isn't the case for every visitor.
In general, you can push any column that you can add to a visitor or account report into Salesforce, except Visitor ID and Account ID columns. Once a Salesforce field has been chosen for syncing in one report, it can't be selected in another report.
When configuring a report, we recommend the following best practices:
- Use a segment with a very small number of test accounts first. Once you've completed this, choose a wider segment or Everyone.
- Choose an appropriate date range for the report. Although the data syncs nightly, it always respects the report’s date range.
- Note the date range so that you can use it later for your Salesforce custom field names.
- Add report columns for the information that you want to sync to Salesforce, such as tagged Features and Pages to show the number of clicks or views.
- Export the report as a CSV file and save it so that you can share it with your Salesforce admin.
Contact your Salesforce admin
To avoid issues, Pendo only writes to custom fields in Salesforce that start with “Pendo_”. Therefore, before setting up a push sync, the Salesforce admin must create new fields in the corresponding Salesforce visitor or account object to hold the data from Pendo.
Contact your Salesforce admin with the following request to create custom Salesforce fields:
- For each report column that you want to sync to Salesforce, create a custom field in Salesforce.
- Start each custom field with “Pendo_”.
- The custom field must be a supported data type.
- The custom field must be on the Salesforce object that is connected to Pendo.
- The Salesforce user created for Pendo must have "write" access to those fields.
For example, a recommended destination field name for “time on site” from a report with the date range of “last 30 days” would be “Pendo_TimeOnSite_Last30Days”, and this new field should have a Salesforce data type of ‘int’ or ‘number’ .
Only destination fields that are named correctly are available for mapping when the Salesforce push is set up.
Create a Salesforce Push
Once these custom Salesforce fields have been created, you can set up mapping within the individual report so that Pendo knows which Salesforce fields to push the data into.
- From the People tab in the left-side menu in Pendo, navigate to and open the relevant report.
- Select Set Up next to the Salesforce Push row in the Report Summary.
- In the window that opens, select the Salesforce field that you want each report column to sync up to. The list is limited to Salesforce fields with “Pendo_” prepended to the field name. If you can't select a valid field, it's already being used in another report.
- Daily Sync is enabled by default, but can be disabled if required. After reviewing this, select Save Settings.
From the reports list in People > Accounts > Account Reports or People > Visitors > Visitors Reports, the column Salesforce Push shows you which reports are set up to sync to Salesforce. Below is an example of the Account Reports list.
Verify the push
- From the People tab in the left-side menu in Pendo, navigate to and open the relevant report.
- On the Salesforce Push row, select Sync Now. Pendo then attempts to push (write) data to the selected fields in Salesforce based on the configured mapping, indicated with a spinning icon at the end of the row.
- Wait for the sync to complete. If you have a lot of records in your Salesforce instance, this can take some time.
- When the sync is complete, check the Salesforce Push row in the Report Summary to verify that:
- The Daily Sync is on.
- How many columns are syncing.
- When the last successful sync was.
If the last sync was unsuccessful, the row displays an error message. Hover over this text to see a more detailed error message. If you have multiple reports set up to sync to Salesforce, you can also go to Settings > Error Log to scan for Salesforce errors across the subscription and open individual reports for more details. If you need help troubleshooting, contact Pendo Support.
As with pull data, push data is automatically synced every 24 hours, but you can also manually sync across all reports by selecting Sync Now in the bottom right of the blue Salesforce Integration box in Settings > Data Mappings.
Verify the integration
This section summarizes how you verify the initial connection between Pendo and Salesforce, verify a Salesforce pull, and verify a Salesforce push.
You can also go to Settings > Error Log to look for any recent error messages related to Salesforce. If you see an error message or something looks wrong, you can contact Pendo Support.
Verify the connection
In Pendo, verify that your integration is connected by navigating to Settings > Data Mappings and verifying that there are green check marks next to 1. Authenticate with Salesforce and 2. Setup Mapping in the blue Salesforce Integration box at the bottom of the page. Check the Visitor Level Data tab and the Account Level Data tab separately.
Check the Last Sync date and time, which looks 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 you see a warning about duplicate entries, this indicates that not all records are being updated. For more information, see Troubleshoot the Salesforce integration with Pendo Engage.
Verify a Salesforce pull
To verify that metadata is being pulled from Salesforce into Pendo successfully, look for the blue Salesforce metadata fields in Settings > Data Mappings. You can also check individual visitor or account records in Pendo to see the imported metadata.
Verify a Salesforce push
To verify that Pendo usage data is being pushed from Pendo to Salesforce, open each report that was set up to sync with Salesforce and look for the last successful sync time. You can also check individual visitor or account records in Salesforce to see the imported Pendo usage data.
We have Academy videos to help walk you through the process of setting up your Salesforce integration:
- If you're on our US domain, visit the US Pendo Academy.
- If you're on our EU domain, visit the EU Pendo Academy.
For additional help and guidance, see our other Salesforce integration content, including Troubleshoot the Pendo Engage Salesforce integration for common challenges.
Frequently asked questions
What happens if the integration finds duplicate records with the same identifier?
Even if duplicate records are identified, the sync still runs, but it causes some records to be updated and others to be skipped. To find out more about how the integration handles duplicate records and how to resolve this situation see Troubleshoot the Pendo Engage Salesforce integration.
Can I sync my Salesforce sandbox with Pendo?
The Salesforce Sandbox is an instance of Salesforce that doesn’t have production user data. You can sync your Salesforce Sandbox with Pendo, but Pendo Support must make a configuration change for your Pendo subscription first. You then see Sandbox Enabled in red text in the blue Salesforce Integration box at the bottom of the Data Mappings page. You can then set up the connection with a Salesforce sandbox instance.
There is no concept of a Pendo sandbox subscription. When testing with a sandbox Salesforce instance, we recommend choosing a unique identifier that will only find matches with a small number of records in Pendo. When testing is complete, and you're ready to connect Pendo to your Salesforce production environment, contact Pendo Support again. After they modify your subscription, you must set up the new connection.
Does Pendo store the Salesforce API username and password?
We don't store the Salesforce API username and password in Pendo. We use the Salesforce OAuth 2.0 authorization method to obtain a token for users that we store. That token can be revoked at any time by the Salesforce admin.
If I have multiple applications in my Pendo subscription, can I connect to different Salesforce instances or use different mappings for the connection?
No. The Salesforce integration is configured on a subscription level within Pendo, and applies to all applications in the subscription.
If I have multiple Pendo subscriptions, can I connect them to the same Salesforce instance?
Yes. You set this up separately within each Pendo subscription. When setting up the connection, you authenticate to the same Salesforce instance. However, be careful when setting up the push syncs within individual reports. You could set up reports in different subscriptions to push to the same Salesforce field and unintentionally overwrite each other.
What if I want to connect to more than one object?
The Salesforce integration isn't designed for this setup and requires more work from your Salesforce admin. If you need to sync data between more than one object, see Connect more than one object in Salesforce to Pendo Engage.