Skip to content

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

(Screenshot of the Connector tab)

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"
        }
    }
}