Salesforce source
tap-salesforce extracts Salesforce objects through the Bulk or REST API.
Source |
Status |
Load path |
|---|---|---|
Salesforce |
Experimental |
Singer only |
Prerequisites
Create a connected app and complete its OAuth flow. The resulting principal must have API and field access to every selected object. Field-level security can make discovery or extraction incomplete without producing a database-style permission error.
Configuration
id: "salesforce"
name: "Salesforce"
type: "tap-salesforce"
owner: "data-platform@example.com"
db_conn:
client_id: "<CLIENT_ID>"
client_secret: "{{ env_var['SALESFORCE_CLIENT_SECRET'] }}"
refresh_token: "{{ env_var['SALESFORCE_REFRESH_TOKEN'] }}"
start_date: "2024-01-01T00:00:00Z"
api_type: "BULK"
target: "snowflake"
batch_size_rows: 20000
stream_buffer_size: 0
default_target_schema: "salesforce"
schemas:
- source_schema: "salesforce"
target_schema: "salesforce"
tables:
- table_name: "Account"
- table_name: "Contact"
start_date is an RFC 3339 timestamp. Set api_type to BULK or
REST. Discover the objects visible to the connected user before finalising
the table list:
pipelinewise discover_tap --tap salesforce --target snowflake
Test API quotas, deleted-record handling, schema changes, and large objects before production use.