โšก
Other integrations
๐Ÿ’Ÿ
Account health scores & metrics
Salesforce
Sync your Salesforce accounts, contacts, notes, tasks, and custom objects to Vitally in real time with our Salesforce integration

Overview

Vitally's Salesforce integration can sync the following data between Salesforce and Vitally:
  • Accounts - Bi-directionally sync and/or import Salesforce Accounts (or the Salesforce object you use as the equivalent) into Vitally as Vitally Accounts. You'll be able to whitelist the Salesforce fields to add to your Vitally account profiles, make changes to those fields in Vitally, and push Vitally's customer analytics (e.g. health scores, indicators) back to your Salesforce records.
  • Contacts - Bi-directionally sync and/or import Salesforce contacts into Vitally as Vitally Users.
  • Opportunities and Custom Objects - Bi-directionally sync any custom object from Salesforce into Vitally, and even create new objects directly in Vitally. Opportunities are treated as Custom Objects, and are supported in the same full read/write/create basis.
  • Notes - Sync your Salesforce notes into Vitally and push Vitally's notes back to Salesforce.
  • Tasks - Sync your Salesforce tasks into Vitally and push Vitally's tasks back to Salesforce.
When we do the initial/historical sync we sync all custom objects that were updated in the past 12 months.

Supported Salesforce Field Types

Vitally Field
SFDC Field
String
anyType
Number
anyType
Date
DataCategoryGroupReference
Boolean
anyType
Multi-select
anyType
Text-area
textarea
File attachment
N/A

Enabling the Salesforce integration

Navigate to Integrations -> Salesforce in your Account Settings (or via Quick Jump) and click the Connect to Salesforce button. That will redirect you to Salesforce, where you'll need to grant Vitally access to your Salesforce data.
Before you enable the Salesforce integration, ensure that:
  • Your Salesforce account has the REST API add-on
  • The Salesforce user you connect with has permission to manage the Push Topic object (which is used by Vitally to subscribe to Salesforce changes in real time)
  • You haven't exhausted your API credits for the day

Creating Vitally accounts from Salesforce records

The first step when configuring the Salesforce integration is to map a Salesforce object to an account in Vitally. Let's go over the steps in doing so.

Step 1: Map a Salesforce object to a Vitally account

For the majority of cases, you'll select Account here. However, if you use a custom object in Salesforce that maps to the way you track accounts in Vitally, select that custom object here.

Step 2: Configure how Salesforce objects should match to Vitally accounts

In Vitally, all accounts have a single, global account ID (called "External ID").
This ID is always set by the first system that creates the Account in Vitally. If you use Segment's group API, for example, the "External ID" is the ID passed in your group calls.
We pretty much always recommend that this ID be the primary ID assigned by your database to the account. We also recommend tracking that ID in all your systems, including Salesforce. So if you already do that, select Yes here, and in the next option, select the Salesforce field that has that value:
If you don't track this ID in Salesforce already, select No. You'll then need to configure a Salesforce field that has a value which maps to an existing Vitally account trait:

Step 3: Specify whether Salesforce can create new accounts in Vitally

It is quite common for Salesforce to track accounts that aren't actually current customers. In that case, you probably don't want those accounts in Vitally. You can achieve that in one of 2 ways:
Option 1: Allow Salesforce to create accounts, but define filters to limit the accounts to import
Let's say that anyone with an "Account Type" in Salesforce that contains "Customer" in their value is an actual customer that you want in Vitally. The above filter will help you ensure that only your actual customers in Salesforce create new account profiles in Vitally.
Option 2: Don't allow Salesforce to create accounts - only update existing Vitally accounts with matching Salesforce accounts
Select this option if you'd rather some other system (e.g Segment, Stripe) create the account in Vitally first before pulling in a matching profile from Salesforce.

Step 4: Select Salesforce fields to pull into Vitally (+ whether those fields can be updated in Vitally)

Here, you can whitelist which Salesforce fields to attach to your account profiles in Vitally. Additionally, if you switch the Allow Edits option on, you'll be able to edit that field in Vitally. Once you update the field in Vitally, we'll immediately update it in Salesforce so that the two systems stay in sync!

