Salesforce Integration Overview

Pendo’s Salesforce integration offers a bidirectional data sync between a Pendo Account or Visitor object and a Salesforce object. With this integration, you can use Salesforce attributes to filter and target Guides in Pendo or to incorporate Pendo data into your broader organizational processes through Salesforce objects.

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.

Salesforce_integration_header.png

Requirements

  • At least the 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.

Pull

You can pull data from Salesforce to Pendo. Data is synced once per day. You can also manually sync the data at any point on the Pendo Data Mappings page.

The Pendo-Salesforce integration can sync any data that lives inside a Salesforce object. You can select the desired Salesforce fields to pull into the Pendo Account or Visitor object. You must 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").

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. 

Setup

If you're an administrator in Pendo, go the Data Mappings page, which you can access by selecting the gear in the bottom-left corner of Pendo.

If Salesforce is enabled for your account, the Salesforce Integration is located on the right side of the screen. Follow the instructions to set up the integration.

Use the integration

To use the Pendo-Salesforce Integration, you must sign into Salesforce with a user who has "API Enabled" permissions, as well as Read access to the Accounts object and Contacts object.

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 vsitors based on Salesforce attributes.

Push

You can push data from Pendo Account and Visitor reports to Salesforce on a nightly basis.

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, 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. 

Setup

To configure outbound data, we use existing Pendo Account and Visitor Reports. You must have admin access to configure Push.

Verify that your existing integration setup is working

1. Verify that your existing integration setup is working.

Navigate to your Data Mappings page, found under Install Settings. Check that your sync works. You should see three green checks and a recent Last Sync date.

If something looks wrong, or your need help setting up your Salesforce integration, contact Pendo Support.

SF_3.png

Step 2: Verify the authenticated user.

Select Authenticate with Salesforce and verify the Salesforce user with API access. We recommend that you take a note of the mapped Salesforce object for both Accounts and Visitors. Access this information by selecting Setup & Test Mapping.

SF_4.png

3. Verify your setup mapping.

Take note of the mapped Salesforce object for both Accounts and Visitors. Access this information by selecting Setup & Test Mapping.

SF_5.png

4. Create a new Pendo Account Report.

Most customers want to push Pendo Account data to Salesforce Accounts. Pushing visitor data can be more difficult because there are often duplicate contacts in Salesforce. We recommend starting with Accounts.

Navigate to Account Reports and select on Create New Report.

SF_6.png

5. Configure your report.

We recommend setting the Segment to Everyone because it's likely that we don’t have matching Salesforce records for your demo, test, or internal accounts.

When choose 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 file for your Salesforce Admin. Export a .CSV and save it.

SF_7-1.pngSF_7-2.png

6. Contact your Salesforce Admin with a brief setup task

Contact 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's 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.

SF_9.pngI have also attached a .csv file to give you an idea of the data types.

Please feel free to reach out to Pendo Support for any questions.

7. Configure the push. Select Set Up next to Salesforce Push on the Report page.

Map the desired Pendo Columns to Salesforce fields. Your list of available Salesforce fields is constrained to fields with “Pendo_” prepended to the field name.

SF_10.png

SF_11.png

8. Test the sync. We recommend that you temporarily add a Segment that targets a single Account. When ready, select Sync Now.

If that worked, set the segment back to Everyone and sync again.

SF_12.png

Use the integration

Leverage Pendo data inside Salesforce for workflows, generating tasks, sending notifications, reporting, and 3rd party integrations. For example:

  • 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.

Caveats

  1. Salesforce Push requires API access to Salesforce Enterprise, Salesforce Unlimited, or a ​paid upgrade to Salesforce Professional with API access added.
  2. We currently support syncing to all custom objects, and the following standard Salesforce Objects: Account, Asset, Contact, Lead, Opportunity.
  3. We don't create Salesforce records if a match doesn't already exist.
  4. As the diagram above indicates, you must push data to the same Salesforce object that you currently pull from. We might explore allowing syncing to different objects in the future.
  5. Our integration isn't available on the AppExchange, and it isn't a Managed Package Integration.
  6. If you experience any issues, contact Pendo Support.

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's 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. Select Setup & Test Mapping to access this information.

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 aren't supported.

