Skip to end of metadata
Go to start of metadata

Salesforce is an exceptionally powerful CRM tool used by hundreds of thousands of companies to manage their sales processes and relationships with existing customers. When integrated with Evergage, sales and customer support representatives working in Salesforce can gain access to the deep behavioral insights – gathered by Evergage – about visitors and customers interacting with your website, web application or mobile app. This includes information in the form of KPIs, segments, and customer health related to account or user details within Salesforce. Additionally, any text field, drop down menu, numeric value or segment data within Salesforce can be sent to Evergage where it can be used to deliver personalized experiences in real time. Integrating Evergage and Salesforce helps your organization stay informed of customer actions and health and deliver targeted website, web app or mobile app messages based on each customer’s unique relationship with your company. 

This Article Explains

This article details the process for integrating Salesforce and Evergage.

Sections in this Article


This integration requires you to have ModifyAllData permission as well as an intermediate or advanced level of Salesforce expertise.

Additionally, you must be capturing email address in Evergage. Please click CONTACT SUPPORT above if you are not capturing email address in Evergage or need assistance with this integration.


  1. An Enterprise or higher Salesforce account
  2. A field that can be uses to map users and accounts between Evergage and Salesforce (typically email address) which you must be capturing in both Evergage and Salesforce
  3. ModifyAllData permission which is not granted by default for any level of Salesforce access (even at the SysAdmin level)

Start the Integration in Evergage

  1. Log in to Evergage as an Administrator
  2. Select Third Party > Integration Setup
  3. Select Salesforce CRM
  4. On the Setup tab, copy the Callback URL
  5. Do not log out of Evergage


Continue the Integration in Salesforce

  1. Open Salesforce in a new browser window and log in as an Administrator
  2. Select Setup
  3. In the Build section, navigate to Create -> Apps
  4. In the Connected Apps section, click New
  5. In Basic Information, complete the required fields
    1. Connected App Name - enter Evergage 
    2. API Name - Evergage will automatically prefill
    3. Contact Email - enter your email address
  6. In API (Enable OAuth Settings), select Enable OAuth Settings
    1. In the Callback URL field, paste the Evergage Callback URL (copied in step 4)
    2. Add the following OAuth Scopes:
      1. Access and manage your data

      2. Access your basic information

      3. Perform requests on your behalf at any time 

  7. Click Save

Complete the Integration

If you are redirected to the top level Apps screen, click the Evergage Connected App you just created to return to the OAuth Settings screen
  1. In Salesforce, in your new Connected App Name: Evergage page, in the API section: 
    1. Consumer Key - copy this key from Salesforce to the same field in Evergage in Third Party > Integrations > Salesforce CRM
    2. Consumer Secret - click Click to reveal then copy from Salesforce to the same field in Evergage in Third Party > Integrations > Salesforce CRM
  2. In Evergage, select Connect to a sandbox if you are connecting to a Salesforce sandbox account.
  3. In Evergage, click ESTABLISH CONNECTION to create the connection between Evergage and Salesforce
  4. You may be prompted to log into your Salesforce account
  5. Click Allow if prompted to allow Evergage to access information in Salesforce



Now you need to decide what data you want to sync between Salesforce and Evergage.  By default, Evergage will sync with contacts and accounts, but syncing with leads is optional. While still in Third Party > Integrations > Salesforce CRM, determine if you have a unique identifier for each account and user that can be used to match Evergage data with Salesforce data. If this information is in both Salesforce and Evergage, this is the data to use to match users and accounts in Salesforce. Most commonly, this is an email address for the user and an account number/key for accounts:

  • Users - if you pass the user email address to Evergage, the user will be synced to the Salesforce contact with that email address
  • Accounts - if you pass the Evergage account (company) name, and there is a text match, the account will be synced. If there isn't a text match between the Evergage account (company) and the Account name in Salesforce, you must pass a unique identifier as a custom field to Evergage, such as a portalID or accountID; this identifier must also be on the account object in Salesforce


Synchronization Logic

