Skip to content

Integrations

Which Salesforce fields are updated

When OutboundSync is connected to your Salesforce instance, we have the option to create a group of custom fields on Contact, Lead, and/or Task objects.

When to use this guide: Use this guide when configuring or validating CRM integration behavior.

When OutboundSync is connected to your Salesforce instance, it updates two groups of fields:

  • Default fields on Contact, Lead, and Account that OutboundSync can populate during matching and creation.
  • Custom fields on Contact, Lead, and Task that track engagement activity and sync details from your Sales Engagement Platform.

OutboundSync writes engagement activity and optional field backfill. It does not:

  • Convert Leads to Contacts, Accounts, or Opportunities
  • Create or update Opportunity records
  • Overwrite Account or Contact field values that are already populated — on converted Leads it backfills only empty standard fields and writes Task or EmailMessage activity

When a Lead has already been converted in Salesforce, OutboundSync detects IsConverted and routes activity to the existing Contact and Account, backfilling only empty standard fields. It does not call Salesforce Lead-convert APIs.

For audit questions (Created By vs webhook owner vs existing Lead Owner), see Identifying OutboundSync activity in Salesforce. For unexplained bulk conversions, see Does OutboundSync convert leads in Salesforce?.

Before creating custom fields, OutboundSync can backfill a set of standard Salesforce fields on Contact, Lead, and Account records. Matching uses email as the unique identifier for Contact and Lead, and domain (plus any configured account lookup fields) for Account. If a record already exists and a default field already has a value, OutboundSync does not overwrite it.

Coverage depends on what the source platform sends in the webhook payload. The Source platforms column shows which platforms supply each field today.

Default Contact fields updated in Salesforce
Salesforce fieldNotesSource platforms
EmailEmailEmail
Used as the match key when searching for an existing Contact.
All platforms
First NameFirstNameText
Split from the lead’s full name. Falls back to the email local part if no name is provided.
SmartleadEmailBisonHeyReach
Last NameLastNameText
Split from the lead’s full name. Left blank if unavailable.
SmartleadEmailBisonHeyReach
PhonePhonePhone
Populated when the source platform provides a phone number on the lead.
Smartlead
TitleTitleText
Set from the lead’s job title when provided by the source platform.
EmailBisonHeyReach
Default Lead fields updated in Salesforce
Salesforce fieldNotesSource platforms
EmailEmailEmail
Used as the match key when searching for an existing Lead.
All platforms
First NameFirstNameText
Split from the lead’s full name. Falls back to the email local part if no name is provided.
SmartleadEmailBisonHeyReach
Last NameLastNameText
Split from the lead’s full name. Left blank if unavailable.
SmartleadEmailBisonHeyReach
PhonePhonePhone
Populated when the source platform provides a phone number on the lead.
Smartlead
CompanyCompanyText
Required on Salesforce Lead. Set from the lead’s company name; falls back to the email domain, then "Unknown Company" if neither is available.
All platforms
WebsiteWebsiteURL
Set from the lead’s company website or the email domain.
Smartlead
TitleTitleText
Set from the lead’s job title when provided by the source platform.
EmailBisonHeyReach

When a Contact is synced and no matching Account is found, OutboundSync creates one. Account matching uses the email domain plus any fields configured under accountLookupFields on the webhook.

Instantly (and any platform that omits company name) yields the email domain as Account Name on create — see the Instantly overview for preload and Update Only guidance.

Default Account fields updated in Salesforce
Salesforce fieldNotesSource platforms
NameNameText
Required on Salesforce Account. Set from the lead’s company name; falls back to the email domain when unavailable.
All platforms
WebsiteWebsiteURL
Derived from the company website or email domain.
Smartlead

OutboundSync can also create custom fields on Contact, Lead, and Task. These fields are helpful for:

  • Reporting on outbound activity.
  • Triggering automation in Salesforce flows.
  • Building lead and contact list views.
  • Understanding campaign attribution and engagement history.