Step 5: Select Vitally columns to add to your Salesforce accounts

Finally, our Salesforce integration not only lets you pull in and edit Salesforce fields in Vitally, it also allows you to push our customer insights back to your Salesforce objects! Some of the fields you can push back to Salesforce include:
  • Overall health score + individual health scores
  • Subscription details like renewal date and MRR
  • NPS data like overall NPS score + # of promoters, passives, and detractors
  • Active indicators and segments
  • Success Metric values
  • and more!
When configuring a Vitally field to push back to Salesforce, follow these steps:
Step 1: First, you'll need to create the field to update in Salesforce. Vitally does not create fields for you. When creating your Salesforce field, give it a name that starts with "Vitally". This is required, as it helps us ensure you don't accidentally update incorrect fields.
Step 2 Ensure your field in Salesforce is of the right type. For example, create a new Number field if pushing our health score, a new Date field if pushing the date an Indicator was applied to an account, etc.
Step 3 Finally, back in Vitally, define a mapping between the Vitally field to push and your newly-created Salesforce field.
Learn more about the Vitally account columns you can push back to Salesforce here.

Creating Vitally users from Salesforce records

Like accounts, you can also create Vitally users from your Salesforce records. This process is practically the exact same process as defined above for accounts, so if you haven't read that process over and are wondering how to integrate your Salesforce contacts into Vitally, now's the time to do so ๐Ÿ˜‰

Importing & pushing notes between Vitally and Salesforce

Vitally's Salesforce integration can be used to achieve a bi-directional sync of notes between the two systems. To enable the sync, simply navigate to the configuration page for Salesforce in your Vitally account and select the 2 switches displayed underneath the Notes tab. That's it!

FAQs: Pushing Vitally notes to Salesforce

Once I enable the push to Salesforce, are past notes already in Vitally created in Salesforce? No - not at the moment. However, if you'd like to have your existing Vitally notes pushed to Salesforce, please contact our support team.
Is there a delay when creating/updating a Vitally note before the change is pushed to Salesforce? There may be a slight delay, but the update should be applied to Salesforce in near real-time.
What happens if I take a note on an account in Vitally not linked to a Salesforce object? Nothing - no note will be created in Salesforce.
Can I push Vitally notes to Salesforce as tasks instead? Not at the moment, but if this is essential for your Salesforce integration, please let us know the feedback!
Does Vitally modify the note in any way when pushed to Salesforce? Yes - we clean the note of all rich text formatting when creating the Salesforce note. This occurs because Vitally's notes support HTML, while Salesforce's default note field does not.
How are owners set in the Salesforce note? Vitally will attempt to set the note owner to a Salesforce user with the same email as the user that created the note in Vitally. If a user is not found with a matching email, the API user is then set as the note owner.
What happens when a note that was pushed to Salesforce is deleted in Vitally? If the note was first created in Vitally (i.e. it is not a 'clone' of a Salesforce-owned note), then Vitally will delete the note in Salesforce. If the note was first created in Salesforce and the Vitally 'clone' is deleted in Vitally, it is not deleted in Salesforce.
What happens when a note pushed to Salesforce is deleted in Salesforce? Nothing - the note in Vitally will remain.

FAQs: Importing Salesforce notes into Vitally

Once I enable the import from Salesforce, are past notes already in Salesforce created in Vitally? By default, we import Salesforce notes created or updated in the last 7 days. If you'd like to have more historical Salesforce notes imported into Vitally, please contact our support team.
Is there a delay when creating/updating a Salesforce note before the change is pushed to Vitally? Yes - there is a maximum of a 1 hour delay.
How are owners set on the Vitally note? Vitally will attempt to set the note owner to a Vitally user with the same email as the user that owns the note in Salesforce. If a user is not found with a matching email, Vitally will auto-create a new Vitally user and associate the note to the newly auto-created profile. Note that auto-created users do not count against teammate limits on your Vitally plan.
What happens when a note that was imported from Salesforce is deleted in Vitally? If a Salesforce-imported note is later deleted in Vitally, then Vitally will not delete the note in Salesforce. This way, you can selectively clean up notes imported from Salesforce without affecting your Salesforce data.

