Salesforce Source

Salesforce is a leader in on-demand customer relationship management. Visit Website

Take your company’s analysis to the next level by adding Salesforce as a Source to Segment. We’ll automatically collect objects like Accounts, Campaigns, and Tasks and load them into your data warehouse.

Getting Started

  1. From your workspace’s /sources page, click add source.

  2. Choose Salesforce.

  3. Give the source a nickname and a schema name. The nickname will be used to designate the source in the Segment interface, and the schema name is the namespace you’ll be querying against in your warehouse. Both can be whatever you like, but we recommend sticking to something that reflects the source itself, like Salesforce for nickname and sfdc, salesforce, or sfdc_prod for the schema name.

    Note: that you can add multiple instances if you have multiple SalesForce accounts. That’s why we allow you to customize the source’s nickname and schema name!

  4. Finally, just click Connect on the next page to OAuth into Salesforce.

That’s it!

API Access

In order for Segment to collect and sync your Salesforce data, you must enable API access for the user that you are connecting to Segment with. For more information on how to confirm or change API access for a Salesforce user, please follow Salesforce’s recommended documentation.

Components

Sync

Salesforce has a sync component, which means we’ll make requests to their API on your behalf on a 3 hour interval to pull the latest data into Segment. In the initial sync, we’ll grab all the Salesforce objects (and their corresponding properties) according to the Collections table below. The objects will be written into a separate schema, corresponding to the source instance’s schema name you designated upon creation. For example, if you went with sfdc_prod, the leads collection will be accessible at sfdc_prod.leads in SQL.

Our sync component uses an upsert API, so the data in your warehouse loaded via sync will reflect the latest state of the corresponding resource in Salesforce. For example, if lead_status from active to inactive between syncs, on its next sync that tickets status will be inactive.

The source syncs and warehouse syncs are independent processes. Source runs pull your data into the Segment Hub, and warehouse runs flush that data to your warehouse. Sources will sync with Segment every 3 hours. Depending on your Warehouses plan, we will push the Source data to your warehouse on the interval associated with your billing plan.

At the moment, we don’t support filtering which objects or properties get synced. If you’re interested in this feature, please let us know!

Collections

Collections are the groupings of resources we pull from your source. In your warehouse, each collection gets its own table.

For a complete visual breakdown of the Salesforce collections, all their properties, and ID linkages between objects, view the visual schema here or download it in PDF form here.

Custom Objects

If you’d like to sync any SFDC custom objects, just contact us and we’ll get it set up. Please include the API names of the custom objects. We’ll add support for this to the UI soon!

Custom Fields

If you’ve added custom fields to an existing collection, contact us and we’ll get those set up to sync. You do not need to include the field names.

Deleting Records

Segment supports the use of soft deletes in Salesforce. If you perform a soft delete on a record in Salesforce, your next one to two warehouses syncs will change the value of is_deleted for the assoicated record to True.

At this time, we do not support hard deletes in Salesforce. Use of hard deletes will result in the data remaining in the warehouse with is_deleted set to False.