Campaign metadata from your sales engagement platform — including OSLastCampaignName__c and OSLastCampaignId__c — is stored on Lead, Contact, and Task records. OutboundSync does not create or update native Salesforce Campaign or CampaignMember records.

The current Salesforce custom field model is v2. Salesforce webhooks last updated on or after June 11, 2026 at 09:00 UTC use the v2 write behavior. In v2, OutboundSync creates fields based on the connected Sales Engagement Platform:

  • Common fields are created for every Salesforce connection.
  • Email-only fields are created for email sequencer connections.
  • Social-only fields are created for social selling connections.
  • Hybrid or unknown platform connections use the full field union.

Field creation is safe to rerun. OutboundSync checks whether each managed field already exists before creating it, creates only missing fields, and attaches field permissions only when they are missing. Before creating fields, OutboundSync also checks whether the connected Salesforce user has metadata permissions such as CustomizeApplication or ModifyAllData; if those permissions are missing, the create-field action returns a clear permission message.

Below is the current v2 list of all custom fields OutboundSync can create, including their field group, API names, and data types. Your Salesforce org may have a smaller subset when it is connected to only an email platform or only a social platform.

Current v2 custom fields OutboundSync can create in Salesforce
Field groupField labelAPI nameData type
CommonLast update occurredOSLastUpdateOccurred__cDate/Time
CommonLast update sourceOSLastUpdateSource__cText(255)
CommonLast campaign nameOSLastCampaignName__cText(255)
CommonLast campaign IDOSLastCampaignId__cText(255)
CommonLast lead category nameOSLastLeadCategoryName__cText(255)
CommonLast lead category IDOSLastLeadCategoryId__cText(255)
CommonLast app URLOSLastAppUrl__cText(255)
Last email sent timeOSLastSentTime__cDate/Time
Last email sent addressOSLastSentAddress__cText(255)
Last email sent subjectOSLastSentSubject__cText(255)
Last email sent nameOSLastSentName__cText(255)
Last email sent messageOSLastSentMessage__cLong Text Area(32000)
Last email open timeOSLastOpenTime__cDate/Time
Last email open subjectOSLastOpenSubject__cText(255)
Last email open messageOSLastOpenMessage__cLong Text Area(32000)
Last link click timeOSLastLinkClickTime__cDate/Time
Last link click URLOSLastLinkClickURL__cText(255)
Last email reply timeOSLastReplyTime__cDate/Time
Last email reply addressOSLastReplyAddress__cText(255)
Last email reply nameOSLastReplyName__cText(255)
Last email reply subjectOSLastReplySubject__cText(255)
Last email reply messageOSLastReplyMessage__cLong Text Area(32000)
Last email bounce timeOSLastBounceTime__cDate/Time
Last email unsubscribe timeOSLastUnsubscribeTime__cDate/Time
Last email campaign nameOSLastEmailCampaignName__cText(255)
Last email campaign IDOSLastEmailCampaignId__cText(255)
Last email lead category update IDOSLastEmailLeadCategoryId__cText(255)
Last email lead category update nameOSLastEmailLeadCategoryName__cText(255)
Last email sequence stepOSLastEmailSequenceStep__cNumber
Number of email opensOSNumberOfEmailOpens__cNumber
Number of email link clicksOSNumberOfEmailLinkClicks__cNumber
Last Social Profile URLOSLastSocialProfileUrl__cText(255)
Last Social Sender Profile URLOSLastSocialSenderProfileUrl__cText(255)
Last Social Message TypeOSLastSocialMessageType__cText(50)
Last Social Message TextOSLastSocialMessageText__cLong Text Area(32000)
Last Social Activity TimeOSLastSocialActivityTime__cDate/Time
Last Social Activity TypeOSLastSocialActivityType__cText(100)
Last Social Post URLOSLastSocialPostUrl__cText(255)
Last social campaign nameOSLastSocialCampaignName__cText(255)
Last social campaign IDOSLastSocialCampaignId__cText(255)
Last connection statusOSLastConnectionStatus__cText(255)
Last connection status timeOSLastConnectionStatusTime__cDate/Time
Last sent social messageOSLastSentSocialMessage__cLong Text Area(32000)
Last sent social profileOSLastSentSocialProfile__cText(255)
Last sent social senderOSLastSentSocialSender__cText(255)
Last sent social timeOSLastSentSocialTime__cDate/Time
Last reply social messageOSLastReplySocialMessage__cLong Text Area(32000)
Last reply social profileOSLastReplySocialProfile__cText(255)
Last reply social senderOSLastReplySocialSender__cText(255)
Last reply social timeOSLastReplySocialTime__cDate/Time
Last follow senderOSLastFollowSender__cText(255)
Last follow timeOSLastFollowTime__cDate/Time
Last like senderOSLastLikeSender__cText(255)
Last like timeOSLastLikeTime__cDate/Time
Last like post URLOSLastLikePostUrl__cText(255)
Last view senderOSLastViewSender__cText(255)
Last view timeOSLastViewTime__cDate/Time
Last social lead category IDOSLastSocialLeadCategoryId__cText(255)
Last social lead category nameOSLastSocialLeadCategoryName__cText(255)

