
Salesforce
Customer Relationship Management- Overview
- Setup
- Data & mappings
- Operations & API
- Changelog
The Salesforce Connector integrates with the Salesforce REST API to synchronize CRM records (SObjects) with the Brinqa platform. It uses a dynamic schema discovery mechanism — at runtime the connector interrogates the Salesforce /sobjects metadata endpoint, discovers all queryable SObject types, and builds ObjectClassInfo schemas automatically from field descriptors. Records are fetched via SOQL queries and support incremental synchronization using the SystemModStamp field.
Official API documentation: https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/
Data retrieved from Salesforce
| Connector Object | Required | Maps to Data Model |
|---|---|---|
| SObject (Dynamic) | Yes | SObject (Dynamic) |
Model relationships
For detailed steps on how to view the data retrieved from Salesforce in the Brinqa Platform, see How to view your data.
Connection settings
When setting up a data integration, select Salesforce from the Connector dropdown and provide the following:
| Setting | Required | Default | Description |
|---|---|---|---|
| Instance URL | Yes | Default - (user input, Required) | Salesforce instance URL |
| Login URL | Yes | https://login.salesforce.com | Salesforce authentication URL |
| Consumer Key | Yes | Default - (user input, Required) | The consumer key provided in the connected app |
| Consumer Secret | Yes | Default - (user input, Required) | The consumer secret provided in the connected app |
| Username | No | (user input) | Salesforce username |
| Password | No | (user input) | Salesforce password |
| Parallel requests | No | CPU count (max 8) | Maximum number of parallel API requests |
| Schema Cache | No | true | Use cached schema when available |
| Maximum retries | No | 5 | Maximum number of API request retries |
| Custom Headers for Create operations | No | (none) | Custom headers to include in create API requests (key1:value1,key2:value2) |
| Custom Headers for Update operations | No | (none) | Custom headers to include in update API requests (key1:value1,key2:value2) |
| Grant Type | Yes | password | The OAuth grant type to use for authentication (e.g., password, client_credentials) |
| API Version | Yes | v63.0 | Salesforce API version (e.g., v63.0) |
Authentication
The connector uses OAuth 2.0 to obtain a Bearer token from the Salesforce token endpoint. Two grant types are supported: password and client_credentials.
Endpoint
| Method | URL |
|---|---|
POST | {loginUrl}/services/oauth2/token |
Request Headers
| Header | Value |
|---|---|
Content-Type | application/x-www-form-urlencoded |
Request Body — password grant
grant_type=password
&client_id=<CLIENT_ID>
&client_secret=<CLIENT_SECRET>
&username=<USERNAME>
&password=<PASSWORD>
Request Body — client_credentials grant
grant_type=client_credentials
&client_id=<CLIENT_ID>
&client_secret=<CLIENT_SECRET>
Response Fields
| Field | Type | Description |
|---|---|---|
access_token | String | Bearer token for all subsequent API requests |
instance_url | String | Base URL of the tenant's Salesforce instance |
token_type | String | Always "Bearer" |
issued_at | String | Token issue time (epoch millis, quoted string). Absent for client_credentials grant |
id | String | Identity URL for the authenticated user |
signature | String | HMAC-SHA256 signature for token validation |
Usage
Once authenticated, all subsequent API requests include the token:
Authorization: Bearer <access_token>
Sync Behavior
The connector supports incremental (delta) syncs. It maintains a sync token between runs and applies it as an incremental timestamp filter, so each run re-processes only the records that changed after the previous sync. The initial run retrieves the complete data set; later runs are incremental. The specific timestamp field applied to each object is documented under that object's Sync Duration Parameter.
How to obtain Salesforce credentials
Obtain the required credentials (url, loginUrl, clientId, clientSecret, grantType, apiVersion) from your Salesforce administrator or the Salesforce admin console, then enter them in the connection settings above.
Attribute mappings
Expand the sections below to view the mappings between the source and the Brinqa data model attributes:
SObject (Dynamic)
| Source Field Name | SDM Attribute |
|---|---|
record.attributes.url | Url |
record["Id"] | UID |
record["Id"] | NAME |
record[fieldName] | (all selected fields) |
| — | LAST_CAPTURED |
Operations & API
Expand each connector object to see its operation options, delta-sync behavior, and the API it uses. See connector operation options for how to apply operation options (keys and values are case-sensitive).
SObject (Dynamic)
Operation options
This object does not support any operation options.
Delta sync
Supported.
API
- Type: SOQL query (REST) · Endpoint:
GET /services/data/{apiVersion}/query?q={SOQL} - Default filters:
SystemModStamp >= {since}(ANDed onto the WHERE clause for incremental syncs)
Changelog
The Salesforce connector has undergone the following changes:
| Version | Description | Migration Steps |
|---|---|---|
| 3.0.3 | New Features - Added support for multiple OAuth 2.0 grant types — the connector now supports both password and client_credentials authentication flows, enabling service-to-service integrations without requiring individual user credentials - Added configurable Salesforce API version — the API version (e.g., v63.0) can now be set in the connector configuration instead of being hardcoded, making it easier to upgrade when new Salesforce API versions are released - Added LAST_CAPTURED attribute to all synced records — each record now includes a timestamp indicating when it was last retrieved by the connector Improvements - Centralized API path construction — all Salesforce API calls now use a consistent, version-aware path builder, reducing the risk of version mismatches across endpoints - Username and password fields are no longer required when using the client_credentials grant type - Added comprehensive connector documentation (README) | N/A |
| 3.0.2 | New Features - Added support for custom HTTP headers on create and update operations — additional headers can now be supplied (in key1:value1,key2:value2 form) and are sent with create and update API requests, enabling integrations that require custom routing, tracing, or governance headers | N/A |
| 3.0.1 | New Features - Added a configurable maximum retry count — the number of times the connector retries failed create and update API requests can now be set in the connector configuration instead of being fixed, allowing retry behavior to be tuned to your environment | • Salesforce Objects: The model identifier for each synced Salesforce object changed from the Label [Name] form (for example, Account [Account]) to the plain API name (for example, Account). Existing synced objects will be re-keyed under the new identifiers. — Action: Purge the previously synced Salesforce object data and re-sync the connector so records are reloaded under the updated model identifiers. |
| 3.0.0 | Overview The Salesforce connector integrates with Salesforce to synchronize standard and custom Salesforce objects (such as Accounts, Contacts, Leads, and Opportunities) along with their fields. The connector discovers available objects and their schema directly from your Salesforce instance, so the set of synced models reflects the objects exposed by that instance. Category: Customer Relationship Management Models | N/A |