Importing & pushing tasks between Vitally and Salesforce

Vitally's Salesforce integration can be used to achieve a bi-directional sync of tasks between the two systems. To enable the sync, simply navigate to the configuration page for Salesforce in your Vitally account and select the 2 switches displayed underneath the Tasks tab. That's it!

Task fields synced between Vitally & Salesforce

Vitally will auto-map the below fields when syncing tasks between the 2 systems:
Salesforce task field
Vitally task field
Subject
Task name
Description
Task description
IsClosed
Task due date (IsClosed will be set to true if the due date is set)
Owner
Task assignee

FAQs: Pushing Vitally tasks to Salesforce

Once I enable the push to Salesforce, are past tasks already in Vitally created in Salesforce? No - not at the moment. However, if you'd like to have your existing Vitally tasks pushed to Salesforce, please contact our support team.
Is there a delay when creating/updating a Vitally task before the change is pushed to Salesforce? There may be a slight delay, but the update should be applied to Salesforce in near real-time.
What type of task is created in Salesforce? A task with a subtype of task (which for some reason is a thing ๐Ÿ™„)
What happens if I create a task on an account in Vitally not linked to a Salesforce object? Nothing - no task will be created in Salesforce.
Does Vitally modify the task in any way when pushed to Salesforce? Yes - we clean the task of all rich text formatting when creating the Salesforce task. This occurs because Vitally's tasks support HTML, while Salesforce's default task does not.
How are owners set in the Salesforce task? Vitally will attempt to set the task owner to a Salesforce user with the same email as the user that is assigned to, completed, or created the task in Vitally (in that order). If a user is not found with a matching email, the API user is then set as the task owner.
What status does Vitally set on the task? If the task is completed in Vitally, we'll set the Salesforce task's status field to your first task status that is defined as a closed status. If it is not completed, then your default task status will be used.
What happens when a task that was pushed to Salesforce is deleted in Vitally? If the task was first created in Vitally (i.e. it is not a 'clone' of a Salesforce-owned task), then Vitally will delete the task in Salesforce. If the task was first created in Salesforce and the Vitally 'clone' is deleted in Vitally, it is not deleted in Salesforce.
What happens when a task pushed to Salesforce is deleted in Salesforce? Nothing - the task in Vitally will remain.

FAQs: Importing Salesforce tasks into Vitally

Once I enable the import from Salesforce, are past tasks already in Salesforce created in Vitally? By default, we import Salesforce tasks created or updated in the last 7 days. If you'd like to have more historical Salesforce tasks imported into Vitally, please contact our support team.
Is there a delay when creating/updating a Salesforce task before the change is pushed to Vitally? Yes - there is a maximum of a 1 hour delay.
What types of Salesforce tasks are supported? Only Salesforce tasks with a subtype of Task or Call are imported into Vitally. Email tasks are not currently synced since, well, they aren't really tasks ๐Ÿ˜‰
How are owners set on the Vitally task? Vitally will attempt to set the task assignee to a Vitally user with the same email as the user that owns the task in Salesforce. If a user is not found with a matching email, Vitally will auto-create a new Vitally user and associate the task to the newly auto-created profile. Note that auto-created users do not count against teammate limits on your Vitally plan.
What happens when a task that was imported from Salesforce is deleted in Vitally? If a Salesforce-imported task is later deleted in Vitally, then Vitally will not delete the task in Salesforce. This way, you can selectively clean up tasks imported from Salesforce without affecting your Salesforce data.

Viewing Salesforce tasks in Vitally

Salesforce definition of a task is, let's say, generous - a lot of Salesforce tasks aren't actual tasks that should be done at some future date. Given that, since many Salesforce tasks are 'completed' by default, you may wonder where they show in Vitally. Whenever viewing a task list in Vitally, be sure to turn on completed tasks if you'd like to view your Salesforce-completed call tasks.

Syncing custom objects into Vitally

