Salesforce¶
Salesforce data sources are in the database category of I/O connectors.
Tool documentation¶
Connector type values¶
The "type": value to use in the source JSON files.
| Connector type | Value |
|---|---|
| Data source | DKDataSource_Salesforce |
| Data sink | Not supported |
Connection properties¶
The properties to use when connecting to a Salesforce instance from Automation.
| Field | Scope | Type | Required? | Description |
|---|---|---|---|---|
sfdc_password |
source | string | yes | Salesforce password. |
sfdc_security_token |
source | string | yes | Salesforce security token. |
sfdc_username |
source | string | yes | Salesforce username. |
sfdc_client_id |
source | string | no | Used to connect additional applications to Salesforce. |
sfdc_client_secret |
source | string | no | Used to connect additional applications to Salesforce. |
domain |
source | string | no | Salesforce domain name. |
Connections¶
See Connection Properties for more details on connection configurations.
Defined in kitchen-level variables¶
salesforceconfig in kitchen overrides
{
"salesforceconfig": {
"sfdc_client_id": "#{vault://salesforce/client_id}",
"sfdc_client_secret": "#{vault://salesforce/client_secret}",
"sfdc_username": "#{vault://salesforce/username}",
"sfdc_security_token": "#{vault://salesforce/security_token}",
"sfdc_password": "#{vault://salesforce/password}"
}
}
The Connection tab in a Node Editor¶

Expanded connection syntax¶
For a data source¶
salesforce_datasource.json
{
"type": "DKDataSource_Salesforce",
"name": "salesforce_datasource",
"config": {
"sfdc_username": "{{salesforceconfig.username}}",
"sfdc_password": "{{salesforceconfig.password}}",
"sfdc_security_token": "{{salesforceconfig.security_token}}"
},
"keys": {},
"tests": {}
}
Condensed connection syntax¶
For a data source¶
salesforce_datasource.json
{
"type": "DKDataSource_Salesforce",
"name": "salesforce_datasource",
"config-ref": "salesforceconfig",
"keys": {},
"tests": {}
}
Local connection¶
Salesforce contents may be viewed locally by configuring connections with IDEs like PyCharm.
Tip
Configure PyCharm or DataGrip with Salesforce Cloud: Connect to the Salesforce Cloud by installing the Illuminated Cloud plugin.
Other configuration properties¶
See the following topics for common properties and runtime variables:
File encoding requirements¶
Files used with data sources and data sinks must be encoded in UTF-8 in order to avoid non-Unicode characters causing problems with sinking data to database tables and errors when running related tests
For CSV and other delimited files, use Save as in the program and select the proper encoding, or consider using a text editor with encoding options.
Data source example¶
Get data from Salesforce with an explicit key, export the data to CSV format, then generate runtime variables for the column and row counts for the resulting CSV file. Finally, apply tests against these built-in runtime variables.
salesforce_datasource.json
{
"type": "DKDataSource_Salesforce",
"name": "salesforce_datasource",
"config-ref": "salesforceconfig}",
"keys": {
"key1": {
"sql": "SELECT ID, AccountNumber, AnnualRevenue, BillingStreet FROM Account",
"format": "csv",
"set-runtime-vars": {
"column_count": "salesforce_column_count",
"row_count": "salesforce_row_count"
}
}
},
"tests": {
"test-salesforce_column_count": {
"test-variable": "salesforce_column_count",
"action": "stop-on-error",
"test-logic": "salesforce_column_count == 4"
},
"test-salesforce_row_count": {
"test-variable": "salesforce_row_count",
"action": "stop-on-error",
"test-logic": "salesforce_row_count > 5"
}
}
}