Output Ports
| Port | Trigger | Description |
| success |
Salesforce API returned 2xx |
The operation completed successfully. All returned record data and job results are available in the output object downstream. |
| error |
API error, auth failure, or network error |
The Salesforce API returned an error response, the access token was invalid or expired, a required field was missing, or a network failure occurred. The error output includes a errorCode and message field. |
Standard Create / Update / Delete Output
For create, update, delete, and close operations on lead, account, contact, opportunity, and case resources:
| Field | Type | Description |
id | string | The Salesforce record ID of the created or modified record. |
success | bool | Always true on the success port. |
errors | array | Always an empty array on the success port. |
{
"id": "00Q5e000004ABCDEF",
"success": true,
"errors": []
}
lead / get Output
Returns a complete Salesforce Lead object with all accessible fields. Key fields include:
| Field | Type | Description |
Id | string | Salesforce record ID. |
FirstName | string | Lead first name. |
LastName | string | Lead last name. |
Company | string | Lead company name. |
Email | string | Lead email address. |
Phone | string | Lead phone number. |
Title | string | Job title. |
Status | string | Current lead status picklist value. |
LeadSource | string | Source of the lead. |
Rating | string | Lead rating (Hot/Warm/Cold). |
Industry | string | Lead industry. |
Street, City, State, PostalCode, Country | string | Address fields. |
Website | string | Company website. |
NumberOfEmployees | string | Employee count. |
AnnualRevenue | string | Annual revenue. |
Description | string | Lead description notes. |
IsConverted | bool | Whether the lead has been converted. |
ConvertedDate | string | Date of conversion if IsConverted is true. |
CreatedDate | string | ISO 8601 timestamp of record creation. |
LastModifiedDate | string | ISO 8601 timestamp of last modification. |
OwnerId | string | Salesforce User ID of the lead owner. |
lead / convert Output
Returns the IDs of the records created or used during conversion:
| Field | Type | Description |
accountId | string | Salesforce ID of the Account created or linked during conversion. |
contactId | string | Salesforce ID of the Contact created or linked during conversion. |
opportunityId | string | Salesforce ID of the Opportunity created or linked during conversion. May be null if opportunity creation was suppressed. |
{
"accountId": "0015e000005XYZABC",
"contactId": "0035e000004DEFGHI",
"opportunityId": "0065e000003JKLMNO"
}
soql / execute Output
| Field | Type | Description |
records | array | Array of record objects matching the SOQL query. Each object contains the fields specified in the SELECT clause. |
totalSize | int | Total number of records matching the query (may exceed the number returned if a LIMIT was not applied and results span multiple pages). |
done | bool | true when all records have been returned in this response. false indicates more pages exist — use soql/executeWithPagination to fetch all results automatically. |
{
"records": [
{
"Id": "0065e000003JKLMNO",
"Name": "Acme Q3 Deal",
"Amount": 85000,
"StageName": "Proposal/Price Quote",
"CloseDate": "2026-06-30"
},
{
"Id": "0065e000003PQRSTU",
"Name": "Global Corp Renewal",
"Amount": 120000,
"StageName": "Negotiation/Review",
"CloseDate": "2026-05-31"
}
],
"totalSize": 14,
"done": false
}
soql / executeWithPagination Output
| Field | Type | Description |
records | array | Combined array of all records across all pages. The node iterates through every nextRecordsUrl until done: true, then merges all page results into this single array. |
totalCount | int | Total number of records returned across all pages. Matches totalSize from the first Salesforce API response. |
{
"records": [
{ "Id": "0065e000003JKLMNO", "Name": "Acme Q3 Deal", "Amount": 85000 },
{ "Id": "0065e000003PQRSTU", "Name": "Global Corp Renewal", "Amount": 120000 }
// ... all remaining records from subsequent pages
],
"totalCount": 14
}
bulk / create Output
| Field | Type | Description |
jobId | string | The Salesforce Bulk API job ID created for this operation. Use to reference the job in Salesforce Setup > Bulk Data Load Jobs. |
successCount | int | Number of records successfully inserted. |
failureCount | int | Number of records that failed to insert. |
errors | array | Array of error objects for failed records. Each contains recordIndex, errorCode, and message. Empty array when all records succeeded. |
{
"jobId": "7505e000001ABCDz",
"successCount": 498,
"failureCount": 2,
"errors": [
{
"recordIndex": 147,
"errorCode": "DUPLICATE_VALUE",
"message": "duplicate value found: Email duplicates value on record with id: 0035e000004XXXXXX"
},
{
"recordIndex": 312,
"errorCode": "REQUIRED_FIELD_MISSING",
"message": "Required fields are missing: [LastName]"
}
]
}
Partial success on bulk operations: If some records fail and others succeed, the operation routes to the success port. Check failureCount and the errors array in your downstream logic to handle partial failures. The operation only routes to the error port if the entire bulk job fails to start or complete.
Error Output Schema
When an operation routes to the error port, the output object contains:
| Field | Type | Description |
errorCode | string | Salesforce error code string (see table below). |
message | string | Human-readable error description from Salesforce. |
fields | array | Array of field API names involved in the error (e.g. for validation failures). May be empty. |
statusCode | int | HTTP status code returned by the Salesforce API. |
Salesforce Error Codes
| Error Code | Cause | Resolution |
INVALID_FIELD |
A field name in the request or SOQL query does not exist on the object, or the field is not accessible to the running user. |
Check field API names in your configuration. Ensure the running user's profile has field-level security access to the field. |
FIELD_INTEGRITY_EXCEPTION |
A field value violates a Salesforce validation rule, dependent picklist constraint, or data type requirement. |
Review the message field for the specific constraint violated. Adjust the field value or update the Salesforce validation rule. |
DUPLICATE_VALUE |
A record with the same value for a unique or external ID field already exists. |
Use bulk/upsert instead of bulk/create, or check for existing records with a SOQL query before inserting. Review duplicate rules in Salesforce Setup. |
REQUIRED_FIELD_MISSING |
A required field was not provided in the operation input. |
Check the Configuration reference for required fields. Ensure all required fields are populated with non-null values before the node executes. |
INVALID_SESSION_ID |
The AccessToken is missing, expired, or was revoked. |
Refresh the OAuth2 access token before the workflow executes. For production workflows, implement a token refresh step at the start of the workflow using the HTTP Request node against the Salesforce token endpoint. |
REQUEST_RUNNING_TOO_LONG |
A SOQL query or bulk operation exceeded Salesforce's execution time limit. |
Optimise the SOQL query by adding WHERE filters, selective index fields, or reducing the result set size. For bulk jobs, reduce the batch size via the PageSize parameter. |
Accessing output downstream: If the Salesforce node is named createLead, access the created record ID via {{ nodes.createLead.output.id }}. For SOQL results, iterate the records array with a Loop node connected to {{ nodes.queryOpps.output.records }}.