The legacy v1 model created the same compact set of 31 custom fields for Salesforce connections. Salesforce webhooks last updated before June 11, 2026 at 09:00 UTC can continue to write the v1 fields until the webhook is updated. Existing customers may still see these labels in older orgs, automations, list views, or reports.

OutboundSync keeps these fields compatible for legacy customers. The v2 model adds channel-specific email and social fields, but it does not require existing reports or automations that use v1 fields to be removed. Because field creation only adds missing fields, any v1 field that already exists keeps its original label — it is not renamed to its v2 label.

Legacy v1 custom fields OutboundSync created in Salesforce
Field labelAPI nameData type
Last App UrlOSLastAppUrl__cText(255)
Last bounce timeOSLastBounceTime__cDate/Time
Last campaign IDOSLastCampaignId__cText(255)
Last campaign nameOSLastCampaignName__cText(255)
Last Category IdOSLastLeadCategoryId__cText(255)
Last lead category nameOSLastLeadCategoryName__cText(255)
Last link click timeOSLastLinkClickTime__cDate/Time
Last link click URLOSLastLinkClickURL__cText(255)
Last open messageOSLastOpenMessage__cLong Text Area(32000)
Last open subjectOSLastOpenSubject__cText(255)
Last open timeOSLastOpenTime__cDate/Time
Last reply addressOSLastReplyAddress__cText(255)
Last reply messageOSLastReplyMessage__cLong Text Area(32000)
Last reply nameOSLastReplyName__cText(255)
Last reply subjectOSLastReplySubject__cText(255)
Last reply timeOSLastReplyTime__cDate/Time
Last sent addressOSLastSentAddress__cText(255)
Last sent messageOSLastSentMessage__cLong Text Area(32000)
Last sent nameOSLastSentName__cText(255)
Last sent subjectOSLastSentSubject__cText(255)
Last sent timeOSLastSentTime__cDate/Time
Last Social Activity TimeOSLastSocialActivityTime__cDate/Time
Last Social Activity TypeOSLastSocialActivityType__cText(100)
Last Social Message TextOSLastSocialMessageText__cLong Text Area(32000)
Last Social Message TypeOSLastSocialMessageType__cText(50)
Last Social Post URLOSLastSocialPostUrl__cText(255)
Last Social Profile URLOSLastSocialProfileUrl__cText(255)
Last Social Sender Profile URLOSLastSocialSenderProfileUrl__cText(255)
Last unsubscribe timeOSLastUnsubscribeTime__cDate/Time
Last update occurredOSLastUpdateOccurred__cDate/Time
Last update sourceOSLastUpdateSource__cText(255)