You have option to sync with leads in addition to contacts and accounts. There are a few things to be aware of before determining if you should also sync with leads, contacts, or accounts:

  • A corresponding Evergage user is not created when a new Salesforce contact or lead is created
  • A corresponding Salesforce contact or lead is not created when a new Evergage user or account is created
  • Only matched users are synced
  • Salesforce contacts take precedence over leads. If there is a match on both the lead and contact level, Evergage will only sync on the contact level
  • There is a separate lead attribute. If a lead is converted to a contact, data will be synchronized with the contact record
  • Contacts, accounts, and leads will synchronize nightly, or when you click SYNCHRONIZE NOW

The setup process is similar to that of contacts and accounts. 


Select Evergage Fields to Push to Salesforce

Determine what you want to push from Evergage to Salesforce by selecting check boxes next to the data you want to send.

  1. In Evergage, still in Third Party > Salesforce CRM, select the Push tab
  2. If you want to synchronize more than one Evergage dataset to Salesforce, select Push data to dataset-specific Salesforce fields and then enter a text value in Dataset-specific field infix. This will be added to the field name as:   Evergage_infix_LastActivity
  3. Select Create Salesforce field sets to group Evergage fields if you want to group all Evergage fields in a single field set on your Contact or Account pages.
  4. On the User tab, select the data items you want to send 
  5. Click the Account tab and select the data items you want to send
  6. Click SAVE

Select Fields to Pull from Salesforce


  1. Select the Pull tab
  2. Click 
  3. Use the dropdown to select the Salesforce Field to pull
  4. Use the dropdown to select the Evergage User Field that will receive the data 
  5. Select Match On-Field to set the field as a unique identifier match between Salesforce and Evergage

    For more information on how fields are matched, please see the FAQ section below.

  6. Click ADD to add the new field
  7. Click SAVE to save changes


Initialize the Synchronization

Data will synchronize nightly, but only after an initial synchronization. Once the sync has successfully completed, the imported custom fields will be visible in Evergage on the Unified Customer Profile screen or the Account Details screen. Fields that have been pulled from Salesforce and mapped to Evergage attributes will be indicated by "(Salesforce)" after the field name.

  1. In Evergage, at the top of Third Party > Salesforce CRM > Setup, click SYNCHRONIZE NOW
  2. Once the synchronization is complete, the Last synchronized date and time will update, preceded by Success  
  3. Now the synchronization will happen nightly, but you can also manually synchronize the data at any time by following the same process

Adjust Salesforce Record Layouts to View Evergage Data

The Salesforce data that is pulled into Evergage is immediately usable in reports, filters, and the Unified Customer Profile Screen . In addition, Evergage data can be made available on contact, accounts, and lead records in Salesforce by adjusting the layout of the record. You can use workflows and formula fields in Salesforce to pass Evergage data from a contact or account to other Salesforce objects.


Since you may have more than one contact layout, before continuing, please speak with your Salesforce Administrator to confirm which layout needs to be adjusted to impact the screens utilized by your target user group.
  1. In Salesforce, click Setup at the top right of the screen next to your name
  2. In the Build section of the menu on the left, select Customize
  3. Select Contacts (or Accounts to change the account layout)
  4. Select Page Layouts
  5. Click Edit next to the Contact (or Account) layout you want to adjust
  6. Create a new section for Evergage by dragging and dropping the Section block to the desired location on the layout
  7. In the Section Properties box, name the section and select other options as needed
  8. Click OK
  9. Drag and drop the fields you want to add to the section
  10. Fields already in the layout are grayed out (in image at the right Evergage Eng. Trend is in the layout and Evergage in Segments is being added)
  11. Click Save


Frequently Asked Questions

How many API calls does Evergage use to sync with Salesforce?

Evergage uses two API calls for every 100 accounts and users. Since 100 items are batch processed at a time, one API call is used to push data to Salesforce and one API call is used to pull data from Salesforce.

What if the account names for a contact are different in Evergage and Salesforce?

It is often the case that the account name in Evergage does not exactly match the account name in Salesforce. For example, your contact John Doe is listed under account name Acme in Evergage, but the John Doe contact in Salesforce is associated with the account name Acme Fireworks. You can enable an option in Evergage that will match users who have the same contact name in Evergage and Salesforce, which will pull account IDs from Salesforce instead of from Evergage: 

  1. In Evergage, select Third Party > Integrations > Salesforce CRM
  2. Scroll to Advanced Options
  3. Select the second option: For Salesforce accounts that cannot otherwise be matched to Everage, obtain account IDs from matched Salesforce contacts
  4. Scroll to the top of the screen and click 

