Salesforce
Manage Salesforce CRM records, attachments, and documents
Overview
The Salesforce tool provides complete CRUD operations for 12 Salesforce resources: Lead, Contact, Account, Opportunity, Case, Task, Attachment, Custom Object, Document, Flow, Search (SOQL), and User. Attachment operations handle binary data: create/update uploads binary as base64 Body field, get retrieves attachment metadata. Document upload uses multipart form to create ContentVersion records. Supports OAuth2 authentication with manual token + refresh, SOQL query builder with conditions, pagination via nextRecordsUrl, upsert via external ID, custom fields, and campaign member management.
Category: Sales
Tool Name: salesforce
Version: 1
Appearance: Icon: lucide-CircleDollarSign | Color: #00A1E0
Node Type
Action (Binary) — handles file/binary data operations
| Direction | Port(s) |
|---|
| Input | Input |
| Output | Output, Error |
Credentials
This tool requires Salesforce OAuth2 credentials.
See the Credentials Guide for setup instructions.
Resources
| Resource | Value |
|---|
| Account | account |
| Attachment | attachment |
| Case | case |
| Contact | contact |
| Custom Object | customObject |
| Document | document |
| Flow | flow |
| Lead | lead |
| Opportunity | opportunity |
| Search | search |
| Task | task |
| User | user |
Operations
Which operations are available depends on the selected resource — see the parameter subsections below.
| Operation | Value | Description |
|---|
| Add Note | addNote | Add a note to the selected record |
| Add to Campaign | addToCampaign | Add the record to a campaign |
| Create | create | Create a record of the selected resource |
| Delete | delete | Delete a record by ID |
| Get | get | Retrieve a single record by ID |
| Get Many | getAll | Retrieve many records |
| Get Summary | getSummary | Get the object metadata summary for the selected resource |
| Update | update | Update an existing record |
| Upsert | upsert | Create or update a record by external ID |
| Add Comment | addComment | Add comment to a case |
| Upload | upload | Upload a document (ContentVersion) |
| Invoke | invoke | Invoke an autolaunched flow |
| Query | query | Execute a SOQL query |
Parameters
Get Summary takes no parameters of its own — Account, Attachment, Case, Contact, Lead, Opportunity and Task all offer it, and each uses only the shared settings listed under All Operations.
Account: Add Note
| Parameter | Type | Required | Default | Description |
|---|
| Title | string | Yes | — | — |
| Options | collection | No | {} | — |
| — Body | string | No | — | — |
| — Is Private | boolean | No | false | — |
— Owner ID (owner) | string | No | — | — |
Account ID (accountId) | string | Yes | — | — |
Account: Create
| Parameter | Type | Required | Default | Description |
|---|
| Name | string | Yes | — | — |
| Additional Fields | collection | No | {} | — |
| — Account Number | string | No | — | — |
| — Account Source | string | No | — | — |
| — Annual Revenue | number | No | 0 | — |
| — Billing City | string | No | — | — |
| — Billing Country | string | No | — | — |
| — Billing Postal Code | string | No | — | — |
| — Billing State | string | No | — | — |
| — Billing Street | string | No | — | — |
| — Custom Fields (JSON) | json | No | {} | — |
| — Description | string | No | — | — |
| — Fax | string | No | — | — |
| — Industry | string | No | — | — |
| — Jigsaw | string | No | — | — |
| — Number of Employees | number | No | 0 | — |
— Owner ID (owner) | string | No | — | — |
| — Parent ID | string | No | — | — |
| — Phone | string | No | — | — |
| — Record Type ID | string | No | — | — |
| — Shipping City | string | No | — | — |
| — Shipping Country | string | No | — | — |
| — Shipping Postal Code | string | No | — | — |
| — Shipping State | string | No | — | — |
| — Shipping Street | string | No | — | — |
| — SIC Description | string | No | — | — |
| — Type | string | No | — | — |
| — Website | string | No | — | — |
Account: Delete
| Parameter | Type | Required | Default | Description |
|---|
Account ID (accountId) | string | Yes | — | — |
Account: Get
| Parameter | Type | Required | Default | Description |
|---|
Account ID (accountId) | string | Yes | — | — |
Account: Get Many
| Parameter | Type | Required | Default | Description |
|---|
| Return All | boolean | No | false | — |
| Limit | number | No | 50 | (shown when Return All is false) |
| Options | collection | No | {} | — |
| — Conditions (JSON) | json | No | {} | JSON: {“conditionValues”:[{“field”:“Name”,“operation”:“equal”,“value”:“Acme”}]} |
| — Fields | string | No | — | Comma-separated list of fields to return |
Account: Update
| Parameter | Type | Required | Default | Description |
|---|
Account ID (accountId) | string | Yes | — | — |
| Update Fields | collection | No | {} | — |
| — Account Number | string | No | — | — |
| — Account Source | string | No | — | — |
| — Annual Revenue | number | No | 0 | — |
| — Billing City | string | No | — | — |
| — Billing Country | string | No | — | — |
| — Billing Postal Code | string | No | — | — |
| — Billing State | string | No | — | — |
| — Billing Street | string | No | — | — |
| — Custom Fields (JSON) | json | No | {} | — |
| — Description | string | No | — | — |
| — Fax | string | No | — | — |
| — Industry | string | No | — | — |
| — Jigsaw | string | No | — | — |
| — Name | string | No | — | — |
| — Number of Employees | number | No | 0 | — |
— Owner ID (owner) | string | No | — | — |
| — Parent ID | string | No | — | — |
| — Phone | string | No | — | — |
| — Record Type ID | string | No | — | — |
| — Shipping City | string | No | — | — |
| — Shipping Country | string | No | — | — |
| — Shipping Postal Code | string | No | — | — |
| — Shipping State | string | No | — | — |
| — Shipping Street | string | No | — | — |
| — SIC Description | string | No | — | — |
| — Type | string | No | — | — |
| — Website | string | No | — | — |
Account: Upsert
| Parameter | Type | Required | Default | Description |
|---|
| External ID Field | string | Yes | — | API name of the external ID field |
| External ID Value | string | Yes | — | — |
| Name | string | Yes | — | — |
| Additional Fields | collection | No | {} | — |
| — Account Number | string | No | — | — |
| — Account Source | string | No | — | — |
| — Annual Revenue | number | No | 0 | — |
| — Billing City | string | No | — | — |
| — Billing Country | string | No | — | — |
| — Billing Postal Code | string | No | — | — |
| — Billing State | string | No | — | — |
| — Billing Street | string | No | — | — |
| — Custom Fields (JSON) | json | No | {} | — |
| — Description | string | No | — | — |
| — Fax | string | No | — | — |
| — Industry | string | No | — | — |
| — Jigsaw | string | No | — | — |
| — Number of Employees | number | No | 0 | — |
— Owner ID (owner) | string | No | — | — |
| — Parent ID | string | No | — | — |
| — Phone | string | No | — | — |
| — Record Type ID | string | No | — | — |
| — Shipping City | string | No | — | — |
| — Shipping Country | string | No | — | — |
| — Shipping Postal Code | string | No | — | — |
| — Shipping State | string | No | — | — |
| — Shipping Street | string | No | — | — |
| — SIC Description | string | No | — | — |
| — Type | string | No | — | — |
| — Website | string | No | — | — |
Attachment: Create
| Parameter | Type | Required | Default | Description |
|---|
| Parent ID | string | Yes | — | — |
| Name | string | Yes | — | Filename (max 255 chars) |
| Binary Property | string | Yes | data | Name of the binary property containing the file to upload |
| Additional Fields | collection | No | {} | — |
| — Description | string | No | — | — |
| — Is Private | boolean | No | false | — |
— Owner ID (owner) | string | No | — | — |
Attachment: Delete
| Parameter | Type | Required | Default | Description |
|---|
| Attachment ID | string | Yes | — | — |
Attachment: Get
| Parameter | Type | Required | Default | Description |
|---|
| Attachment ID | string | Yes | — | — |
Attachment: Get Many
| Parameter | Type | Required | Default | Description |
|---|
| Return All | boolean | No | false | — |
| Limit | number | No | 50 | (shown when Return All is false) |
| Options | collection | No | {} | — |
| — Conditions (JSON) | json | No | {} | JSON: {“conditionValues”:[{“field”:“Name”,“operation”:“equal”,“value”:“Acme”}]} |
| — Fields | string | No | — | Comma-separated list of fields to return |
Attachment: Update
| Parameter | Type | Required | Default | Description |
|---|
| Attachment ID | string | Yes | — | — |
| Update Fields | collection | No | {} | — |
| — Binary Property | string | No | data | Name of the binary property to upload (optional) |
| — Description | string | No | — | — |
| — Is Private | boolean | No | false | — |
| — Name | string | No | — | — |
— Owner ID (owner) | string | No | — | — |
| Parameter | Type | Required | Default | Description |
|---|
| Case ID | string | Yes | — | — |
| Comment Body | string | No | — | — |
| Is Published | boolean | No | false | — |
Case: Create
| Parameter | Type | Required | Default | Description |
|---|
| Type | string | Yes | — | — |
| Additional Fields | collection | No | {} | — |
— Account ID (accountId) | string | No | — | — |
| — Contact ID | string | No | — | — |
| — Custom Fields (JSON) | json | No | {} | — |
| — Description | string | No | — | — |
| — Is Escalated | boolean | No | false | — |
| — Origin | string | No | — | — |
— Owner ID (owner) | string | No | — | — |
| — Parent ID | string | No | — | — |
| — Priority | string | No | — | — |
| — Reason | string | No | — | — |
| — Record Type ID | string | No | — | — |
| — Status | string | No | — | — |
| — Subject | string | No | — | — |
| — Supplied Company | string | No | — | — |
| — Supplied Email | string | No | — | — |
| — Supplied Name | string | No | — | — |
| — Supplied Phone | string | No | — | — |
Case: Delete
| Parameter | Type | Required | Default | Description |
|---|
| Case ID | string | Yes | — | — |
Case: Get
| Parameter | Type | Required | Default | Description |
|---|
| Case ID | string | Yes | — | — |
Case: Get Many
| Parameter | Type | Required | Default | Description |
|---|
| Return All | boolean | No | false | — |
| Limit | number | No | 50 | (shown when Return All is false) |
| Options | collection | No | {} | — |
| — Conditions (JSON) | json | No | {} | JSON: {“conditionValues”:[{“field”:“Name”,“operation”:“equal”,“value”:“Acme”}]} |
| — Fields | string | No | — | Comma-separated list of fields to return |
Case: Update
| Parameter | Type | Required | Default | Description |
|---|
| Case ID | string | Yes | — | — |
| Update Fields | collection | No | {} | — |
— Account ID (accountId) | string | No | — | — |
| — Contact ID | string | No | — | — |
| — Custom Fields (JSON) | json | No | {} | — |
| — Description | string | No | — | — |
| — Is Escalated | boolean | No | false | — |
| — Origin | string | No | — | — |
— Owner ID (owner) | string | No | — | — |
| — Parent ID | string | No | — | — |
| — Priority | string | No | — | — |
| — Reason | string | No | — | — |
| — Record Type ID | string | No | — | — |
| — Status | string | No | — | — |
| — Subject | string | No | — | — |
| — Supplied Company | string | No | — | — |
| — Supplied Email | string | No | — | — |
| — Supplied Name | string | No | — | — |
| — Supplied Phone | string | No | — | — |
| — Type | string | No | — | — |
| Parameter | Type | Required | Default | Description |
|---|
| Title | string | Yes | — | — |
| Options | collection | No | {} | — |
| — Body | string | No | — | — |
| — Is Private | boolean | No | false | — |
— Owner ID (owner) | string | No | — | — |
| Contact ID | string | Yes | — | — |
| Parameter | Type | Required | Default | Description |
|---|
| Campaign ID | string | Yes | — | — |
| Options | collection | No | {} | — |
| — Status | string | No | — | — |
| Contact ID | string | Yes | — | — |
| Parameter | Type | Required | Default | Description |
|---|
| Last Name | string | Yes | — | — |
| Additional Fields | collection | No | {} | — |
— Account ID (acconuntId) | string | No | — | — |
| — Assistant Name | string | No | — | — |
| — Assistant Phone | string | No | — | — |
| — Birthdate | string | No | — | Date in YYYY-MM-DD format |
| — Custom Fields (JSON) | json | No | {} | — |
| — Department | string | No | — | — |
| — Description | string | No | — | — |
| — Email | string | No | — | — |
| — Email Bounced Date | string | No | — | — |
| — Email Bounced Reason | string | No | — | — |
| — Fax | string | No | — | — |
— First Name (firstName) | string | No | — | — |
| — Home Phone | string | No | — | — |
| — Jigsaw | string | No | — | — |
| — Lead Source | string | No | — | — |
| — Mailing City | string | No | — | — |
| — Mailing Country | string | No | — | — |
| — Mailing Postal Code | string | No | — | — |
| — Mailing State | string | No | — | — |
| — Mailing Street | string | No | — | — |
| — Mobile Phone | string | No | — | — |
| — Other City | string | No | — | — |
| — Other Country | string | No | — | — |
| — Other Phone | string | No | — | — |
| — Other Postal Code | string | No | — | — |
| — Other State | string | No | — | — |
| — Other Street | string | No | — | — |
— Owner ID (owner) | string | No | — | — |
| — Phone | string | No | — | — |
| — Record Type ID | string | No | — | — |
| — Salutation | string | No | — | — |
| — Title | string | No | — | — |
| Parameter | Type | Required | Default | Description |
|---|
| Contact ID | string | Yes | — | — |
| Parameter | Type | Required | Default | Description |
|---|
| Contact ID | string | Yes | — | — |
| Parameter | Type | Required | Default | Description |
|---|
| Return All | boolean | No | false | — |
| Limit | number | No | 50 | (shown when Return All is false) |
| Options | collection | No | {} | — |
| — Conditions (JSON) | json | No | {} | JSON: {“conditionValues”:[{“field”:“Name”,“operation”:“equal”,“value”:“Acme”}]} |
| — Fields | string | No | — | Comma-separated list of fields to return |
| Parameter | Type | Required | Default | Description |
|---|
| Contact ID | string | Yes | — | — |
| Update Fields | collection | No | {} | — |
— Account ID (acconuntId) | string | No | — | — |
| — Assistant Name | string | No | — | — |
| — Assistant Phone | string | No | — | — |
| — Birthdate | string | No | — | — |
| — Custom Fields (JSON) | json | No | {} | — |
| — Department | string | No | — | — |
| — Description | string | No | — | — |
| — Email | string | No | — | — |
| — Email Bounced Date | string | No | — | — |
| — Email Bounced Reason | string | No | — | — |
| — Fax | string | No | — | — |
— First Name (firstName) | string | No | — | — |
| — Home Phone | string | No | — | — |
| — Jigsaw | string | No | — | — |
| — Last Name | string | No | — | — |
| — Lead Source | string | No | — | — |
| — Mailing City | string | No | — | — |
| — Mailing Country | string | No | — | — |
| — Mailing Postal Code | string | No | — | — |
| — Mailing State | string | No | — | — |
| — Mailing Street | string | No | — | — |
| — Mobile Phone | string | No | — | — |
| — Other City | string | No | — | — |
| — Other Country | string | No | — | — |
| — Other Phone | string | No | — | — |
| — Other Postal Code | string | No | — | — |
| — Other State | string | No | — | — |
| — Other Street | string | No | — | — |
— Owner ID (owner) | string | No | — | — |
| — Phone | string | No | — | — |
| — Record Type ID | string | No | — | — |
| — Salutation | string | No | — | — |
| — Title | string | No | — | — |
| Parameter | Type | Required | Default | Description |
|---|
| External ID Field | string | Yes | — | API name of the external ID field |
| External ID Value | string | Yes | — | — |
| Last Name | string | Yes | — | — |
| Additional Fields | collection | No | {} | — |
— Account ID (acconuntId) | string | No | — | — |
| — Assistant Name | string | No | — | — |
| — Assistant Phone | string | No | — | — |
| — Birthdate | string | No | — | Date in YYYY-MM-DD format |
| — Custom Fields (JSON) | json | No | {} | — |
| — Department | string | No | — | — |
| — Description | string | No | — | — |
| — Email | string | No | — | — |
| — Email Bounced Date | string | No | — | — |
| — Email Bounced Reason | string | No | — | — |
| — Fax | string | No | — | — |
— First Name (firstName) | string | No | — | — |
| — Home Phone | string | No | — | — |
| — Jigsaw | string | No | — | — |
| — Lead Source | string | No | — | — |
| — Mailing City | string | No | — | — |
| — Mailing Country | string | No | — | — |
| — Mailing Postal Code | string | No | — | — |
| — Mailing State | string | No | — | — |
| — Mailing Street | string | No | — | — |
| — Mobile Phone | string | No | — | — |
| — Other City | string | No | — | — |
| — Other Country | string | No | — | — |
| — Other Phone | string | No | — | — |
| — Other Postal Code | string | No | — | — |
| — Other State | string | No | — | — |
| — Other Street | string | No | — | — |
— Owner ID (owner) | string | No | — | — |
| — Phone | string | No | — | — |
| — Record Type ID | string | No | — | — |
| — Salutation | string | No | — | — |
| — Title | string | No | — | — |
Custom Object: Create
| Parameter | Type | Required | Default | Description |
|---|
| Custom Object API Name | string | Yes | — | API name of the custom object (e.g. My_Object__c) |
| Custom Fields (JSON) | json | No | {} | JSON of field API name to value, e.g. {“My_Field__c”: “value”} |
| Additional Fields | collection | No | {} | — |
| — Record Type ID | string | No | — | — |
Custom Object: Delete
| Parameter | Type | Required | Default | Description |
|---|
| Custom Object API Name | string | Yes | — | API name of the custom object (e.g. My_Object__c) |
| Record ID | string | Yes | — | — |
Custom Object: Get
| Parameter | Type | Required | Default | Description |
|---|
| Custom Object API Name | string | Yes | — | API name of the custom object (e.g. My_Object__c) |
| Record ID | string | Yes | — | — |
Custom Object: Get Many
| Parameter | Type | Required | Default | Description |
|---|
| Custom Object API Name | string | Yes | — | API name of the custom object (e.g. My_Object__c) |
| Return All | boolean | No | false | — |
| Limit | number | No | 50 | (shown when Return All is false) |
| Options | collection | No | {} | — |
| — Conditions (JSON) | json | No | {} | JSON: {“conditionValues”:[{“field”:“Name”,“operation”:“equal”,“value”:“Acme”}]} |
| — Fields | string | No | — | Comma-separated list of fields to return |
Custom Object: Update
| Parameter | Type | Required | Default | Description |
|---|
| Custom Object API Name | string | Yes | — | API name of the custom object (e.g. My_Object__c) |
| Record ID | string | Yes | — | — |
| Custom Fields (JSON) | json | No | {} | JSON of field API name to value, e.g. {“My_Field__c”: “value”} |
| Update Fields | collection | No | {} | — |
| — Record Type ID | string | No | — | — |
Custom Object: Upsert
| Parameter | Type | Required | Default | Description |
|---|
| External ID Field | string | Yes | — | API name of the external ID field |
| External ID Value | string | Yes | — | — |
| Custom Object API Name | string | Yes | — | API name of the custom object (e.g. My_Object__c) |
| Custom Fields (JSON) | json | No | {} | JSON of field API name to value, e.g. {“My_Field__c”: “value”} |
| Additional Fields | collection | No | {} | — |
| — Record Type ID | string | No | — | — |
Document: Upload
| Parameter | Type | Required | Default | Description |
|---|
| Title | string | Yes | — | — |
| Binary Property | string | Yes | data | — |
| Additional Fields | collection | No | {} | — |
| — File Extension | string | No | — | Override file extension (e.g. pdf) |
| — Link To Object ID | string | No | — | ID of object to link document to (FirstPublishLocationId) |
— Owner ID (ownerId) | string | No | — | — |
Flow: Get Many
| Parameter | Type | Required | Default | Description |
|---|
| Return All | boolean | No | false | — |
| Limit | number | No | 50 | (shown when Return All is false) |
| Options | collection | No | {} | — |
| — Conditions (JSON) | json | No | {} | JSON: {“conditionValues”:[{“field”:“Name”,“operation”:“equal”,“value”:“Acme”}]} |
| — Fields | string | No | — | Comma-separated list of fields to return |
Flow: Invoke
| Parameter | Type | Required | Default | Description |
|---|
| API Name | string | Yes | — | — |
| JSON Parameters | boolean | No | false | — |
| Input Variables (JSON) | json | No | {} | (shown when JSON Parameters is true) |
Lead: Add Note
| Parameter | Type | Required | Default | Description |
|---|
| Lead ID | string | Yes | — | — |
| Title | string | Yes | — | — |
| Options | collection | No | {} | — |
| — Body | string | No | — | — |
| — Is Private | boolean | No | false | — |
— Owner ID (owner) | string | No | — | — |
Lead: Add to Campaign
| Parameter | Type | Required | Default | Description |
|---|
| Lead ID | string | Yes | — | — |
| Campaign ID | string | Yes | — | — |
| Options | collection | No | {} | — |
| — Status | string | No | — | — |
Lead: Create
| Parameter | Type | Required | Default | Description |
|---|
| Company | string | Yes | — | Company name (required) |
| Last Name | string | Yes | — | Last name (required) |
| Additional Fields | collection | No | {} | — |
| — Annual Revenue | number | No | 0 | — |
| — City | string | No | — | — |
| — Country | string | No | — | — |
| — Custom Fields (JSON) | json | No | {} | JSON object of custom field values, e.g. {“My_Field__c”: “value”} |
| — Description | string | No | — | — |
| — Email | string | No | — | — |
| — Fax | string | No | — | — |
— First Name (firstname) | string | No | — | — |
| — Has Opted Out of Email | boolean | No | false | — |
| — Has Opted Out of Fax | boolean | No | false | — |
| — Industry | string | No | — | — |
| — Is Unread By Owner | boolean | No | false | — |
| — Jigsaw | string | No | — | — |
| — Lead Source | string | No | — | — |
| — Mobile Phone | string | No | — | — |
| — Number of Employees | number | No | 0 | — |
— Owner ID (owner) | string | No | — | User or Queue ID |
| — Phone | string | No | — | — |
| — Postal Code | string | No | — | — |
| — Rating | string | No | — | — |
| — Record Type ID | string | No | — | — |
| — Salutation | string | No | — | — |
| — State | string | No | — | — |
| — Status | string | No | — | — |
| — Street | string | No | — | — |
| — Title | string | No | — | — |
| — Website | string | No | — | — |
Lead: Delete
| Parameter | Type | Required | Default | Description |
|---|
| Lead ID | string | Yes | — | — |
Lead: Get
| Parameter | Type | Required | Default | Description |
|---|
| Lead ID | string | Yes | — | — |
Lead: Get Many
| Parameter | Type | Required | Default | Description |
|---|
| Return All | boolean | No | false | — |
| Limit | number | No | 50 | (shown when Return All is false) |
| Options | collection | No | {} | — |
| — Conditions (JSON) | json | No | {} | JSON: {“conditionValues”:[{“field”:“Name”,“operation”:“equal”,“value”:“Acme”}]} |
| — Fields | string | No | — | Comma-separated list of fields to return |
Lead: Update
| Parameter | Type | Required | Default | Description |
|---|
| Lead ID | string | Yes | — | — |
| Update Fields | collection | No | {} | — |
| — Annual Revenue | number | No | 0 | — |
| — City | string | No | — | — |
| — Company | string | No | — | — |
| — Country | string | No | — | — |
| — Custom Fields (JSON) | json | No | {} | — |
| — Description | string | No | — | — |
| — Email | string | No | — | — |
| — Fax | string | No | — | — |
— First Name (firstname) | string | No | — | — |
| — Has Opted Out of Email | boolean | No | false | — |
| — Has Opted Out of Fax | boolean | No | false | — |
| — Industry | string | No | — | — |
| — Is Unread By Owner | boolean | No | false | — |
| — Jigsaw | string | No | — | — |
| — Last Name | string | No | — | — |
| — Lead Source | string | No | — | — |
| — Mobile Phone | string | No | — | — |
| — Number of Employees | number | No | 0 | — |
— Owner ID (owner) | string | No | — | — |
| — Phone | string | No | — | — |
| — Postal Code | string | No | — | — |
| — Rating | string | No | — | — |
| — Record Type ID | string | No | — | — |
| — Salutation | string | No | — | — |
| — State | string | No | — | — |
| — Status | string | No | — | — |
| — Street | string | No | — | — |
| — Title | string | No | — | — |
| — Website | string | No | — | — |
Lead: Upsert
| Parameter | Type | Required | Default | Description |
|---|
| Company | string | Yes | — | Company name (required) |
| Last Name | string | Yes | — | Last name (required) |
| External ID Field | string | Yes | — | API name of the external ID field |
| External ID Value | string | Yes | — | — |
| Additional Fields | collection | No | {} | — |
| — Annual Revenue | number | No | 0 | — |
| — City | string | No | — | — |
| — Country | string | No | — | — |
| — Custom Fields (JSON) | json | No | {} | JSON object of custom field values, e.g. {“My_Field__c”: “value”} |
| — Description | string | No | — | — |
| — Email | string | No | — | — |
| — Fax | string | No | — | — |
— First Name (firstname) | string | No | — | — |
| — Has Opted Out of Email | boolean | No | false | — |
| — Has Opted Out of Fax | boolean | No | false | — |
| — Industry | string | No | — | — |
| — Is Unread By Owner | boolean | No | false | — |
| — Jigsaw | string | No | — | — |
| — Lead Source | string | No | — | — |
| — Mobile Phone | string | No | — | — |
| — Number of Employees | number | No | 0 | — |
— Owner ID (owner) | string | No | — | User or Queue ID |
| — Phone | string | No | — | — |
| — Postal Code | string | No | — | — |
| — Rating | string | No | — | — |
| — Record Type ID | string | No | — | — |
| — Salutation | string | No | — | — |
| — State | string | No | — | — |
| — Status | string | No | — | — |
| — Street | string | No | — | — |
| — Title | string | No | — | — |
| — Website | string | No | — | — |
Opportunity: Add Note
| Parameter | Type | Required | Default | Description |
|---|
| Title | string | Yes | — | — |
| Options | collection | No | {} | — |
| — Body | string | No | — | — |
| — Is Private | boolean | No | false | — |
— Owner ID (owner) | string | No | — | — |
| Opportunity ID | string | Yes | — | — |
Opportunity: Create
| Parameter | Type | Required | Default | Description |
|---|
| Name | string | Yes | — | — |
| Close Date | string | Yes | — | Date in YYYY-MM-DD format |
| Stage Name | string | Yes | — | — |
| Additional Fields | collection | No | {} | — |
— Account ID (accountId) | string | No | — | — |
| — Amount | number | No | 0 | — |
| — Campaign ID | string | No | — | — |
| — Custom Fields (JSON) | json | No | {} | — |
| — Description | string | No | — | — |
| — Forecast Category | string | No | — | — |
| — Lead Source | string | No | — | — |
| — Next Step | string | No | — | — |
— Owner ID (owner) | string | No | — | — |
| — Pricebook2 ID | string | No | — | — |
| — Probability | number | No | 0 | — |
| — Type | string | No | — | — |
Opportunity: Delete
| Parameter | Type | Required | Default | Description |
|---|
| Opportunity ID | string | Yes | — | — |
Opportunity: Get
| Parameter | Type | Required | Default | Description |
|---|
| Opportunity ID | string | Yes | — | — |
Opportunity: Get Many
| Parameter | Type | Required | Default | Description |
|---|
| Return All | boolean | No | false | — |
| Limit | number | No | 50 | (shown when Return All is false) |
| Options | collection | No | {} | — |
| — Conditions (JSON) | json | No | {} | JSON: {“conditionValues”:[{“field”:“Name”,“operation”:“equal”,“value”:“Acme”}]} |
| — Fields | string | No | — | Comma-separated list of fields to return |
Opportunity: Update
| Parameter | Type | Required | Default | Description |
|---|
| Opportunity ID | string | Yes | — | — |
| Update Fields | collection | No | {} | — |
— Account ID (accountId) | string | No | — | — |
| — Amount | number | No | 0 | — |
| — Campaign ID | string | No | — | — |
| — Close Date | string | No | — | — |
| — Custom Fields (JSON) | json | No | {} | — |
| — Description | string | No | — | — |
| — Forecast Category | string | No | — | — |
| — Lead Source | string | No | — | — |
| — Name | string | No | — | — |
| — Next Step | string | No | — | — |
— Owner ID (owner) | string | No | — | — |
| — Pricebook2 ID | string | No | — | — |
| — Probability | number | No | 0 | — |
| — Stage Name | string | No | — | — |
| — Type | string | No | — | — |
Opportunity: Upsert
| Parameter | Type | Required | Default | Description |
|---|
| External ID Field | string | Yes | — | API name of the external ID field |
| External ID Value | string | Yes | — | — |
| Name | string | Yes | — | — |
| Close Date | string | Yes | — | Date in YYYY-MM-DD format |
| Stage Name | string | Yes | — | — |
| Additional Fields | collection | No | {} | — |
— Account ID (accountId) | string | No | — | — |
| — Amount | number | No | 0 | — |
| — Campaign ID | string | No | — | — |
| — Custom Fields (JSON) | json | No | {} | — |
| — Description | string | No | — | — |
| — Forecast Category | string | No | — | — |
| — Lead Source | string | No | — | — |
| — Next Step | string | No | — | — |
— Owner ID (owner) | string | No | — | — |
| — Pricebook2 ID | string | No | — | — |
| — Probability | number | No | 0 | — |
| — Type | string | No | — | — |
Search: Query
| Parameter | Type | Required | Default | Description |
|---|
| SOQL Query | string | Yes | — | Raw SOQL query string |
Task: Create
| Parameter | Type | Required | Default | Description |
|---|
| Status | string | Yes | — | — |
| Additional Fields | collection | No | {} | — |
| — Activity Date | string | No | — | — |
| — Call Disposition | string | No | — | — |
| — Call Duration (Seconds) | number | No | 0 | — |
| — Call Object | string | No | — | — |
| — Call Type | string | No | — | — |
| — Custom Fields (JSON) | json | No | {} | — |
| — Description | string | No | — | — |
| — Is Reminder Set | boolean | No | false | — |
— Owner ID (owner) | string | No | — | — |
| — Priority | string | No | — | — |
| — Recurrence Type | string | No | — | — |
| — Reminder DateTime | string | No | — | — |
| — Subject | string | No | — | — |
| — Task Subtype | string | No | — | Maps to TaskSubtype field |
| — What ID | string | No | — | — |
| — Who ID | string | No | — | — |
Task: Delete
| Parameter | Type | Required | Default | Description |
|---|
| Task ID | string | Yes | — | — |
Task: Get
| Parameter | Type | Required | Default | Description |
|---|
| Task ID | string | Yes | — | — |
Task: Get Many
| Parameter | Type | Required | Default | Description |
|---|
| Return All | boolean | No | false | — |
| Limit | number | No | 50 | (shown when Return All is false) |
| Options | collection | No | {} | — |
| — Conditions (JSON) | json | No | {} | JSON: {“conditionValues”:[{“field”:“Name”,“operation”:“equal”,“value”:“Acme”}]} |
| — Fields | string | No | — | Comma-separated list of fields to return |
Task: Update
| Parameter | Type | Required | Default | Description |
|---|
| Task ID | string | Yes | — | — |
| Update Fields | collection | No | {} | — |
| — Activity Date | string | No | — | — |
| — Call Disposition | string | No | — | — |
| — Call Duration (Seconds) | number | No | 0 | — |
| — Call Object | string | No | — | — |
| — Call Type | string | No | — | — |
| — Custom Fields (JSON) | json | No | {} | — |
| — Description | string | No | — | — |
| — Is Reminder Set | boolean | No | false | — |
— Owner ID (owner) | string | No | — | — |
| — Priority | string | No | — | — |
| — Status | string | No | — | — |
| — Subject | string | No | — | — |
| — Task Subtype | string | No | — | — |
| — What ID | string | No | — | — |
| — Who ID | string | No | — | — |
User: Get
| Parameter | Type | Required | Default | Description |
|---|
| User ID | string | Yes | — | — |
User: Get Many
| Parameter | Type | Required | Default | Description |
|---|
| Return All | boolean | No | false | — |
| Limit | number | No | 50 | (shown when Return All is false) |
| Options | collection | No | {} | — |
| — Conditions (JSON) | json | No | {} | JSON: {“conditionValues”:[{“field”:“Name”,“operation”:“equal”,“value”:“Acme”}]} |
| — Fields | string | No | — | Comma-separated list of fields to return |
All Operations
| Parameter | Type | Required | Default | Description |
|---|
| Salesforce Account | credential | No | — | Connect your Salesforce account via OAuth2. |
| Max Concurrency | number | No | 10 | Maximum number of items to process concurrently |
Output Data
The node replaces the item JSON with the Salesforce response. Fields that arrived on the input item are not carried through, so capture anything you still need in an earlier node or merge it back downstream. Binary data on the input item is forwarded to the output item unchanged.
Every operation produces exactly one output item per input item — including Get Many and Query, whose matching records arrive as an array on that single item rather than as one item per record. Use a Split Out node on records when you want one item per record. A node run with no input items produces no output items.
These shapes are built by the node itself:
| Operation | Output item JSON |
|---|
getAll on Account, Attachment, Case, Contact, Custom Object, Lead, Opportunity, Task, User | { "records": [ … ] } |
getAll on Flow | { "actions": [ … ] } — trimmed to Limit unless Return All is on |
query | { "records": [ … ] } |
delete, and any update or upsert that Salesforce answers with no content | { "errors": [], "success": true } |
{
"errors": [],
"success": true
}
Every other operation — create, get, getSummary, addNote, addToCampaign, addComment, invoke and upload — puts the Salesforce REST response on the item exactly as the API returned it. The node does not add, rename or reshape those fields, so what you can reference downstream is whatever your Salesforce org sends back for that object.
Two behaviors worth knowing before you build on the output:
- Get Many follows pagination for you. With Return All on, every page of the query result is fetched and all records land in the one
records array; with it off, the Limit is applied as a SOQL LIMIT.
- Attachment Get returns the attachment record, not the file. It gives you the attachment’s Salesforce fields; it does not download the file contents into binary data.
Reference the result downstream by expression, for example {{ $json.records }} after a Get Many or {{ $json.success }} after a Delete.
Usage Examples
- Create a new lead in Salesforce
- Upload an attachment to a Salesforce record
- Upload a document to Salesforce Content
- Query Salesforce records with SOQL
- Update an opportunity stage
- Invoke a Salesforce Flow
Example Configuration
Create a lead from the fields on the incoming item:
{
"type": "salesforce",
"parameters": {
"resource": "lead",
"operation": "create",
"company": "{{ $json.company }}",
"lastname": "{{ $json.lastName }}",
"additionalFields": {
"firstname": "{{ $json.firstName }}",
"email": "{{ $json.email }}",
"phone": "{{ $json.phone }}",
"status": "Open - Not Contacted"
}
}
}
Create or update an opportunity keyed on your own external ID, so re-running the workflow does not duplicate records:
{
"type": "salesforce",
"parameters": {
"resource": "opportunity",
"operation": "upsert",
"externalId": "External_ID__c",
"externalIdValue": "{{ $json.dealRef }}",
"name": "{{ $json.dealName }}",
"closeDate": "{{ $json.closeDate }}",
"stageName": "Prospecting",
"additionalFields": {
"amount": 100000,
"probability": 25
}
}
}
Attach a file produced by an upstream node to a Salesforce record:
{
"type": "salesforce",
"parameters": {
"resource": "attachment",
"operation": "create",
"parentId": "{{ $json.accountId }}",
"name": "contract.pdf",
"binaryPropertyName": "data",
"additionalFields": {
"description": "Signed contract",
"isPrivate": false
}
}
}
List leads with a field list and a filter — Conditions (JSON) takes a conditionValues array, one entry per condition:
{
"type": "salesforce",
"parameters": {
"resource": "lead",
"operation": "getAll",
"returnAll": false,
"limit": 50,
"options": {
"fields": "Id,Name,Email,Company,Status",
"conditionsUi": "{\"conditionValues\":[{\"field\":\"Status\",\"operation\":\"equal\",\"value\":\"Open - Not Contacted\"}]}"
}
}
}
Run a SOQL query directly:
{
"type": "salesforce",
"parameters": {
"resource": "search",
"operation": "query",
"query": "SELECT Id, Name, Email FROM Contact WHERE LastName = '{{ $json.lastName }}' LIMIT 10"
}
}
Error Handling
| Mode | Behavior |
|---|
| stop | Halts workflow on first error |
| continue | Skips failed items, passes successful ones through |
| errorPort | Routes failed items to Error output port |
Tips
Manage Salesforce CRM records, attachments, and documents with full CRUD and binary upload/download support.
Common Patterns
Standard CRUD Operations
Most Salesforce resources support standard CRUD operations:
- Create: Requires resource-specific required fields + optional additionalFields
- Get: Requires the resource ID
- Update: Requires the resource ID + updateFields collection
- Delete: Requires only the resource ID
- Get All: Supports pagination with returnAll/limit and filtering with options
Upsert Pattern
For resources supporting upsert (leads, contacts, accounts, opportunities, custom objects):
- Specify the external ID field name in
externalId
- Provide the external ID value in
externalIdValue
- Include required fields for creation
- Use
additionalFields for optional fields
Binary File Operations
For attachments and documents:
- Set
binaryPropertyName to reference the workflow property containing the file data
- Provide appropriate metadata (name, title, etc.)
- Use
additionalFields for optional properties like description or privacy settings
Custom Object Operations
When working with custom objects:
- Always specify the
customObject API name (ending in __c)
- Use
customFieldsUi JSON for custom field values
- Standard Salesforce fields can still be used in additionalFields/updateFields