Skip to main content
Version: Next

Salesforce

Salesforce source connector

Support Those Engines

Spark
Flink
SeaTunnel Zeta

Key Features

Description

Reads data from Salesforce objects using the Salesforce Bulk API 2.0. Supports single-object and multi-object (tables_configs) batch ingestion.

Authentication uses the OAuth 2.0 Username-Password flow.

Supported DataSource Info

DatasourceSupported Versions
SalesforceREST API v50.0+

Source Options

NameTypeRequiredDefaultDescription
client_idStringYes-Salesforce Connected App client ID (consumer key).
client_secretStringYes-Salesforce Connected App client secret.
usernameStringYes-Salesforce username.
passwordStringYes-Salesforce password.
security_tokenStringNo""Salesforce security token appended to the password. Leave empty if your org IP is trusted.
instance_urlStringYes-Salesforce instance URL, e.g. https://yourorg.salesforce.com.
api_versionStringNov59.0Salesforce REST API version.
object_nameStringNo*-Salesforce object for single-object mode, e.g. Account. Exclusive with tables_configs.
tables_configsListNo*-Multi-object configuration list. Each entry requires table_path. Exclusive with object_name.
filterStringNo-SOQL WHERE clause appended to the auto-built SELECT FIELDS(ALL) FROM <object> query.
request_timeout_msIntegerNo60000HTTP request timeout in milliseconds.
poll_interval_msLongNo5000Interval between Bulk API job status polls (ms).
job_completion_timeout_msLongNo3600000Maximum time (ms) to wait for a Bulk API job to reach a terminal state. Default 60 minutes.

* Exactly one of object_name or tables_configs must be provided.

The connector always issues SELECT FIELDS(ALL) FROM <object> [WHERE <filter>] so the emitted rows stay positionally aligned with the schema produced from /describe. Custom projection-style queries are intentionally out of scope for this first version.

tables_configs entry options

NameTypeRequiredDescription
table_pathStringYesFormat: database.ObjectName, e.g. salesforce.Account.
filterStringNoSOQL WHERE clause for this object.

Example

Single-object

source {
Salesforce {
client_id = "your_client_id"
client_secret = "your_client_secret"
username = "user@company.com"
password = "yourpassword"
instance_url = "https://yourorg.salesforce.com"

object_name = "Account"
filter = "AnnualRevenue > 1000000"
}
}

Multi-object

source {
Salesforce {
client_id = "your_client_id"
client_secret = "your_client_secret"
username = "user@company.com"
password = "yourpassword"
instance_url = "https://yourorg.salesforce.com"

tables_configs = [
{
table_path = "salesforce.Account"
filter = "AnnualRevenue > 1000000"
},
{
table_path = "salesforce.Contact"
filter = "IsDeleted = false"
},
{
table_path = "salesforce.Opportunity"
}
]
}
}

Changelog

next version

  • Add Salesforce source connector with Bulk API 2.0 and multi-object support