Pendo is not currently compatible with Lookup Type, Record Type, Address (Workaround), Hierarchy, Content(20), and URL(255) object types.

Technical Troubleshooting

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 replaces existing data. For duplicate Salesforce values, the sync favors the initial value pushed to Salesforce.

Integration Widget Configuration

Choose the right fields. Appropriately flag field names versus display names. The sync uses field names.

    • 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 no match on the other side or the sync uses an unsupported data type, we don't 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. We can’t use “visitorId” or “accountId” for push sync in a report.

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's 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 need to make a configuration change for your Pendo subscription first. For help, contact Pendo Support.

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 isn't available for you to select, verify that it's a supported data type, and that the field doesn't start with 'Pendo'. Salesforce fields that start with 'Pendo' can't 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 becomes available 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.

For example, you might want to trigger an outreach (email or phone call) based on observed behavior in an application. If the frequency of logins for a particular Account drops significantly, you might want to trigger an offline follow-up from Support or Customer Success.

You might also want to use 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 predictive customer scoring.

You can also use Salesforce as a “clearing house” to bring data together from different parts of the customer journey. For example, you can track user behavior prior to login or registration using a marketing automation tool, and merge that with behind-the-login activities from Pendo, using a Salesforce contact record.

How does push work?

The push feature is the reverse of Pendo’s existing Salesforce (pull) integration. It uses the same contact and account objects that metadata fields are pulled from to push selected information from Pendo. The mappings use the same authentication key as Salesforce pull, so this must be set up and working correctly for the push feature to work.

What do I need to set up to make push work?

To successfully enable the data push to Salesforce, you must have the following things set up:

  • 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 set up correctly before you can push Pendo data into Salesforce Pendo admin access.
  • Pendo administrator permissions is needed to set up the push feature on Pendo reports. Admin access is also required to set up Salesforce (pull) integration.
  • Administrative access to SalesForce. You must be, or have access to, a Salesforce administrator to set up the custom fields in Salesforce that receive data from Pendo Custom fields.
  • Set up specific custom fields in your 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's 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, and so on, can be valuable when added to Salesforce objects. Most users focus on the Account reports. There are often duplicate Accounts in Salesforce that 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 always respects the report’s date range. So, for example, consider 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 issues, Pendo only writes to custom, name-specific fields in Salesforce. Therefore, before setting up push, the Salesforce admin must create specific fields in the Account or Contact object to hold the data from Pendo. These fields must be pre-pended with “Pendo_”.

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 are available for mapping when the Salesforce push is set up.

What happens if there's no matching Account or Contact in Salesforce?

The Salesforce push relies on the same objects that are setup for pulling data into Pendo. Pendo only pushes data into matching objects. It doesn't create new records in Salesforce. If no matching record is found, the data doesn't push to Salesforce.

Why are there empty rows in my Salesforce push reports?

When creating account or visitor reports, the report only shows data rows of account or visitors that meet the segment and date range criteria. When using our Salesforce Push Integration with a report, you might notice additional rows that wouldn't normally be included in the report. These row’s might have zeros (0) for values.

Empty rows can also appear if there are duplicate 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 lead to sync failure due to duplicate IDs in rows. If this happens, we recommend only using visitor-level data for visitor reports, and account-level data for account reports.

These empty rows are necessary for Salesforce Push because account or visitors without data must still be mapped one-to-one with Salesforce objects.

The only way to remove the empty rows is to create a new report with the same parameters.

The empty row values that are sent to Salesforce with our Salesforce Push Integration don't overwrite data that has been sent to and stored in Salesforce.

Does Pendo store the Salesforce API username and password?

We don't store the 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.

Why are my Salesforce fields blank when I pull them in and then add them as columns?

If the pull is working correctly, data appears instantly on the Account details page for a specific Account. However, it can take up to one hour for it to appear in report lists. Check 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 might 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.