Salesforce

Provides integration with Salesforce for OAuth-backed record queries and mutations generated from the connected org.

Revision History

0.1.0.0 - Added S256 PKCE for OAuth authorization and persisted rotated refresh tokens.
0.0.1.2 - Changed Get to return a single object.
0.0.0.39 - Restarted the V2 contract so read rows stay provider-shaped and mutation rows use the top-level Flowgear object with IsSuccess and Message.
0.0.0.38 - Standardized the public V2 help article.
0.0.0.7 - Initial release.
0.0.0.11 - Fix template: Returns array types.
0.0.0.14 - Fix template: Returns array.
0.0.0.15 - Fix template: Data types for front end compatibility.
0.0.0.16 - Fixed shared OAuthConnection lock handling.
0.0.0.17 - Changed template key format for AI system.
0.0.0.19 - Added interim invoke methods and changed the Query template Sample to Value.
0.0.0.29 - Invoke Methods completed with Create, Update and Delete.
0.0.0.30 - Minor updates: Template samples, token error messages and parameter name format.
0.0.0.31 - Added Get, QueryAll and Upsert methods.
0.0.0.32 - Minor maintenance updates.
0.0.0.33 - Removed user-configurable batch sizes and enabled automatic batching.
0.0.0.37 - Standardized mutation responses and changed query failures to surface as errors.

Connection

Use a Salesforce OAuth Connection for all methods.

Property Type Description
Url String Salesforce login host used during OAuth, for example https://login.salesforce.com or https://test.salesforce.com.
Client Id String Salesforce Connected App consumer key.
Client Secret Masked Salesforce Connected App consumer secret.
Scope String OAuth scopes requested for the connection. The default is full refresh_token offline_access.
Use PKCE Boolean Uses S256 Proof Key for Code Exchange for new authorization and reconnect attempts. The default is true.
PKCE Verifiers Masked Runtime-managed verifier state for pending OAuth authorization attempts. This Property is hidden in the designer.
Access Token Masked Short-lived OAuth access token populated after account authentication.
Refresh Token Masked OAuth refresh token used to obtain a new access token when the current one expires.
Instance URL String Base URL for the authenticated Salesforce org. This is populated after account authentication.
API Version String Optional Salesforce REST API version override. Leave blank to use the node default.
Don't Interleave Request in Response Boolean Specifies whether input data is echoed back with the response.

Setup Notes

  • Create a Salesforce Connected App and enable OAuth for it.
  • Add the Flowgear callback URL shown during connection setup to the Connected App configuration.
  • Use https://login.salesforce.com for production orgs and https://test.salesforce.com for sandbox orgs unless your Salesforce environment requires a custom domain.
  • The default Scope value is full refresh_token offline_access. Change it only when your Salesforce security policy requires a different scope set.
  • Leave Use PKCE enabled for new Connections. Disable it only when a legacy Salesforce Connected App does not support PKCE.
  • Leave API Version blank unless you need to target a specific Salesforce REST API version.

Methods

Salesforce exposes object-specific templates for each method so you can discover available objects and fields from the connected org.

Create, Update, Upsert, and Delete return one response row per input item. Each row includes a Flowgear object containing IsSuccess, Message, and a copy of the original item in Request.

Get

Gets one Salesforce record by ID and returns only the fields you request in IncludedFields.

Parameter Type Description
Connection Connection Salesforce OAuth connection.
ObjectName String Salesforce object name to read, for example Account or Contact.
Id String Salesforce record ID to retrieve.
IncludedFields Array Field names to include in the returned record.
Return Type Description
Response Array One raw Salesforce record row containing the selected fields for the requested record. Read rows do not append the mutation Flowgear object.

Query

Executes a SOQL query and streams current Salesforce records across all result pages.

Parameter Type Description
Connection Connection Salesforce OAuth connection.
Query String SOQL query to execute. Templates can prepopulate this for a selected object.
Return Type Description
Response Array One raw Salesforce record row per query result. Query rows omit the mutation Flowgear object.

QueryAll

Executes a SOQL query and streams Salesforce records including deleted or archived rows when Salesforce exposes them for the target object.

Parameter Type Description
Connection Connection Salesforce OAuth connection.
Query String SOQL query to execute. Templates can prepopulate this for a selected object.
Return Type Description
Response Array One raw Salesforce record row per query result, including deleted or archived rows when Salesforce includes them. Query rows omit the mutation Flowgear object.

Create

Creates one or more Salesforce records for the selected object.

Parameter Type Description
Connection Connection Salesforce OAuth connection.
ObjectName String Salesforce object name to create, for example Account or Contact.
Items Array Records to create.
Return Type Description
Response Array One response row per input item. Mutation responses include the provider fields Salesforce returns, such as id, success, created, errors, errorCode, and message, together with a nested Flowgear object that carries IsSuccess and Message.

Update

Updates one or more Salesforce records for the selected object.

Parameter Type Description
Connection Connection Salesforce OAuth connection.
ObjectName String Salesforce object name to update.
IdFieldName String Field in each input item that identifies the record to update. Defaults to Id.
Items Array Records to update.
Return Type Description
Response Array One response row per input item. Mutation responses include the provider fields Salesforce returns, such as id, success, errors, errorCode, and message, together with a nested Flowgear object that carries IsSuccess and Message.

Upsert

Creates or updates Salesforce records depending on whether a record already exists for the field identified by IdFieldName.

Parameter Type Description
Connection Connection Salesforce OAuth connection.
ObjectName String Salesforce object name to upsert.
IdFieldName String Field used to identify each record. Use Id for Salesforce record IDs, or provide a writable external-ID field for larger upsert batches.
Items Array Records to upsert.
Return Type Description
Response Array One response row per input item. Mutation responses include the provider fields Salesforce returns, such as id, success, created, errors, errorCode, statusCode, referenceId, and message, together with a nested Flowgear object that carries IsSuccess and Message.

Delete

Deletes one or more Salesforce records.

Parameter Type Description
Connection Connection Salesforce OAuth connection.
IdFieldName String Field in each input item that contains the record ID to delete. Defaults to Id.
Items Array Records to delete.
Return Type Description
Response Array One response row per input item. Mutation responses include the provider fields Salesforce returns, such as id, success, deleted, errors, errorCode, and message, together with a nested Flowgear object that carries IsSuccess and Message.

Usage Notes

  • Query returns current records only. Use QueryAll when your Workflow also needs deleted or archived rows.
  • Get returns zero rows when the requested Salesforce record is not found.
  • Query and QueryAll page through Salesforce results internally, so you do not need a separate continuation method in V2.
  • If Query or QueryAll finds no matching records, the node returns zero rows.
  • If the first Salesforce query request fails, the node surfaces that provider error and stops before it emits rows.
  • Create, Update, and Delete support up to 200 records per request.
  • Upsert supports two batching modes: Id-based upserts support up to 25 records per request, while external-ID upserts support up to 1000 records per composite request in 200-record subrequests.
  • Batch sizing is internal to the node and is not exposed as a public method parameter.
  • Templates are generated from the connected Salesforce org, so available objects and fields can differ between environments.
  • Changing Use PKCE affects only new authorization or reconnect attempts. Existing access and refresh tokens continue to work until reauthorization is required.
  • When Salesforce rotates a refresh token, the Node persists the replacement token on the Connection automatically.

Known Issues

  • External-ID Upsert requires the target Salesforce object to expose a writable external-ID field in the connected org.