Alongside notes and tasks, you can also sync any object associated with your mapped Account object into Vitally. This includes standard objects like Opportunities and Cases, and also any custom objects you create in Salesforce.
You can sync up to 10 Custom Objects with our Custom plan and 1 Custom Object with our Startup and Performance plan.
Syncing a new custom object into Vitally is pretty straightforward. Just head over to the Salesforce configuration page and select the "Custom Objects" tab. There, you'll see the ability to map any object into Vitally:
Once you select an object from Salesforce, you'll be able to configure these details:
  • Account reference field - here you'll need to select the field on the object that references the Account the object belongs to. We'll try our best to suggest a field that references your mapped Account object. It is important that the field you select is only populated with the ID for an Account otherwise we will not be able to import your data
    • Note: If we are unable to find a direct field relationship with Account you may see a warning like this
      • โ€‹
        โ€‹
  • Name field - choose the Salesforce field that serves as the main 'name' of the object. If you allow your users to create new objects in Vitally, we will sync those objects back to Salesforce in real-time!
  • Create permissions - choose who, if anyone, should be able to create new objects in Vitally.
  • Fields - select the fields on the object to import into Vitally, as well as whether the field can be edited in Vitally. We'll sync any edits back to Salesforce in real-time!
On the initial sync, Vitally will import all Custom Objects created or updated in the last 12 months.

Configuring a custom object layout in Vitally

By default, any new custom object type that is synced from Salesforce will have its associated traits displayed alphabetically. By using custom object layouts, you can organize the traits in a more useful way.
To create a custom object layout:
  1. 1.
    Navigate to Settings > Custom Objects
  2. 2.
    Click Manage > Manage layout on the custom object for which you would like to create a layout
  3. 3.
    Click Create a Layout
  4. 4.
    Configure the layout of the custom object by:
    • Adding Headers to organize and group traits
    • Dragging and dropping the traits to reorder
    • Removing traits that you don't wish to see
*All changes are auto-saved and the layout will be applied the next time the custom object is viewed.
โ€‹

Using custom objects in Vitally

Explorers & Views Once your objects are imported into Vitally, you'll be able to leverage them in practically identical ways as you can your tasks, notes, and other 'main' Vitally features. For example, every object will have a top-level 'explorer' where you can browse all objects and even create saved Views for objects that match certain filters (you can filter custom objects using account filters as well as filters on any imported object field!). For example, you can easily save a View (i.e. a report) showing Opportunities with a 'Close Date' within the next 3 months (for example).
Dashboards You can use your custom objects alongside Vitally's Dashboarding feature. For example, you can build dashboards showcasing a breakdown of Case types, total ARR across a dynamic set of Opportunities, and much more!
Account columns For every object you sync into Vitally, you can leverage columns/filters on your accounts for 1) the total objects that account has (e.g. number of opportunities) and 2) the last time an object was created (e.g. last opportunity created date).
You'll see this same interface throughout Vitally anytime you'd like to use Custom Object and other Salesforce data - in playbooks, health scores, etc.

'Mirroring' Salesforce CSM or AE in to Vitally

If you'd like to use Salesforce as your 'source of truth' for an account's CSM or AE, follow these steps to sync that CSM/AE in to Vitally.
Step 1: Create a new Formula field in Salesforce
  1. 1.
    Navigate to Salesforce's Object Manager and click on the Salesforce object that is mapped to your Vitally accounts.
    • If you're using Vitally's account hierarchy feature, you may want to map CSMs/AEs at the Organization level. If so, select the mapped Organization object here instead.
  2. 2.
    Navigate to Fields & Relationships and add a new field.
  3. 3.
    Select Formula for field type.
  4. 4.
    Choose Text as the Formula Return Type.
  5. 5.
    When entering the formula, you can click the Insert field button. Find the field in the 2nd scroll area that stores your CSM/AE. Click it and a 3rd scroll area should open. Select Email here.
