Skip to main content

Salesforce Connector

The Salesforce Connector is an outbound protocol Connector that allows you to connect your BPMN service with Salesforce to interact with the Salesforce APIs.

Prerequisites​

To use the Salesforce Connector, you must have a Salesforce Connected App with OAuth 2.0 Client Credentials Flow.

note

Use Camunda secrets to avoid exposing your Salesforce Connected App client ID and client secret as plain text. Learn more in our documentation on managing secrets.

Create a Salesforce Connector task​

To use the Salesforce Connector in your process, either change the type of existing task by clicking on it and using the wrench-shaped Change type context menu icon, or create a new Connector task by using the Append Connector context menu. Follow our guide to using Connectors to learn more.

Instance​

Each operation requires information about the Salesforce Base URL.

Example: https://MyDomainName.my.salesforce.com

The Salesforce API version should be the one you want to use. You can search for this information in your Salesforce API.

Authentication​

In the Authentication section, select Bearer Token to provide a static access token or OAuth 2.0 to configure client credentials.

note

While the static access token is useful for getting started, we recommend providing the OAuth 2.0 client credentials.

Operation​

Operation types​

Currently, this Connector supports two types of operation:

SOQL Query​

The SOQL Query only requires the query itself as input. A query is useful for receiving data based on a structured query language. Take a closer look at some available examples.

The response body looks like the following:

{
"totalSize": 1,
"done": true,
"records": [
{
"attributes": {
"type": "<object>",
"url": "/services/data/<API version>/sobjects/<object>/<object id>"
},
"<queried field name>": "<field value>",
"...": "..."
}
]
}

sObject records​

sObject records support Create record, Get record, Update record, and Delete record.

note

Every operation explanation contains a link to the Salesforce API docs which will explain the request and provide an example.

Create record​

  • Salesforce object: The Salesforce object to create, e.g. Account.
  • Record fields: Field values for the Salesforce object to create, e.g. { Name: "Express Logistics and Transport" }.

Review an example including the response body format in the Salesforce documentation.

Get record​

  • Salesforce object: The Salesforce object to create, e.g. Account.
  • Salesforce object ID: Identifier of the Salesforce object, e.g. 001R0000005hDFYIA2.
  • Relationship field name (optional): Name of the field that contains the relationship, e.g. Opportunities.
  • Query Parameters (optional): Additional query parameters that can be provided along with the request, e.g. { fields: "AccountNumber,BillingPostalCode" }.

When omitting the Relationship field name, a get request for a record is performed. Otherwise, a get request for records using sObject relationships is performed. In the documentation linked above, you can find the possible use case for Query parameters; for example, filtering fields.

The response body will contain the requested object as the root object:

{
"attributes": {
"type": "<object>",
"url": "/services/data/<API version>/sobjects/<object>/<object id>"
},
"<field name>": "<field value>",
"...": "..."
}

Find another example here.

Update object​

  • Salesforce object: The Salesforce object to create, e.g. Account.
  • Salesforce object ID: Identifier of the Salesforce object, e.g. 001R0000005hDFYIA2.
  • Record fields: Field values for the Salesforce object to update, e.g. { BillingCity : "San Francisco" }.

These update the record using the given fields.

As an update does not return a body, you will not be able to map any data from the response back to the process.

Delete object​

  • Salesforce object: The Salesforce object to create, e.g. Account.
  • Salesforce object ID: Identifier of the Salesforce object, e.g. 001R0000005hDFYIA2.

These delete the record.

As a delete does not return a body, you will not be able to map any data from the response back to the process.

Handle Connector response​

The Salesforce Connector is a protocol Connector, meaning it is built on top of the HTTP REST Connector. Therefore, handling response is still applicable as described.