Sources - Salesforce

Name Salesforce
Description Extracts data from a Salesforce database.
Link REST API, Bulk API
Supported Replication

Initial/ Full Sync, Continuous/Incremental Sync

Authentication Type OAuth
Collection

Supported objects for Streaming API:
• Account
• Campaign
• Case
• Contact
• ContractLineItem
• Entitlement
• Lead
• LiveChatTranscript
• MessagingSession
• Opportunity
• Quote
• QuoteLineItem
• ServiceAppointment
• ServiceContract
• Task
• UserServicePresence
• WorkOrder
• WorkOrderLineItem
+ all custom objects

Unsupported fields for Streaming API:
• textarea

Unsupported objects:
AccountUserTerritory2View
• ActivityHistory
• AggregateResult
• Announcement
• ApexTypeImplementor
• AppTabMember
• AttachedContentDocument
• AttachedContentNote
• Attachment
• CollaborationGroupRecord
• ColorDefinition
• CombinedAttachment
• ContentBody
• ContentDocumentLink
• ContentFolderItem
• ContentFolderMember
• DatacloudAddress
• DataStatistics
• DataType
• EmailStatus
• EntityParticle
• FeedLike
• FeedSignal
• FeedTrackedChange
• FieldDefinition
• FieldHistoryArchive
• FlexQueueItem
• FlowTestView
• FlowVariableView
• FlowVersionView
• FolderedContentDocument
• IconDefinition
• IdeaComment
• ListViewChartInstance
• LookedUpFromActivity
• Name
• NetworkUserHistoryRecent
• NoteAndAttachment
• OpenActivity
• OutgoingEmail
• OutgoingEmailRelation
• OwnedContentDocument
• OwnerChangeOptionInfo
• PicklistValueInfo
• PlatformAction
• ProcessInstanceHistory
• QuoteTemplateRichTextData
• RecordActionHistory
• RelatedListColumnDefinition
• RelatedListDefinition
• RelationshipDomain
• RelationshipInfo
• SearchLayout
• SiteDetail
• UserEntityAccess
• UserFieldAccess
• UserRecordAccess
• Vote
+ Objects ending in “__ChangeEvent”
+ Objects ending in “__Tag”

 

Unsupported objects by BULK API:
• AcceptedEventRelation
• AssetTokenEvent
• AttachedContentNote
• CaseStatus
• ContractStatus
• DeclinedEventRelation
• EntityDefinition
• EventWhoRelation
• FieldSecurityClassification
• KnowledgeArticle
• OrderStatus
• PartnerRole
• QuoteTemplateRichTextData
• RecentlyViewed
• SolutionStatus
• TaskPriority
• TaskStatus
• TaskWhoRelation
• UndecidedEventRelation
• WorkOrderLineItemStatus
• WorkOrderStatus
+ Objects ending in “__Share”

 

Unsupported fields by BULK API:
• Columns of type (Compound fields): 
   • address
   • location
   • base64
   • base64binary
   • json

 

Unsupported fields: Formula fields are not supported by the connector.

 

Objects requiring Full Sync:
• ActivityFieldHistory
• ApiEvent
• BackgroundOperationResult
• LightningUriEvent
• ListViewEvent
• LoginAsEvent
• LoginEvent
• LogoutEvent
• ReportEvent
• UriEvent

Notes

Differences between REST and BULK:


BULK:


The Bulk API is optimized to work with large volumes of data. 
Some collections and compound fields are not supported on Bulk API.
The requests are limited to 10,000 calls per day, which is why a low sync frequency is recommended when using this API.
This option uses both REST API and Bulk API quota.


REST:


The REST API is best when working with small volumes of data.
Compound fields are supported by the REST API. 
The request limits are calculated by your account type.
This option uses REST API quota.

Full Sync vs Incremental Sync

Full Sync will replicate all the available data from a table every time a pipeline runs. Incremental Sync will first replicate all the existing data from a table on the first pipeline run, for subsequent pipeline runs, the pipeline will keep a bookmark of the latest record by one of the following fields: SystemModstamp, LastModifiedDate, CreatedDate, LoginTime, and fetch data.

Deleted Records Handling 

* BULK/REST API Sync:
  - Default behavior: All available data, including deleted records, will be synced. Deletions are handled as soft deletes. A specific column will indicate if a row was deleted on the source.


  - Custom Configuration: If you prefer to exclude deleted records from syncing, please contact support to adjust this setting.


  - Soft-Deletes vs Hard-Deletes on Source: 
    - Soft Deletes: Will be replicated as Soft Deletes on destination, with the IsDeleted column being changed.
    - Hard Deletes: Not supported by the REST/BULK connector. This operation will not be replicated on the destination.
  
* Streaming API Sync:
  - Delete handling: On initial sync, deleted records will be replicated, however, in continuous sync, deletes will result in a hard delete at the destination. The entire row will be erased, ensuring the destination matches the source.


  - Soft-Deletes vs Hard-Deletes on Source: 
    - Soft Deletes: Will be replicated as Hard Deletes on destination, with the entire row being deleted on the destination.
    - Hard Deletes: Will be replicated as Hard Deletes on destination, with the entire row being deleted on the destination.