Salesforce is a cloud-based CRM platform.
We pull all the underlying data from Salesforce (SFDC) into a SQL-enabled environment to allow you to get a more in-depth analysis of your CRM data.
Featureslink
Feature Name | Supported | Notes |
---|---|---|
Capture deletes | check | Only for replicateable objects |
Custom data | check | |
Data blocking | check | Column level, table level, and schema level |
Column hashing | check | |
Re-sync | check | Table level and connector level |
History | check | Table level |
API configurable | check | |
Priority-first sync | ||
Fivetran data models | check | Get the models: source / transform / formula utils |
Private networking | check | AWS PrivateLink |
Supported productslink
Product Name | Notes |
---|---|
Sales Cloud | |
Financial Services Cloud | |
Service Cloud | Including Salesforce Knowledge |
Marketing Cloud | Using our Marketing Cloud Connector |
Engagement | Using our Heroku Postgres or Heroku Kafka connectors |
Industries | Industry-specific like finance and healthcare |
Communities | |
Trailhead |
Supported environmentslink
Our two Salesforce connectors, Salesforce and Salesforce Sandbox, support the following environments:
CONNECTOR NAME | ENVIRONMENT |
---|---|
Salesforce | Production |
Salesforce Sandbox | Sandbox |
Setup guidelink
Follow our step-by-step Salesforce setup guide to connect Salesforce with your destination using Fivetran connectors.
Sync overviewlink
API usagelink
The number of API calls that we use varies from company to company. Our Salesforce connector is optimized to use the fewest API calls possible. In practice, customers find that Fivetran is not a significant API consumer.
Rolling API quota
Each Salesforce account has a rolling 24-hour API quota. Fivetran automatically reschedules syncs by one hour whenever 90% of the Salesforce API call quota has been consumed. This ensures there is always API quota available for other business-critical applications.
Monitoring the API usage
The system table FIVETRAN_API_CALL tracks information about API calls made to sync data into the warehouse.
REST and Bulk API usage
We use both the Salesforce REST API and the Salesforce Bulk API to sync your Salesforce data. For incremental syncs, we use a combination of the BULK API and REST API. We choose the sync strategy depending on the size of the data to be synced, and the number of records changed since the last sync. We use multiple techniques to minimize the total number of API calls, specifically the Bulk API calls because Salesforce limits the number of Bulk API calls.
Formula fieldslink
We disable syncing formula field values by default. However, we can enable them at your request.
NOTE: Formula fields can cause subtle problems in your data. Before you decide to sync formula field values, read our detailed documentation about formula fields and lookup fields, which explains the risks and our recommended solution.
TIP: If you decide to sync formula fields, ensure that the formula fields are translatable without any NULL references. For more information, see Salesforce’s Known Issues documentation.
Salesforce Field History Trackinglink
Salesforce has native functionality that lets you define specific fields for which you want to track history. This functionality is distinct from Fivetran’s history mode. Read our blog post comparing Fivetran history mode to the alternatives to learn if Salesforce field tracking or Fivetran history mode is better for your analytical needs.
If you decide to use Salesforce field history tracking to track and capture all changes in the selected fields, you will need to enable it in Salesforce. Enabling it will create additional tables in Salesforce that will track and store the changes.
Fivetran will then import these history objects as separate tables during incremental updates. To learn how to enable field history tracking, see the Salesforce Field History Tracking documentation.
IMPORTANT: We have disabled Fivetran history mode for native Salesforce history objects associated with standard objects. The standard objects are listed in the Salesforce StandardObjectNameHistory documentation. The history object names have the following format:
_StandardObjectName_History
.
We do not capture hard deletes for history objects but use the is_deleted
field from Salesforce to capture deletes.
(Optional) AWS PrivateLink PRIVATE PREVIEWlink
IMPORTANT: You must have a Business Critical plan to use AWS PrivateLink.
If you select PrivateLink as a connection method, Fivetran uses AWS PrivateLink to move your data securely between Salesforce and your destination. You must have a Salesforce Private Connect license to use AWS PrivateLink.
To set up AWS PrivateLink for your Salesforce source, follow the instructions in the Salesforce setup guide.
Incremental syncslink
We sync most tables using incremental syncs. To run incremental syncs, Fivetran requires reliable timestamp fields. Timestamp fields allow us to detect which rows have changed since the last sync and sync only new or modified data. In Salesforce, we use one of the following timestamp fields to track when data was last updated in the source:
SystemModStamp
LastModifiedDate
CreatedDate
LoginTime
If none of these fields are available in a table, then we re-import the table.
Re-import tableslink
We re-import tables for the relevant Salesforce objects that have either of the following properties set to FALSE
:
The re-import frequency depends on the time it takes for a table to re-sync.
Table Import Duration | Import frequency |
---|---|
3 seconds or less | every sync |
between 3 seconds and 5 minutes | once a day if the sync frequency is 24 hours; otherwise, twice a day |
more than 5 minutes | once a week on Saturday |
Schema informationlink
Fivetran follows a one-to-one mapping with all objects in Salesforce. If you can’t find something that you’re looking for, your Salesforce user may have limited access to the information. Fivetran tries to sync all possible objects, except for formula fields.
Schemalink
This schema diagram illustrates how objects relate to one another. It is not a complete Entity Relationship Diagram. It shows relationships for some central entities and workflows. Many standard and all custom entities that are delivered by the Fivetran Salesforce connector are omitted for brevity.
To zoom, open the ERD in a new window.
We also offer you information about the connector in the fivetran_audit
and fivetran_query
tables.
System tableslink
FIVETRAN_QUERYlink
COLUMN | REFERENCE |
---|---|
id 🔑 | |
done | |
modified_field | |
modified_since_inclusive | |
merge_mode | |
query | |
rows_updated_or_inserted | |
source_object | |
source_api | |
start |
FIVETRAN_API_CALLlink
COLUMN | REFERENCE |
---|---|
start 🔑 | |
method | |
uri | |
update_id |
FIVETRAN_FORMULAlink
COLUMN | REFERENCE |
---|---|
field 🔑 | |
object 🔑 | |
formula | |
sql |
FIVETRAN_FORMULA_HISTORYlink
COLUMN | REFERENCE |
---|---|
field 🔑 | |
object 🔑 | |
version 🔑 | |
formula |
Unsupported data typeslink
Our Salesforce connector does not support the following data types and object types:
- base64 type
- complexvalue type
- Compound fields, for example, address and location
- Deprecated and hidden objects
- Objects that don’t support limit
- BigObject, or objects whose names end with
__b
- Non-queryable objects
- Object whose names end with
__x
or__hd
Type conversionlink
We convert empty strings (""
) to null
objects.
Syncing empty tables and columnslink
Fivetran can sync empty tables and columns for your Salesforce connector. For more information, see our Features documentation.