Once you select your field, you should see something like this in the Formula: CSM__r.Email (this assumes the name of your field is 'CSM'). You could circumvent the above by simply entering in the formula directly, which would follow the pattern: [Name of field]__r.Email.
Click through the remainder of the screens in Salesforce to save your new formula field.
2. Update your Vitally <> Salesforce configuration and map this new formula field in to Vitally
Follow the steps above to configure the accounts sync in Vitally's Salesforce configuration page. In the step where you map in your Salesforce fields, be sure to select the new formula field you just created in Step 1.
3. Setup a trait mapping on the newly mapped field
Trait maps allow you to automatically sync specific Vitally data points from specific Vitally traits. Follow the steps here to setup a trait map on the newly-mapped Salesforce email field from Step 2.
That's it! When done, your Vitally CSMs will now be updated from Salesforce.

Using Custom Object fields (e.g. Opportunity amount, close date, etc) at the Account level

Let's say you track revenue at the Opportunity level and want to sync the Opportunity amount from the last closed opportunity into Vitally as that account's MRR. If you have a list of Custom Objects like this associated to an Account and want to use specific fields from one of those objects in Vitally at the account level, you can do so by following these instructions. Note to follow these, you will need admin access in Salesforce.
Step 1 - Create a Lookup Relationship field in Salesforce on your Account
In Salesforce's Object Manager, find the Account object (or whatever object you've mapped into Vitally). Go to that object's Fields & Relationships and create a new field. For Data Type, select Lookup Relationship.
Hit Next and relate the field to the Opportunity object (or whichever custom object has the field you're wanting to leverage in Vitally).
Name your field something appropriate (e.g. Most Recent Opportunity) and work through the rest of the form to create your field.
Step 2 - Create a Flow to update the Lookup Relationship field
Now that you have a field on your Accounts ready to reference your most recent opportunity, we now need to set that field. To do so automatically in Salesforce, you can use a Flow (or a Process if you aren't yet on Flows).
First, create a new Record-Triggered Flow:
Trigger the flow anytime an Opportunity (or whichever custom object has the field you're wanting to leverage in Vitally) is created or updated.
Since in this example, we are only wanting to track the most recent Closed Won Opportunity, we can also add Entry Conditions to ensure this Flow only runs on Opportunities when the Stage is set to Closed Won. We'll also set the option to run the flow every time a record is updated and meets the condition requirements.
For Optimize the Flow for, select Actions and Related Records. Then, hit Done.
In the Flow, hit the + button to add a new element to the Flow.
Scroll down in the options and select Update Records.
Configure your Element to mimic the below. The below simply looks for the Salesforce Account that owns the Opportunity going through the Flow and updates the Most Recent Opportunity field created in Step 1 above.
Step 3 (Optional) - Trigger an update on all your Salesforce opportunities
With the above steps, moving forward, anytime an Opportunity is created or updated, the Flow will run and update the Most Recent Opportunity Account field. Now, you may very well want to set the field for all you current Accounts. To do that, given the above Flow configuration, you simply need to trigger an update on all Opportunities. There's a few ways to do this in Salesforce, which they detail here. Another option not listed in that article is to create another Flow to update all Opportunities. Whichever route you choose is up to you!
Step 4 - Update your Salesforce configuration in Vitally to pull in fields from the Most Recent Opportunity object
Now that you have a field on your Accounts in Salesforce that tracks the most recent Closed Won Opportunity, you can now pull fields from that Opportunity into Vitally and attach them to your Vitally accounts! To do so, simply head over to your Salesforce integration page in Vitally. Scroll down to the option where you map the Salesforce fields to be synced into Vitally, select the newly-defined Most Recent Opportunity object in the first select and any fields you want to pull in from that opportunity in the second select. That's it! You'll now see the newly-mapped Opportunity fields on your Vitally accounts.

General Salesforce FAQ

If I delete data in Salesforce, will it also delete in Vitally?
We never delete data in Vitally if it is deleted in Salesforce. The only case we will delete Salesforce integration data is if the user deletes Notes & Tasks that originated in Vitally - weโ€™ll also delete them in Salesforce. Unfortunately, we canโ€™t be consistent with catching deleted records since Salesforceโ€™s webhook functionality is limited (events can be missed, customers often max out their push topics, etc) and polling for deleted records by checking if the ID still exists doesnโ€™t scale well so we donโ€™t currently support handling deleted Salesforce records.