Overview
Pendo’s Salesforce integration offers a bidirectional data sync between a Pendo account or Pendo visitor object and a Salesforce object. Automated to update every 24 hours, the integration creates a one-to-one match between accounts in both systems that allows users to push data to and pull data from Salesforce and Pendo. With this integration in place, you can use Salesforce attributes to filter and target guides in Pendo or even incorporate Pendo data into your broader organizational processes through Salesforce objects.
Pull
Salesforce Pull lets you pull data from Salesforce to Pendo.
What Can Be Synced?
The Pendo/Salesforce integration syncs any supported data that lives inside a Salesforce object. You can select the desired Salesforce fields, and they will be pulled into the Pendo Account or Visitor object. You will need to have a key on both the Pendo side and Salesforce side that matches one-to-one to connect the two data sources (such as a "salesforce ID" or a matching "Visitor ID").
Push
Salesforce Push lets you “push” data from Pendo Account and Visitor reports to Salesforce on a nightly basis. Now you can leverage Pendo data inside Salesforce for workflows, generating tasks, sending notifications, reporting, and 3rd party integrations. We figured it was about time you put Pendo to work inside the rest of your organization. For example you can …
- Create tasks for Customer Success when activity drops below a certain amount
- Join Pendo data with existing Salesforce support data to create a health score
- Use a 3rd party marketing tool
Requirements
- At least Pendo Pro package, or a one-time purchase of a Pendo integration key
- Pendo admin access
- Salesforce admin access
- API access to Salesforce Enterprise, Salesforce Unlimited or a paid upgrade to Salesforce Professional with API access added
Tip: Reach out to your Pendo contact if you need to add the Integration to your Pendo subscription.
Set up Instructions
Verify that your existing integration setup is working
Note: Pendo admin required to facilitate
- In Pendo, navigate to your data mappings page (found under Install settings)
- Check to see if your sync works correctly. You should see three green checks and a recent Last Sync date
- If something looks off or you need help setting up your Salesforce integration, contact support at help@pendo.io for assistance
Verify the Authenticated User and Setup Mapping
- Click Authenticate with Salesforce
- Verify the Salesforce user with API access
- Take note of the mapped Salesforce object for both Accounts and Visitors. Access this information by clicking on Setup & Test Mapping.
Create a New Pendo Account Report
Most customers will want to push Pendo Account data to Salesforce Accounts. Pushing Visitor data can be a little trickier as there are often duplicate contacts in Salesforce. We recommend starting with Accounts.
- Navigate to Account Reports and click on Create New Report.
- Configure your report. We recommend setting the Segment to Everyone. Why? Chances are you don’t have matching Salesforce records for your demo, test, internal accounts anyway. We won’t find a match. No harm done.
- When picking a Date Range, consider your goals. Does getting yesterday’s data help you? For triggering something based on yesterday’s activity it might. We also recommend noting the Date Range, so that you can use it later for your Salesforce custom field names
- Create the report and prepare an example .csv file for your Salesforce Admin
Contact Your Salesforce Admin With A Brief Setup Task
Reach out to your Salesforce Admin with instructions to configure the sync. Below is a sample note to send to your Salesforce Admin:
Dear [SFDC Admin]
We’re using this tool called Pendo, and we’d like to sync Pendo data with Salesforce nightly. I’ve been assured it is safe. Here’s what we need from you:
First, I need to make sure that the following API user has write access. Don’t worry, this integration only works with namespaced fields, so I can’t do any harm. [INSERT AUTHENTICATED USER EMAIL HERE]
On the [INSERT MAPPED OBJECT HERE] object, create 3 custom fields and prepend “Pendo” to each field name. The integration is limited to “Pendo” fields to prevent accidents. Ideally, we’d use the labels below, but as long as you use “Pendo_” the field names are up to you. Note that this is case sensitive.
I have also attached a .csv file to give you an idea of the data types.
Please feel free to reach out to Pendo with any questions at help@pendo.io
Configure The Push
- Click on "Set Up" next to Salesforce Push on the Report page
- Map the desired Pendo Columns to Salesforce Fields. You’ll note that your list of available Salesforce Fields is constrained to fields with “Pendo_” prepended to the field name.
Mapping Data
To map data in the integration, pair the field name in Salesforce to a field name in Pendo.
Note: For the integration to work properly it is critical that there are no duplicates of the key field chosen to link Pendo and Salesforce.
Verify the Setup Mapping
- Take note of the mapped Salesforce object for both Accounts and Visitors. Access this information by clicking on Setup & Test Mapping.
Supported Data Types
Salesforce Primitive Types: Pendo Metadata Type
- "int": "integer"
- "string": "string"
- "boolean": "boolean"
- "date": "date"
- "datetime": "time"
- "double": "float"
Salesforce Field Types: Pendo Metadata Type
- "combobox": "string"
- "currency": "float"
- "email": "string"
- "id": "string"
- "multipicklist": "string"
- "percent": "float"
- "phone": "string"
- "picklist": "string"
- "url": "string"
- "number": "integer"
Any data types not listed above are not supported.
Pendo is not currently compatible with Lookup Type, Record Type, Address (Workaround), Hierarchy, Content(20) and URL(255) object types.
Technical Troubleshooting and Gotchas
Duplicate Entries
- Duplicate entries means that for a given visitor ID in Pendo, the sync found two Salesforce objects that matched the target field
- For duplicate Pendo values, the sync favors the smaller pendo object ID and will replace existing data
- For duplicate Salesforce values, the sync favors the initial value pushed to Salesforce
Integration Widget Configuration
- Choose the right fields
- Be sure to appropriately flag field names vs. display names. The sync uses field names.
- Incorrect user permissions
- SFDC subscription must include API access (paid feature)
- SFDC user account must have “API Access Enabled” and basic read access for pull sync
- SFDC user account must also have “Modify Data” rights for the object accessed in the push sync
- SFDC field data type != Pendo data type: Sync errors from SFDC API
Fields that don’t work
If there’s not match on the other side or the sync uses an unsupported data type, we will not create records in Salesforce or Pendo.
- Pull
- Certain data types are unsupported: master-detail, formula, lookup, record type, address, hierarchy, content(20) and URL(255) object types
- Push
- Can’t use “visitorId” or “accountId” for push sync in a report -- may not be an actual limitation
Frequently Asked Questions
How Often Does It Sync?
The Salesforce Integration syncs automatically every 24 hours. You can manually sync at any time from the data mappings page. We recommend that you force a sync as soon as you have setup the integration to test that it is working properly. Any sync, whether manual or automatic, runs both Salesforce pull and push.
Can I Sync My Salesforce Sandbox With Pendo?
Yes, but we will need to make a configuration change for your Pendo subscription first. Please contact Support (help@pendo.io).
Why Isn't A Specific Salesforce Field Available For Pulling Into Pendo?
When configuring the 'Pick Fields to Add to Pendo' section, if a specific field in Salesforce is not available for you to select, please confirm that it is a supported data type, and that the field does not start with 'Pendo'. Salesforce fields that start with 'Pendo' cannot be used for pulling data into Pendo since they are reserved for Push only.
What Is Pushing Data To Salesforce?
The push to Salesforce feature allows you to sync activity data from visitors and accounts in Pendo to Contact and Account objects in Salesforce on a daily basis. This data then becomes available to be used in Salesforce workflows, reports, and activities. It also become accessible to other applications that can connect to Salesforce
What Use Cases Are Possible If We Use Push?
Pushing data to Salesforce takes information from Pendo and makes it more broadly accessible to additional roles and processes across the organization. Some example use cases include: Triggering an outreach (email, phone call) based on observed behavior in an application. For example, if the frequency of logins for a particular account drops significantly, you may want to trigger an offline follow-up from Support or Customer Success. Using data from Pendo as part of a composite customer health score. Usage data from Pendo can be integrated with other financial, and operational data for highly predictive customer scoring Using Salesforce as a “clearinghouse” to bring together data from different parts of the customer journey. For example, you can track user behavior prior to login / registration using a marketing automation tool, and marry that with behind-the-login activities from Pendo - using a Salesforce contact record.
How Does Push Work?
The push feature operates a reverse of Pendo’s existing Salesforce (pull) integration. It uses the same contact and account objects that metadata fields are pulled from to push out selected information from Pendo. The mappings use the same authentication key as Salesforce pull, so this will need to be setup and working correctly in order for the push feature to work.
What Do I Need To Setup To Make Push Work?
In order to successfully enable the data push to Salesforce, you will need to have the following things setup: Integration (pull) with Salesforce. The push feature uses the same integrations (and Salesforce keys) as the existing feature that allowed you to pull Salesforce metadata into Pendo. This must be setup correctly before you can push Pendo data into Salesforce Pendo admin access. You will need to be a Pendo administrator to setup the push feature on Pendo reports. Admin access is also required to setup Salesforce (pull) integration. Administrative access to SalesForce. You will need to be (or have access to) a Salesforce administrator to setup the custom fields in Salesforce that will receive data from Pendo Custom fields. You will need to setup specific custom fields in Salesforce account or contact objects to receive the data from Pendo.
What Data Can Be Pushed To Salesforce?
Pendo uses the content from the Account and Visitor report as a basis for the data that is pushed to Salesforce. Any field from those reports can be pushed to Salesforce. Data such as “number of visitors” per Account, “time on site”, “last visit”, etc. can be valuable when added to Salesforce objects. Most users will want to focus on the Account reports. There are often duplicate accounts in Salesforce which can make it difficult to map (and use the data later on) correctly in Salesforce.
Since push to Salesforce is based on specific Account or Visitor reports, it’s important to consider the date range for the report. Although the data syncs nightly it will always respect the report’s date range. So, for example, users will want to think through whether it’s more valuable to sync data from the last 7 or 30 days for a particular report.
What Are The Fields That Pendo Is Writing To In Salesforce?
To avoid any issues, Pendo only writes to custom, namespaced fields in Salesforce. Therefore before setting up push the Salesforce admin will need to create specific fields within the Account or Contact object to hold the data from Pendo. These fields must be pre-pended with “Pendo_”. So 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”. Only destination fields that are named correctly will be available for mapping when the Salesforce push is set up.
What Happens If There Is No Matching Account Or Contact In Salesforce?
The Salesforce push relies on the same objects that are setup for pulling data into Pendo. Pendo will only push data into matching objects. It will not create new records in Salesforce. If no matching record is found the data will not push out to Salesforce.
Why Are There Empty Rows In My Salesforce Push Reports?
When creating Account or Visitor reports, the report will only show data rows of Accounts or Visitors that meet the segment and date range criteria. When utilizing our Salesforce Push Integration with a report, you may notice additional rows that would not normally be included in the report - and these row’s may have “0”s for values.
Empty rows can also happen if there are duplicated Visitor and Account IDs. This includes Visitor reports that pull in Account-level data and Account reports that pull in Visitor-level data. This can potentially lead to sync failure due to duplicate ids in rows. If this happens, our current recommendation is to use visitor data only for Visitor reports, and Account-level data for Account reports.
Why? - These empty rows are necessary for Salesforce Push because Accounts/Visitors without data still need to be mapped 1:1 with Salesforce objects.
Can I undo this? - At this time, the only way to remove the empty rows is to create a new report with the same parameters.
Will these empty rows overwrite my data in Salesforce? - No. The empty row values that are sent to Salesforce with our Salesforce Push Integration will not overwrite data that has been sent to and stored in Salesforce.
Does Pendo Store The Salesforce API Username And Password?
We do not store the username and password in Pendo; we use the Salesforce OAuth 2.0 authorization method to obtain a token for that user that we store.
That token can be revoked at any time by the Salesforce Admin.
When I Pull In SFDC Fields And Then Add Them As Columns, They Are All Blank?
If the pull is working correctly, data will appear instantly on the account details page for a specific account, however it can take up to 1 hour for it to appear in report lists. Check back periodically to see if it’s been updated.
What If I Don't Have A Key On Both The Pendo And Salesforce Side That Matches One-To-One To Connect The Two Data Sources?
We recommend using a unique identifier, such as Account IDs and Visitor IDs, however you aren't limited to only these fields as the unique identifier. There must be an exact match for one field in both platforms.
The easiest way to match IDs in both platforms is to set up a process to export the Account IDs from Pendo and push those values into a field on the Salesforce object that you want to sync with. You may have to pull additional data from Pendo to help identify the appropriate record in Salesforce. Repeat the process to sync visitor IDs. These processes need to run on a regular basis to add those values to the appropriate records in Salesforce as new Visitor and Account IDs are created in Pendo.
Pull
Salesforce Pull lets you pull data from Salesforce to Pendo.
What can be synced?
The Pendo/Salesforce integration can sync any data that lives inside a Salesforce object. You can select the desired Salesforce fields, and they will be pulled into the Pendo Account or Visitor object. You will need to have a key on both the Pendo side and Salesforce side that matches one-to-one to connect the two data sources (such as a "salesforce ID" or a matching "Visitor ID").
How often is it synced?
Data is synced once per day. You can also manually sync the data at any point on the Pendo Data Mappings page.
How do I set it up?
If you are an administrator in Pendo, head to the Data Mappings page. This is accessible when clicking the gear in the bottom left hand corner. If Salesforce is enabled for your account, you will see the Salesforce Integration on the right hand side. Follow the instructions to setup the integration.
To use the Pendo/Salesforce Integration, you will need to sign into Salesforce with a user who has "API Enabled" permissions, as well as Read access to the Accounts object and Contacts object.
What can I do with this data?
Once you have linked your Salesforce data, you can use it throughout Pendo. Specifically, you can slice and dice your data, filter, and target guides at visitors based on Salesforce attributes.
Push
Salesforce Push lets you “push” data from Pendo Account and Visitor reports to Salesforce on a nightly basis. Now you can leverage Pendo data inside Salesforce for workflows, generating tasks, sending notifications, reporting, and 3rd party integrations. We figured it was about time you put Pendo to work inside the rest of your organization. For example you can …
- Create tasks for Customer Success when activity drops below a certain amount
- Join Pendo data with existing Salesforce support data to create a health score
- Use a 3rd party marketing tool
How does it work?
Salesforce Push leverages the authentication and object mapping from our existing “Pull” functionality. You have the option of mapping to a single Salesforce object for Pendo Accounts, and/or a single Salesforce object for Pendo Visitors. A common setup maps both Salesforce Accounts and Salesforce Contacts, though you can also target custom objects.
To configure outbound data, we use existing Pendo Account and Visitor Reports.
Some Caveats
- Requires API access to Salesforce Enterprise, Salesforce Unlimited or a paid upgrade to Salesforce Professional with API access added.
- We currently support syncing to all custom objects, and the following standard Salesforce Objects: Account, Asset, Contact, Lead, Opportunity
- For the moment we are not creating Salesforce records if a match does not exist already
- As the diagram above indicates, you must push data to the same Salesforce object that you currently pull from. We may explore allowing syncing to different objects in the future.
- Our integration is not available on the AppExchange, and it is not a Managed Package Integration. According to the Admins we’ve interviewed, this was fine given the simplicity of the integration.
- If you experience any issues please contact help@pendo.io
Setup Overview
With the help of your Salesforce admin, you should be up and running in 15 minutes.
Find a Pendo admin
You’ll need admin access to configure Push.
Verify that your existing integration setup is working
Navigate to your Data Mappings page (found under Install Settings).
- Check to see whether your sync has been working correctly. You should see three green checks, and a recent Last Sync date.
- Does something look off? Do you need help setting up your Salesforce integration? Please contact support at help@pendo.io for assistance.
Verify the authenticated user
- Click Authenticate with Salesforce
- Verify the Salesforce user with API access. You may want to write this down.
Verify Your Setup Mapping
Take note of the mapped Salesforce object for both Accounts and Visitors. Access this information by clicking on Setup & Test Mapping.
Create a new Pendo Account Report
Most customers will want to push Pendo Account data to Salesforce Accounts. Pushing Visitor data can be a little trickier as there are often duplicate contacts in Salesforce. We recommend starting with Accounts. Navigate to Account Reports and click on Create New Report.
- Configure your report. We recommend setting the Segment to Everyone. Why? Chances are you don’t have matching Salesforce records for your demo, test, internal accounts anyway. We won’t find a match. No harm done.
- When picking a Date Range, consider your goals. Does getting yesterday’s data help you? For triggering something based on yesterday’s activity it might. We also recommend noting the Date Range, so that you can use it later for your Salesforce custom field names
- Create the report.
- Prepare an example file for your Salesforce Admin. Export a .CSV and save it.
Contact your Salesforce admin with a brief setup task
Now you are ready to send a note to your Salesforce Admin. Here is a good sample:
Dear [SFDC Admin]
We’re using this tool called Pendo, and we’d like to sync Pendo data with Salesforce nightly. I’ve been assured it is safe. Here’s what we need from you:
First, I need to make sure that the following API user has write access. Don’t worry, this integration only works with namespaced fields, so I can’t do any harm. [INSERT AUTHENTICATED USER EMAIL HERE]
On the [INSERT MAPPED OBJECT HERE] object, create 3 custom fields and prepend “Pendo” to each field name. The integration is limited to “Pendo” fields to prevent accidents. Ideally, we’d use the labels below, but as long as you use “Pendo_” the field names are up to you. Note that this is case sensitive.
I have also attached a .csv file to give you an idea of the data types.
Please feel free to reach out to Pendo with any questions at help@pendo.io
Configure the Push
Click on "Set Up" next to Salesforce Push on the Report page
- Map the desired Pendo Columns to Salesforce Fields. You’ll note that your list of available Salesforce Fields is constrained to fields with “Pendo_” prepended to the field name.
Test the Sync
We recommend that you temporarily add a Segment that targets a single Account. When ready, click Sync Now.
Did that work? Set the segment back to Everyone and sync again.
Frequently Asked Questions
Supported Data Types
Salesforce Primitive Types: Pendo Metadata Type
- "int": "integer"
- "string": "string"
- "boolean": "boolean"
- "date": "date"
- "datetime": "time"
- "double": "float"
Salesforce Field Types: Pendo Metadata Type
- "combobox": "string"
- "currency": "float"
- "email": "string"
- "id": "string"
- "multipicklist": "string"
- "percent": "float"
- "phone": "string"
- "picklist": "string"
- "url": "string"
- "number": "integer"
Any data types not listed above are not supported.
Pendo is not currently compatible with Lookup Type, Record Type, Address (Workaround), Hierarchy, Content(20) and URL(255) object types.
How often does it sync?
The Salesforce Integration syncs automatically every 24 hours. You can manually sync at any time from the data mappings page. We recommend that you force a sync as soon as you have setup the integration to test that it is working properly. Any sync, whether manual or automatic, runs both Salesforce pull and push.
Can I Sync My Salesforce Sandbox with Pendo?
Yes, but we will need to make a configuration change for your Pendo subscription first. Please contact Support (help@pendo.io).
Why isn't a specific Salesforce field available for pulling into Pendo?
When configuring the 'Pick Fields to Add to Pendo' section, if a specific field in Salesforce is not available for you to select, please confirm that it is a supported data type, and that the field does not start with 'Pendo'. Salesforce fields that start with 'Pendo' cannot be used for pulling data into Pendo since they are reserved for Push only.
What is Pushing Data to Salesforce?
The push to Salesforce feature allows you to sync activity data from visitors and accounts in Pendo to Contact and Account objects in Salesforce on a daily basis. This data then becomes available to be used in Salesforce workflows, reports, and activities. It also become accessible to other applications that can connect to Salesforce
Why would we want to use Push?
Pushing data to Salesforce takes information from Pendo and makes it more broadly accessible across to additional roles and processes across the organization. Some example use cases include: Triggering an outreach (email, phone call) based on observed behavior in an application. For example, if the frequency of logins for a particular account drops significantly, you may want to trigger an offline follow-up from Support or Customer Success. Using data from Pendo as part of a composite customer health score. Usage data from Pendo can be integrated with other financial, and operational data for highly predictive customer scoring Using Salesforce as a “clearinghouse” to bring together data from different parts of the customer journey. For example, you can track user behavior prior to login / registration using a marketing automation tool, and marry that with behind-the-login activities from Pendo - using a Salesforce contact record.
How does Push work?
The push feature operates a reverse of Pendo’s existing Salesforce (pull) integration. It uses the same contact and account objects that metadata fields are pulled from to push out selected information from Pendo. The mappings use the same authentication key as Salesforce pull, so this will need to be setup and working correctly in order for the push feature to work.
What do I need to setup to make Push work?
In order to successfully enable the data push to Salesforce, you will need to have the following things setup: Integration (pull) with Salesforce. The push feature uses the same integrations (and Salesforce keys) as the existing feature that allowed you to pull Salesforce metadata into Pendo. This must be setup correctly before you can push Pendo data into Salesforce Pendo admin access. You will need to be a Pendo administrator to setup the push feature on Pendo reports. Admin access is also required to setup Salesforce (pull) integration. Administrative access to SalesForce. You will need to be (or have access to) a Salesforce administrator to setup the custom fields in Salesforce that will receive data from Pendo Custom fields. You will need to setup specific custom fields in Salesforce account or contact objects to receive the data from Pendo.
What data can be pushed to Salesforce?
Pendo uses the content from the Account and Visitor report as a basis for the data that is pushed to Salesforce. Any field from those reports can be pushed to Salesforce. Data such as “number of visitors” per Account, “time on site”, “last visit”, etc. can be valuable when added to Salesforce objects. Most users will want to focus on the Account reports. There are often duplicate accounts in Salesforce which can make it difficult to map (and use the data later on) correctly in Salesforce.
Since push to Salesforce is based on specific Account or Visitor reports, it’s important to consider the date range for the report. Although the data syncs nightly it will always respect the report’s date range. So, for example, users will want to think through whether it’s more valuable to sync data from the last 7 or 30 days for a particular report.
What are the fields that Pendo is writing to in Salesforce?
To avoid any issues, Pendo only writes to custom, namespaced fields in Salesforce. Therefore before setting up push the Salesforce admin will need to create specific fields within the Account or Contact object to hold the data from Pendo. These fields must be pre-pended with “Pendo_”. So 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”. Only destination fields that are named correctly will be available for mapping when the Salesforce push is set up.
What happens if there is no matching account or contact in Salesforce?
The Salesforce push relies on the same objects that are setup for pulling data into Pendo. Pendo will only push data into matching objects. It will not create new records in Salesforce. If no matching record is found the data will not push out to Salesforce.
Why are there empty rows in my Salesforce Push reports?
When creating Account or Visitor reports, the report will only show data rows of Accounts or Visitors that meet the segment and date range criteria. When utilizing our Salesforce Push Integration with a report, you may notice additional rows that would not normally be included in the report - and these row’s may have “0”s for values.
Why? - These empty rows are necessary for Salesforce Push because Accounts/Visitors without data still need to be mapped 1:1 with Salesforce objects.
Can I undo this? - At this time, the only way to remove the empty rows is to create a new report with the same parameters.
Will these empty rows overwrite my data in Salesforce? - No. The empty row values that are sent to Salesforce with our Salesforce Push Integration will not overwrite data that has been sent to and stored in Salesforce.
Does Pendo store the Salesforce API username and password?
We do not store the username and password in Pendo; we use the Salesforce OAuth 2.0 authorization method to obtain a token for that user that we store.
That token can be revoked at any time by the Salesforce Admin.
When I pull in SFDC fields and then add them as columns, they are all blank?
If the pull is working correctly, data will appear instantly on the account details page for a specific account, however it can take up to 1 hour for it to appear in report lists. Check back periodically to see if it’s been updated.
What if I don't have a key on both the Pendo and Salesforce side that matches one-to-one to connect the two data sources?
We recommend using a unique identifier, such as Account IDs and Visitor IDs, however you aren't limited to only these fields as the unique identifier. There must be an exact match for one field in both platforms.
The easiest way to match IDs in both platforms is to set up a process to export the Account IDs from Pendo and push those values into a field on the Salesforce object that you want to sync with. You may have to pull additional data from Pendo to help identify the appropriate record in Salesforce. Repeat the process to sync visitor IDs. These processes need to run on a regular basis to add those values to the appropriate records in Salesforce as new Visitor and Account IDs are created in Pendo.