Sync your Salesforce accounts, contacts, notes, tasks, and custom objects to Vitally in real time with our Salesforce integration
Salesforce 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 created/ updated in the past 12 months.
Salesforce: Supported Field Types
For further information, you can review the Salesforce developer documentation here.
Salesforce FAQ: Field Types
Configuring field types to sync in data
Q: Why is my formula (text) field displaying in html and not an URL?
A: The Salesforce formula uses a Hyperlink function within the formula. If you remove the Hyperlink function the value pulls into Vitally as a normal text string.
Salesforce: Enabling the Integration
Before you enable the Salesforce integration, ensure that:
Your Salesforce account has the REST API add-on
The Salesforce user you connect with has the following enabled within their Permission Sets:
Read, Create, and Edit Object Permissions enabled for the Salesforce objects you wish to connect
Read, Create, and Edit Object Permissions enabled for 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
Contact our support team if you are looking to connect a Salesforce sandbox to Vitally
Salesforce: Creating Organizations
Salesforce: Creating Accounts
Salesforce: Creating Users
If you are creating Organizations and/or Accounts via Salesforce, and will also be creating Users via Salesforce; Vitally will inherently only create Users that are related to the synced Organizations and Accounts. If needed, you can add additional filters to the configuration to further limit which Users are synced.
Salesforce: Importing Notes & Tasks
Vitally's Salesforce integration can be used to achieve a bi-directional sync of notes between the two systems.
Salesforce enhanced (Lightning) notes can be attached to any number of Salesforce objects. However, Vitally notes can only be attached to a single object. So when importing a Salesforce enhanced note, we will only attach it to the first object that has also been imported in to Vitally.
Salesforce: Task fields mapping to Vitally fields
Salesforce FAQ: Notes & Tasks
Pushing Vitally Notes -> Salesforce
Q: Once I enable the push to Salesforce, are past notes already in Vitally created in Salesforce?
A: No - not at the moment. However, if you'd like to have your existing Vitally notes pushed to Salesforce, please contact our support team.
Q: Is there a delay when creating/updating a Vitally note before the change is pushed to Salesforce?
A: There may be a slight delay, but the update should be applied to Salesforce in near real-time.
Q: What happens if I take a note on an account in Vitally not linked to a Salesforce object?
A: Nothing - no note will be created in Salesforce.
Q: Can I push Vitally notes to Salesforce as tasks instead?
A: Not at the moment, but if this is essential for your Salesforce integration, please let us know the feedback!
Q: Does Vitally modify the note in any way when pushed to Salesforce?
A: 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.
Q: How are owners set in the Salesforce note?
A: 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.
Q: What happens when a note that was pushed to Salesforce is deleted in Vitally?
A: 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.
Q: What happens when a note pushed to Salesforce is deleted in Salesforce?
A: Nothing - the note in Vitally will remain.
Q: Some of the formatting didn't properly sync to Salesforce (salesforce lightning)
A: Currently Bold, Italic, and Underline are the only formatting supported to write back from Vitally to Salesforce. So for example, if you're using bullets to make a list that won't sync over to Salesforce.
Q: I edited a note in Vitally, why isn't that change syncing back to Salesforce?
A: Notes created or edited in Vitally will not sync changes back from Salesforce. The reason for that is that in Vitally you can format the note and embed things in it like tasks and traits and we don't send a representation of that to Salesforce in a way that preserves the embedded information. That means that if we allowed changes from Salesforce to come back, it could wipe out those parts of the note and loosing information.
Importing Salesforce Notes -> Vitally
Q: Once I enable the import from Salesforce, are past notes already in Salesforce created in Vitally?
A: 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.
Q: Is there a delay when creating/updating a Salesforce note before the change is pushed to Vitally?
A: Yes - there is a maximum of a 1 hour delay.
Q: How are owners set on the Vitally note?
A: 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.
Q: What happens if the Salesforce note doesn't have an owner in SFDC?
A: Salesforce automatically sets the creator of the note as the owner if one is not specified.
Q: What happens when a note that was imported from Salesforce is deleted in Vitally?
A: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.
Pushing Vitally Tasks -> Salesforce
Q: Once I enable the push to Salesforce, are past tasks already in Vitally created in Salesforce?
A: No - not at the moment. However, if you'd like to have your existing Vitally tasks pushed to Salesforce, please contact our support team.
Q: Is there a delay when creating/updating a Vitally task before the change is pushed to Salesforce?
A: There may be a slight delay, but the update should be applied to Salesforce in near real-time.
Q: What type of task is created in Salesforce?
A:A task with a subtype of task (which for some reason is a thing 🙄)
Q: What happens if I create a task on an account in Vitally not linked to a Salesforce object?
A: Nothing - no task will be created in Salesforce.
Q: Does Vitally modify the task in any way when pushed to Salesforce?
A: 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.
Q: How are owners set in the Salesforce task?
A: 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.
Q: What status does Vitally set on the task?
A: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.
Q: What happens when a task that was pushed to Salesforce is deleted in Vitally?
A: 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.
Q: What happens when a task pushed to Salesforce is deleted in Salesforce?
A: Nothing - the task in Vitally will remain.
Q: Task Status is not syncing
A: Salesforce task statuses do not map to our native task statuses. Make sure to update the task status name in Vitally settings -> task -> task statuses to match Salesforce status names. For example, Vitally's default is 'not started', but in Salesforce, it is 'open.' Once you update the status name in Vitally to 'open' they will start to sync correctly!
Importing Salesforce Tasks -> Vitally
Q: Once I enable the import from Salesforce, are past tasks already in Salesforce created in Vitally?
A: 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.
Q: Is there a delay when creating/updating a Salesforce task before the change is pushed to Vitally?
A: Yes - there is a maximum of a 1 hour delay.
Q: What types of Salesforce tasks are supported?
A: Only Salesforce tasks with a subtype of Task or Call are imported into Vitally. Email tasks are not currently synced.
Q: How are owners set on the Vitally task?
A: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.
Q: What happens when a task that was imported from Salesforce is deleted in Vitally?
A: 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.
Q: Task Status is not syncing to Vitally
A: SFDC status does not map to our native task statuses. Make sure to update the task status name in Vitally settings > task statuses to match SFDC status names. For example, Vitally's default is 'not started', but in Salesforce, it is 'open.' Once you update the status name in Vitally to 'open' they will start to sync!
Salesforce: Syncing Custom Objects to Vitally
Alongside Notes and Tasks, you can also sync any object associated with your mapped Account and/or Organization object into Vitally. This includes standard objects like Opportunities and Cases, and also any custom objects you create in Salesforce.
On the initial sync, Vitally will import all Custom Objects created or updated in the last 12 months. Another important aspect to note is Vitally can sync up to 25 records of a particular custom object for an individual Vitally Account/Organization.
Learn how to configure a Custom Object Layout and how to use Custom Objects in Vitally by navigating to our Custom Objects article below:
Salesforce: Mapping Custom object traits to the Account
There may be instances where you may want to map data from your Custom Objects to the Account level in Salesforce so that you can utilize this in Vitally features such as Lifecycle Tracking, Notes, Docs etc.
As an example, if you track revenue at the Opportunity level you may 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 with 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. Expand the below to follow a step-by-step:
Using Custom Object fields (e.g. Opportunity amount, close date, etc) at the Account level
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.
Salesforce: Syncing Key Roles between Salesforce <> Vitally
We support a bidirectional sync for Key Roles. You will simply need to sync the reference field with your CSM and then finish configuring that under Key Roles.
If you don't set a sync mode to your Key Role, Vitally will default to a one way sync from SFDC to Vitally only.
Salesforce: Errors
To ensure that your data is syncing correctly, you can see when there is an error with your integration or with a specific account. This helps self-serve troubleshooting to correct that so your data is consistently syncing to and from Vitally.
We will display the errors that Salesforce sends Vitally and display those exactly as they're being sent.
Common Errors
Examples of common errors:
Salesforce Error Code: INVALID_OR_NULL_FOR_RESTRICTED_PICKLIST. When you enter a value into a field in Vitally that is subsequently mapped to a field in Salesforce, this situation arises if the latter cannot accept the provided value.
Salesforce Error Code: INVALID_FIELD. This situation occurs when we send a query to Salesforce in an attempt to retrieve data from a Salesforce field that no longer exists (e.g. Salesforce field gets deleted after being mapped in our integration).
Checking the integrations card is one of the best ways to get insight into errors. You can hover over each of the established links to see vital information about the last update between Salesforce and Vitally. For example, an error can look like "Push was unsuccessful as Salesforce returned an error: 'Received unknown push error from Salesforce':
Salesforce: Reconnect integration
If you need to change the user who authenticated the Vitally <> Salesforce integration, you can easily do so without affecting your current configuration settings. Mapped fields, import filters, and other integration specifics will be retained! Remember, the Salesforce user you connect with has to have the following enabled within their Permission Sets:
Read, Create, and Edit Object Permissions enabled for the Salesforce objects you wish to connect
Read, Create, and Edit Object Permissions enabled for the Push Topic object, which is used by Vitally to subscribe to Salesforce changes in near real time
Q: If I delete data in Salesforce, will it also delete in Vitally?
A:We now will auto-clean up Vitally records based on data deletions in Salesforce. That is, if an object in Salesforce is deleted, it triggers some cleanup of the linked record in Vitally. What that cleanup is depends on the Vitally record:
For Accounts, Organizations, and Users - the link to the Salesforce record is removed, and any Salesforce traits are wiped out. However, the record will remain in Vitally and will not be auto-archived since Vitally can have a lot of data underneath these records (like notes, projects, etc).If you want these records to be auto-removed in Vitally when the linked Salesforce record is deleted in Salesforce, you can use track rules to ignore them.
For Custom Objects - the linked Vitally record is archived in Vitally and will no longer display in views or search results
Q: If I delete data in Vitally, will it also be deleted in Salesforce?
A: Only some data is deleted in Salesforce depending on the record:
For Notes and Tasks - if they originatedin Vitally, they will be deleted from Salesforce.
For Custom Objects - if they originated in Salesforce, the record won't be deleted from Salesforce. However, it will be permanently deleted from Vitally and will not re-sync, even if the record remains in Salesforce.
Q: Is it possible to sync Conversations from Vitally to Salesforce and vice versa?
A: No, that is not part of our native integration. The best suggestion to get conversations from Vitally into Salesforce would be to have team members add their 'bcc to salesforce' email address within their personal email settings to track messages sent from Vitally to Salesforce.
Q: How can I use traits from a custom object in Vitally features like Lifecycle Tracking, Notes, Docs etc?
A: To view traits from a custom object such as Opportunities in Salesforce at the Account level, you will need to create a lookup relationship mapping and a workflow to trigger this as per the instructions here.
Q: Why are the Key Roles not matching from Salesforce to Vitally?
A: This feature will only work if you use a reference to an email trait on a User object in Salesforce. For us to make the match, your Key Role holder must have a User object in Salesforce and a seat in Vitally (it can be an Observer seat). See Salesforce: Syncing Key Roles between Salesforce <> Vitally for specific instructions.
Q: Should I use a Fallback ID?
A:This is optional but useful if there is a delay in the "External ID" being set on your Accounts. For example, say you sign a new contract with a customer but don't provision their product instance for a few weeks. If your "External ID" is the primary ID of the Account in your database, you won't have that ID until their instance is provisioned, meaning they won't show in Vitally until that occurs. To resolve this, you can specify a 'fallback ID' here (for example, Salesforce's record ID). The Vitally platform will then create Accounts using this fallback ID if the primary external ID is not set. Once the primary external ID is set on the Account, Vitally will automatically switch the ID over to the primary and merge any duplicate Accounts created from other systems.
Q: Where can I see all Salesforce tasks?
A: Many 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.
Q: Why is my calculated Salesforce field not syncing into Vitally when it updates?
A: This is a Salesforce limitation. calculated and calculatedFormula properties in Salesforce don't modify the record and, therefore, the timestamp. This is what triggers us to update the data in Vitally when we scan for updates. When there is another update to the record, at that point we'll update that data point and the calculated field.
Q: Can I change the user who authenticated the Salesforce integration?
A: Yes! Follow the steps outlined above in Reconnect Integration
Q: Why don't I see all of my fields in the field dropdown when configuring Salesforce?
A: It is likely that the fields are not accessible by the authenticated Salesforce profile. To resolve this, please navigate to the object & field within Salesforce Object Manager, click View Field Accessibility, and ensure the profile has read-only or edit permissions, depending on what you need.
Q: Can Users created manually in Vitally be created in Salesforce?
A: Yes, there is now an option within the Salesforce Integration page for Users that allows you to set the option to Yes - any users manually created in Vitally should create new Contact records in Salesforce, which will then allow any Users manually created in Vitally to be created in Salesforce.