CollectionTypeDescription
accountsobjectAn individual account, which is an organization involved with your business (such as customers, competitors, and partners). Corresponds to Account resource in Salesforce
account_contact_rolesobjectThe role that a given Contact plays on an Account. Corresponds to AccountContactRole resource in Salesforce
account_tagsobjectAssociates a word or short phrase with an Account. Corresponds to AccountTag resource in Salesforce
campaignsobjectA marketing campaign, such as a direct mail promotion, webinar, or trade show. Corresponds to Campaign resource in Salesforce
campaign_membersobjectThe association between a Campaign and either a Lead or Contact. Corresponds to CampaignMember resource in Salesforce
campaign_sharesobjectRepresents a list of access levels to a Campaign along with an explanation of the access level. For example, if you have access to a record because you own it, the Access Level value is Full and Reason for Access value is Owner. Corresponds to CampaignShare resource in Salesforce
campaign_tagsobjectAssociates a word or short phrase with a Campaign. Corresponds to CampaignTag resource in Salesforce
casesobjectA customer issue such as a customer’s feedback, problem, or question. Corresponds to Case resource in Salesforce
case_commentsobjectA comment that provides additional information about the associated Case. Corresponds to CaseComment resource in Salesforce
case_contact_roleobjectThe role that a given Contact plays on a Case. Corresponds to CaseContactRole resource in Salesforce
case_solutionobjectThe association between a particular Case and a particular Solution. Corresponds to CaseSolution resource in Salesforce
case_tagsobjectAssociates a word or short phrase with a Case Corresponds to CaseTag resource in Salesforce
contactsobjectA contact, which is an individual associated with an Account. Corresponds to Contact resource in Salesforce
contact_tagsobjectAssociates a word or short phrase with a Contact. Corresponds to ContactTag resource in Salesforce
contractsobjectA contract (a business agreement) associated with an Account. Corresponds to Contract resource in Salesforce
contract_tagsobjectAssociates a word or short phrase with a Contract. Corresponds to ContractTag resource in Salesforce
dashboardsobjectRepresents a dashboard, which shows data from custom reports as visual components. Access is read-only. This object is available in API version 20.0 and later. Corresponds to Dashboard resource in Salesforce
dashboard_tagsobjectAssociates a word or short phrase with a Dashboard. This object is available inAPI version 20.0 and later. Corresponds to DashboardTag resource in Salesforce
documentsobjectA file that a user has uploaded. Unlike Attachment objects, Documents are not attached to a parent object. Corresponds to Document resource in Salesforce
document_tagsobjectAssociates a word or short phrase with a Document. Corresponds to DocumentTag resource in Salesforce
eventsobjectA calendar appointment event. Corresponds to Event resource in Salesforce
event_tagsobjectAssociates a word or short phrase with an Event. Corresponds to EventTag resource in Salesforce
_groupobjectA set of User records. Corresponds to Group resource in Salesforce
leadsobjectA lead, which is a prospect or potential Opportunity. Corresponds to Lead resource in Salesforce
lead_tagsobjectAssociates a word or short phrase with a Lead. Corresponds to LeadTag resource in Salesforce
namesobjectNon-queryable object that provides information about foreign key traversals when the foreign key has more than one parent. Corresponds to Name resource in Salesforce
notesobjectA note, which is text associated with an Attachment, Contact, Contract,Opportunity, or custom object. Corresponds to Note resource in Salesforce
note_tagsobjectAssociates a word or short phrase with a Note. Corresponds to NoteTag resource in Salesforce
opportunitiesobjectAn opportunity, which is a sale or pending deal. Corresponds to Opportunity resource in Salesforce
opportunity_competitorobjectA competitor on an Opportunity. Corresponds to OpportunityCompetitor resource in Salesforce
opportunity_contact_roleobjectThe role that a Contact plays on an Opportunity. Corresponds to OpportunityContactRole resource in Salesforce
opportunity_field_historyobjectRepresents the history of changes to the values in the fields of an opportunity. Corresponds to OpportunityFieldHistory resource in Salesforce
opportunity_productobjectAn opportunity line item, which is a member of the list of Product2 records associated with an Opportunity, along with other information about those products on that opportunity. Corresponds to OpportunityLineItem resource in Salesforce
opportunity_line_item_schedulesobjectInformation about the quantity, revenue distribution, and delivery dates for a particular OpportunityLineItem. Corresponds to OpportunityLineItemSchedule resource in Salesforce
opportunity_stageobjectThe stage of an Opportunity in the sales pipeline, such as New Lead, Negotiating, Pending, Closed, and so on. Corresponds to OpportunityStage resource in Salesforce
opportunity_tagobjectAssociates a word or short phrase with an Opportunity. Corresponds to OpportunityTag resource in Salesforce
periodobjectA fiscal period. Corresponds to Period resource in Salesforce
price_booksobjectA price book that contains the list of products (Product2 records) that your organization sells. Corresponds to Pricebook2 resource in Salesforce
price_book_entriesobjectA product entry (an association between a Pricebook2 and Product2) in a price book. Corresponds to PricebookEntry resource in Salesforce
productsobjectA product that your organization sells. A product is member of the list of items in a Pricebook2. Corresponds to Product2 resource in Salesforce
profileobjectA profile, which defines a set of user permissions for performing different operations, such as querying, adding, updating, or deleting information. Corresponds to Profile resource in Salesforce
solutionsobjectA detailed description of a customer issue and the resolution of that issue. Corresponds to Solution resource in Salesforce
solution_tagsobjectAssociates a word or short phrase with a Solution. Corresponds to SolutionTag resource in Salesforce
tasksobjectAn activity or to-do item to perform or that has been performed. Corresponds to Task resource in Salesforce
task_tagsobjectAssociates a word or short phrase with a Task. Corresponds to TaskTag resource in Salesforce
usersobjectA user in your organization. Corresponds to User resource in Salesforce
user_loginobjectRepresents the settings that affect a user’s ability to log into an organization. This object is available in API version 29.0 and later. Corresponds to UserLogin resource in Salesforce
roleobjectA role in your organization. Corresponds to UserRole resource in Salesforce

If you have any questions or see anywhere we can improve our documentation, please let us know or kick off a conversation in the Segment Community!