Summary
In the Salesforce integration, you can set up custom field mapping, to sync your choice of Salesforce fields with your choice of Planhat fields
There are also some fields that are automatically synced (or otherwise populated) by the Salesforce integration, without custom field mapping required - for example, the Salesforce Account name is synced with the Planhat Company name
This article will take you through which fields are included as standard
Who is this article for?
It's mainly for Planhat builders (e.g. CS Ops) setting up the Salesforce integration ...
... but it can be useful for any Planhat user who'd like to learn more about which fields are automatically synced by the Salesforce integration
Series
We have a series of articles on the Salesforce integration:
Fields synced as default in the Salesforce integration ⬅️ You are here
Article contents
Introduction
This is a technical deep-dive article
Read on if you'd like to explore the details of which fields are synced by default via the Salesforce integration (without custom field mapping).
If you'd just like an overview of the Salesforce integration, please refer to our main article.
When you're setting up the Salesforce integration, one of elements you can configure is custom field mapping for most of the object/model pairs.
In addition to this, there are a small number of fields that are always synced, without you needing to specify them in custom field mapping, such as Company/Account name - a Company/Account wouldn't make much sense without it!
Some of these fields are fairly obvious, but others are less so, so here's the complete list of fields that are automatically synced (or otherwise populated) by the Salesforce integration. You don't need to specify these in custom field mapping for them to be synced.
Salesforce Account / Planhat Company
Salesforce to Planhat ("Receive from Salesforce")
The "Name" ("Account Name") field in Salesforce is synced to the Company "Name" field in Planhat
The Planhat "Phase" field is not automatically synced from Salesforce by the integration, but can be automatically populated for new Companies by the integration if you choose a phase in the dropdown "Default phase when a company is created from Salesforce"
The Planhat "Related Domains" field isn't technically synced by the integration, but can be updated when Salesforce Contacts are synced into Planhat as End Users
The Salesforce record ID is synced into the Planhat "Source ID" field
Planhat to Salesforce ("Send to Salesforce")
The Company "Name" field in Planhat is synced to the "Name" ("Account Name") field in Salesforce
If syncing a Company into Salesforce that doesn't yet exist as an Account in Salesforce, the first valid value of the field selected in the integration for filtering on the Salesforce side (e.g. the first value selected when the UI displays multipicklist options - shown below) is also populated on the new Account in Salesforce, so that the record is synced back to Planhat (as it meets the filter criteria)
Salesforce Contact / Planhat End User
Salesforce to Planhat ("Receive from Salesforce")
Salesforce "First Name" is synced to Planhat "First Name"
Salesforce "Last Name" is synced to Planhat "Last Name"
Salesforce "Title" is synced to Planhat "Position"
Salesforce "Phone" is synced to Planhat "Phone"
Salesforce "Email" is synced to Planhat "Email"
The Salesforce record ID is synced into the Planhat "Source ID" field
Planhat to Salesforce ("Send to Salesforce")
Planhat "First Name" is synced to Salesforce "First Name"
Planhat "Last Name" is synced to Salesforce "Last Name"
Planhat "Position" is synced to Salesforce "Title"
Planhat "Phone" is synced to Salesforce "Phone"
Planhat "Email" is synced to Salesforce "Email"
If syncing an End User into Salesforce that doesn't yet exist as a Contact in Salesforce, the first valid value of the field selected in the integration for filtering on the Salesforce side is also populated on the new Contact in Salesforce, so that the record is synced back to Planhat (as it meets the filter criteria) - as you saw for Account / Company above
Salesforce Task / Planhat Task
This is specifically a sync between the Task object in Salesforce and the Task object in Planhat. The Salesforce Event object is not synced. For more information on syncing Tasks, see our separate article on Tasks and Notes in the Salesforce integration.
Salesforce to Planhat ("Receive from Salesforce")
The Planhat "type" property can be populated from either:
a custom Conversation Type in square brackets in the subject of the Task in Salesforce, such as "[QBR] Next Meeting", or
the value of "TaskSubtype" in Salesforce (e.g. "Email") - note you should also create this as a Conversation Type in Planhat for full functionality
See our separate article for a more detailed discussion of this topic
Salesforce "Subject" is synced to Planhat "action" (title/subject)
Salesforce "Description" is synced to Planhat "description"
Also, the first 100 characters of the Salesforce "Description" are synced to the Planhat "snippet" of the Task
If a "logged activity" (Note/Conversation) is created from the Task (which is if it's closed - see our article for further details), that will include the first 50 characters of the description
Salesforce "ActivityDate" (label name "Due Date") is synced to Planhat "startTime"
Salesforce "LastModifiedDate" (or "SystemModStamp" date, if the 30 min sync is enabled) is synced to Planhat "dateDone" (only if the Task is completed/ignored in Salesforce)
Salesforce "IsHighPriority" is synced to Planhat "starred"
The "mainType" in Planhat is always set to "task" (not "event")
Salesforce "Status" is synced to Planhat "outcome" - as the values of these fields are different, this works via a kind of translation:
If the Salesforce status is "Completed", that syncs in as the Planhat outcome "Done"
If the Salesforce status is "Deferred", that syncs in as the Planhat outcome "Ignored"
Other statuses are not automatically synced - but you could resolve this by setting up a sync from Salesforce "status" to Planhat "status" via a custom field mapping section, overriding the automatic sync to "outcome"
The "isArchived" property on the Planhat Task is translated from the Planhat "outcome" being "Completed" or "Deferred"
Alternatively, you could set up custom field mapping between Salesforce "isClosed" and Planhat "isArchived", to override this guessing
The Salesforce "OwnerID" is synced to the "ownerId" in Planhat - only if the owner exists with the same email address in Salesforce and Planhat (working via the Team list of Users at the top of the integration); otherwise, the owner won't be populated
The Salesforce record ID is synced into the Planhat "Source ID" field
Planhat to Salesforce ("Send to Salesforce")
Planhat "action" (title/subject) is synced to Salesforce "Subject"
Planhat "description" is synced to Salesforce "Description"
Planhat "startTime" is synced to Salesforce "ActivityDate" (label name "Due Date")
Planhat type, if "Email", "Call" or "Task", can be synced to Salesforce "TaskSubtype" (see other article)
Planhat "outcome" is synced to Salesforce "Status" - as the values of these fields are different, this works via a kind of translation:
The Planhat outcome "Done" is synced to the Salesforce status "Completed"
The Planhat outcome "Ignored" is synced to the Salesforce status "Deferred"
As mentioned above, you can alternatively set up custom field mapping between Planhat "status" and Salesforce "status"
Planhat "starred" is synced to Salesforce "IsHighPriority"
Planhat "ownerId" is synced to Salesforce "OwnerID" - only if the owner exists with the same email in Salesforce and Planhat (working via the Team list of Users at the top of the integration); otherwise, the user who connected the integration is added as the Owner in Salesforce by default
Salesforce Note or ContentNote / Planhat Note (Conversation, typically type "note")
In the integration, for the Salesforce side, you can choose whether to connect with the Note object or the ContentNote object. On the Planhat side, "Notes" are actually part of the Conversation model. Updates to Notes in Planhat are not synced to Salesforce. For a more detailed discussion of the Note part of the Salesforce integration, see our separate support article.
Salesforce to Planhat ("Receive from Salesforce")
The "type" of Conversation in Planhat will always be "note"
The "Title" in Salesforce is synced to the "subject" in Planhat
The Salesforce "Body" (if the object is Note) or "Content" (if the object is ContentNote) is synced to the Planhat "description"
Also, the first 200 characters of the "Body" (if Note is the object selected), or the whole "textPreview" (if Content Note is the object selected) are synced to the Planhat "snippet"
Salesforce "LastModifiedDate" is synced to Planhat "date"
The "source" property in Planhat is populated with "salesforce"
If "Sync contacts and users for the notes?" is enabled in the integration, AND the Salesforce object selected is ContentNote, the related Contacts and Users in Salesforce (stored in the related Salesforce object ContentDocumentLink) are synced to the "endusers" and "users" properties in Planhat respectively
The Salesforce record ID is synced into the Planhat "External ID" field
Note that this is different than other models - the Conversation model in Planhat uses external ID rather than source ID
Planhat to Salesforce ("Send to Salesforce")
The "Title" in Salesforce is populated from the "subject" in Planhat, with "[PLANHAT]" added to the start - so it would be "[PLANHAT] subject". (Or if there is no subject, it would be [PLANHAT] plus the first 20 characters of the Conversation/Note)
The Planhat "description" is synced to "Body" if you're syncing to the Salesforce Note object, or "Content" if you're syncing to the Salesforce ContentNote object
The first User in the "users" property/field (array) of the Planhat Conversation is compared with Salesforce Users via email address (and the Team part of the integration)
If there is a User match, this User is synced to:
"CreatedById" in Salesforce (if the Salesforce User who connected the integration has permission to update "Audit Fields" such as this)
"OwnerId" in Salesforce
If there is not a User match, Salesforce will populate these fields with the User who connected the integration
Additionally, if "Sync contacts and users for the notes?" is enabled in the integration, AND the Salesforce object selected is ContentNote, all the "users" and "endusers" (array properties) in Planhat are synced into Salesforce as related Users and Contacts (stored via the related Salesforce object ContentDocumentLink)
Salesforce Case / Planhat Conversation, type "ticket"
Note that this sync is one way: from Salesforce to Planhat.
Salesforce to Planhat ("Receive from Salesforce")
The "subject" (title) in Planhat is populated with the Salesforce "CaseNumber" (in square brackets) and the "Subject"
Not populated by the integration specifically, but ticket status in Planhat is also displayed in square brackets with the subject
"Description" in Salesforce is synced to "description" in Planhat
Salesforce "ContactEmail" is synced to "endusers" in Planhat, if the contact email belongs to a valid End User in Planhat
Salesforce "CreatedDate" syncs into Planhat "createDate"
Salesforce "LastModifedDate" syncs into the Planhat "date" property
The "source" property in Planhat is populated with "salesforce"
A link to the Case in Salesforce is added to the Planhat ticket as a URL (link icon you can click)
Salesforce "Comments" (stored in CaseComment and FeedItem objects in Salesforce) are synced to Planhat "ticketParts" - these are displayed in the UI of the ticket as different sections (rectangles) of text
The Salesforce record ID is synced into the Planhat "External ID" field
Note that this is different than other models - the Conversation model in Planhat uses external ID rather than source ID
Planhat Assets and Projects
Although the Planhat models Asset and Project can be synced to your choice of Salesforce model, so technically there aren't any exact/specific fields that are always synced, if syncing an Asset or Project into Salesforce that doesn't yet exist in Salesforce, the first valid value of the field selected in the integration for filtering on the Salesforce side (e.g. the first value selected when the UI displays multipicklist options) is also populated on the new record in Salesforce, so that it is synced back to Planhat (as it meets the filter criteria) - as you saw with Company and End User above.