What if I make a change to OAuth security settings in Salesforce?

Any changes to Salesforce security settings at the OAuth App level, the Salesforce User level, or the Field security level may disrupt the integration. If the integration is not working as expected and you have made any security changes, you will need to reconfigure the integration.


What are the minimum security requirements for the integration?

  • User - the profile of the user establishing the OAuth connection must have the ModifyAllData permission. This permission is needed for Evergage to create custom fields using the Metadata API 
  • OAuth - the Connected App used by Evergage must include the following OAuth scopes:
    • Access your basic information (ID, profile, email, address, phone)
    • Access and manage your data (API)
    • Perform requests on your behalf at any time (refresh_token, offline_access)
  • Field - Each Salesforce contact, account, or lead field created by Evergage must be made visible to the profile of the Salesforce user that was used to establish the OAuth connection in Evergage. There are two ways to do this and you should discuss the best option with your Salesforce administrator:
    • Manually make each field visible after it has been created by Evergage
    • Contact Evergage Support to have Evergage automatically make new fields visible immediately after creation


How does Evergage match contacts, accounts, and leads?

Before a match occurs, Evergage checks the value of a specific Salesforce field for the Salesforce user against the value of any configured Evergage match fields. The Salesforce user will be matched to the corresponding Evergage user if any of the match fields are identical.

Contact matches occur on the following Salesforce fields (listed from highest to lowest priority):

  1. Salesforce ID
  2. Any other configured Salesforce match fields
  3. Salesforce Name or Salesforce Email but only if Only use designated match fields for matching users and accounts, if match fields are specified above is enabled in Evergage on the Setup tab, Advanced Options section

Lead matching follows the same protocol, however lead matching is disabled by default and contact matches take priority. Accounts matching also follows the same protocol as contact matching except Salesforce email is not used.


Troubleshooting the Synchronization

Confirm you have not made any security changes.

Any changes to Salesforce security settings at the OAuth App level, the Salesforce User level, or the Field security level may disrupt the integration. If the integration is not working as expected and you have made any security changes, you will need to reconfigure the integration.

Check your security settings.

  1. Confirm you have permissions selected for View Setup and Configuration
  2. Set Permitted Users to All users may self-authorize
  3. Under OAuth Policies set Refresh token policy to Refresh token is valid until revoked

Click show errors next to Last synchronized in Third Party > Salesforce CRM.

If the error detail lists any of the following error messages:

  • Error refreshing Salesforce OAuth token: token validity expired
  • Error refreshing Salesforce OAuth token: expired access/refresh token
  • Error refreshing Salesforce OAuth token: inactive user
  • INSUFFICIENT_ACCESS: use of the Metadata API requires a user with the ModifyAllData permission

Complete the following steps to resolve the error:

In Salesforce:

  1. Ensure the profile of the user establishing the OAuth connection has the ModifyAllData permission. This permission is needed for Evergage to create custom fields using the Metadata API
  2. Select Setup > Manage Apps > Connected Apps
  3. Edit the Evergage connected app (your might be named differently)
  4. In OAuth policies:
    1. Confirm Permitted Users is set to All users may self-authorize
    2. Confirm Refresh Token Policy is set to Refresh token is valid until revoked
  5. Make changes as needed and click Save
  6. At the top right of the screen next to your name, select Setup
  7. Under Build, select Create > Apps
  8. Under Connected Apps, click the name of the Evergage app (do not click Edit or Manage)
  9. You'll copy the Consumer Key and Consumer Secret in the next set of steps

In Evergage:

  1. Select Third Party > Salesforce CRM
  2. Expand Connect to Salesforce
  3. Copy the Consumer Key and the Consumer Secret from Salesforce to Evergage

Contact Evergage Support if you are unable to resolve any integration issues.

Email, click the CONTACT SUPPORT button above, or call us at (888) 310-0589 ext. 2