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.
Features
| Feature Name | Supported | Notes |
|---|---|---|
| check | Only for objects | |
| check | ||
| check | Column level, table level, and schema level | |
| check | ||
| check | Table level and connector level | |
| History | ||
| check | ||
| Priority-first sync | ||
| check | Get the models: / / ; Supports the | |
| check |
Supported products
| Product Name | Notes |
|---|---|
| Including | |
| Using our | |
| Using our or connectors | |
| Industry-specific like finance and healthcare | |
Supported environments
Our two Salesforce connectors, Salesforce and Salesforce Sandbox, support the following environments:
| CONNECTOR NAME | ENVIRONMENT |
|---|---|
| Salesforce | Production |
| Salesforce Sandbox | Sandbox |
Setup guide
Follow our step-by-step to connect Salesforce with your destination using Fivetran connectors.
Sync overview
API usage
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.
REST and Bulk API usage
We use both the Salesforce and the to sync your Salesforce data. The Bulk API works better with high-volume data. We choose between the Bulk and REST APIs depending on the volume of data we need to sync for a table. For historical syncs or high-volume incremental syncs, we use the Bulk API; otherwise, the REST API.
Bulk API quota
Each Salesforce account has a rolling 24-hour Bulk API quota. If 90% of the bulk jobs quota has been consumed, to continue the sync we fall back to the REST API.
REST API quota
Each Salesforce account has a rolling 24-hour REST API quota. We automatically reschedule 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 tracks information about API calls made to sync data into the destination.
Formula fields
Salesforce objects often include automatically populated fields called formula fields. Their values are derived from formulas created by your Salesforce administrators. Due to Salesforce limitations, these fields cannot be synced incrementally with reliable integrity. Fivetran automatically detects formula fields and excludes them from the tables synced to your destination.
Replicating formula fields in your destination requires a downstream transformations-based approach. Fivetran helps with this by maintaining SQL translations of the Salesforce formulas in your destination. The explains the Salesforce limitations that make this approach necessary as well as explains how to make use of Fivetran's formula translations to add formula fields to your tables.
Delete capture limitation
History objects
We don't capture deletes of the field tracking history objects because we don't have dedicated endpoints to fetch deleted records for each object. To capture deletes for a specific history object, we can't use the because the call returns all the records deleted during the specified date range for all the history objects.
Re-sync scenarios
. After 15 days, deleted items are purged from the Recycle Bin, and we can't use the to fetch them.
We trigger table re-syncs to capture deletes if:
- We are unable to capture deleted records of a specific table for more than 15 days.
- We receive exceptions like
TooMuchDataExceptionwhen fetching deleted records.
(Optional) AWS PrivateLink Private Preview
IMPORTANT: You must have a Business Critical plan to use AWS PrivateLink.
If you select PrivateLink as a connection method, Fivetran uses to move your data securely between Salesforce and your destination. You must have a license to use AWS PrivateLink.
To set up AWS PrivateLink for your Salesforce source, follow the instructions in the .
Incremental syncs
We sync most tables using . 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:
SystemModStampLastModifiedDateCreatedDateLoginTimeIf none of these fields are available in a table, then we re-import the table.
Re-import tables
We tables for the relevant Salesforce objects that have the property set to FALSE.
We also re-import the AccountTeamMember and OpportunityTeamMember tables because Salesforce does not update the SystemModstamp column for these tables if you change their access settings by modifying the .
The re-import frequency depends on the time it takes for a table to .
| 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 information
Fivetran follows a one-to-one mapping with . 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 , which must be replicated using transformations to ensure integrity.
Schema
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.
We also offer you information about the connector in the fivetran_query table.
System tables
FIVETRAN_API_CALL
| COLUMN |
|---|
| start 🔑 |
| method |
| uri |
| update_id |
FIVETRAN_DEPENDENT_PICKLIST_RELATION
| COLUMN |
|---|
| dependent_picklist_value_index 🔑 |
| parent_picklist_value_index 🔑 |
FIVETRAN_FORMULA
| COLUMN |
|---|
| field 🔑 |
| object 🔑 |
| formula |
| sql |
FIVETRAN_FORMULA_FAILURE_REASON
| COLUMN |
|---|
| _fivetran_id 🔑 |
| object |
| field |
| failure_reason |
| failure_detail_1 |
| failure_detail_2 |
FIVETRAN_FORMULA_MODEL
| COLUMN |
|---|
| object 🔑 |
| model |
FIVETRAN_PICKLIST_FIELD
| COLUMN |
|---|
| index 🔑 |
| entity_name |
| field_name |
FIVETRAN_PICKLIST_FIELD_VALUE
| COLUMN |
|---|
| index 🔑 |
| picklist_field_index |
| value |
| label |
FIVETRAN_QUERY
| COLUMN |
|---|
| id 🔑 |
| done |
| modified_field |
| modified_since_inclusive |
| merge_mode |
| query |
| rows_updated_or_inserted |
| source_object |
| source_api |
| start |
Unsupported data types
Our Salesforce connector does not support the following data types and object types:
- base64 type
- complexvalue type
- 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
__xor__hd
Compound fields
Although Fivetran does not sync compound fields as is, we sync all fields of a compound field in a Salesforce object as the corresponding individual fields in their respective tables corresponding to the object. For example, the Address compound field may appear as BillingAddress in the User object in Salesforce. In that case, are synced to the USER table in your destination as individual columns that have the billing_ prefix (for example, billing_latitude, billing_postal_code, etc.). You can reconstruct the compound field downstream using these individual fields.
Type conversion
We convert empty strings ("") to null objects.
Syncing empty tables and columns
Fivetran can sync empty tables and columns for your Salesforce connector. For more information, see our .
Comments
0 comments
Please sign in to leave a comment.