# Salesforce

Create, find, update and delete Salesforce accounts, contacts, leads, opportunities, cases, tasks and records of any object, query with SOQL, search text, upload files and start flows.

## Connect Salesforce

1. In the sidebar, open **Connections** and press **Add connection**.
2. Type `salesforce` and choose **Salesforce**.
3. Press **Sign in with Salesforce**, then choose your account in Salesforce’s window and allow access.

Before you sign in, the sheet asks:

- **Login host · Optional**: Leave it empty (login) for a production or Developer Edition org, type test for a sandbox, or the org’s My Domain (acme.my.salesforce.com, acme--uat.sandbox.my.salesforce.com) when it blocks login and test.

For a sandbox, type test under Login host; for an org that only allows its own My Domain, type that (acme.my.salesforce.com). Where this installation has no Salesforce app, you sign in through an External Client App made in your own org: its consumer key and secret (OAuth scopes api and refresh_token, PKCE on, callback URL: this installation’s /api/oauth2/callback).

**What if it says “Salesforce sign-in isn’t set up here”?**

Signing in with Salesforce needs a Salesforce app on this installation, and it has none yet.

**On Cloud:** The sheet says “It’s set up once for everyone who uses this service, not by an organization.”

**Self-hosted:** An admin of the installation sees **Set up Salesforce sign-in** instead, and sets it up once for everyone. Everyone else sees who to ask.

1. Create an app in Salesforce’s developer settings ([Salesforce’s guide](https://help.salesforce.com/s/articleView?id=xcloud.create_a_local_external_client_app.htm&type=5)).
2. In GoRunner, copy the **Redirect address to add in Salesforce’s developer settings**, and add it to the app.
3. Paste the **Client ID** and **Client secret**, then press **Save and sign in**.

[Set up a sign-in app](https://docs.gorunner.io/self-host/oauth-apps#other-providers)

**Can I use my own Salesforce app?**

Yes. In the sheet, open **Use your own Salesforce app** and paste its **Client ID** and **Client secret**. Add the redirect address it shows to your app first. The connection then signs in through your app instead of the installation’s.

[Connections](https://docs.gorunner.io/build/connections) says how to sign in again, rename or delete it. In a product that embeds GoRunner, **Add connection** can be missing: then [your provider makes connections](https://docs.gorunner.io/embed/customer-connections) for you.

## Start a workflow

Add a trigger and choose **Salesforce**. The trigger uses the same connection as the steps.

### On Record Created or Updated

Checks a Salesforce object about once a minute and starts a run for each record created, or changed, since the check before. The first check after publishing only takes note of what is there (it starts nothing); changing the trigger starts over the same way. Each check starts at most 200 runs, oldest first; the rest follow on the next checks. Updated counts every change Salesforce stamps, including ones it makes itself (a roll-up summary, a formula's source).

- **Object · Required**: The object to watch (Account, Lead, Opportunity, a custom object …). Default: Lead.
- **Trigger on · Required**: Which records start a run: new ones, changed ones, or both. Options: Record created, Record updated, Record created or updated. Default: Record created.
- **Only Records Matching · Optional**: Watch only the records these conditions keep, such as {"StageName": "Closed Won"} or [{"field": "Amount", "operator": ">", "value": 10000}]. Empty watches every record.
- **Match · Optional**: Whether a record must match every condition or any one. Options: All conditions, Any condition. Default: All conditions.
- **Fields · Optional**: Field API names to include, comma-separated (such as Name, Email, Owner.Name). Empty includes every field.

A later step can use its data, such as `{{trigger.CreatedDate}}`, `{{trigger.Id}}`, `{{trigger.LastModifiedDate}}` and 4 more. See [Use data from earlier steps](https://docs.gorunner.io/build/use-data-from-earlier-steps).

## Do things in Salesforce

Add a **Salesforce** step, choose a **Resource**, then an **Operation**. Choose a row to see its fields.

- [Account](https://docs.gorunner.io/apps/salesforce#fields-f-account): Create · Create or Update (Upsert) · Get · Get Many · Update · Delete · Get Summary · Add Note
- [Attachment](https://docs.gorunner.io/apps/salesforce#fields-f-attachment): Create · Get · Get Many · Update · Delete · Get Summary
- [Case](https://docs.gorunner.io/apps/salesforce#fields-f-case): Create · Create or Update (Upsert) · Get · Get Many · Update · Delete · Get Summary · Add Comment
- [Contact](https://docs.gorunner.io/apps/salesforce#fields-f-contact): Create · Create or Update (Upsert) · Get · Get Many · Update · Delete · Get Summary · Add to Campaign · Add Note
- [Any Object](https://docs.gorunner.io/apps/salesforce#fields-f-customobject): Create · Create or Update (Upsert) · Get · Get Many · Update · Delete · Get Fields
- [File (Document)](https://docs.gorunner.io/apps/salesforce#fields-f-document): Upload
- [Flow](https://docs.gorunner.io/apps/salesforce#fields-f-flow): Get Many · Start
- [Lead](https://docs.gorunner.io/apps/salesforce#fields-f-lead): Create · Create or Update (Upsert) · Get · Get Many · Update · Delete · Get Summary · Add to Campaign · Add Note
- [Opportunity](https://docs.gorunner.io/apps/salesforce#fields-f-opportunity): Create · Create or Update (Upsert) · Get · Get Many · Update · Delete · Get Summary · Add Note
- [Search](https://docs.gorunner.io/apps/salesforce#fields-f-search): SOQL Query · Text Search
- [Task](https://docs.gorunner.io/apps/salesforce#fields-f-task): Create · Create or Update (Upsert) · Get · Get Many · Update · Delete · Get Summary
- [User](https://docs.gorunner.io/apps/salesforce#fields-f-user): Get · Get Many

Later steps read a step’s output by its name: see [Use data from earlier steps](https://docs.gorunner.io/build/use-data-from-earlier-steps).

## Limits

- A reply from Salesforce can be up to 16 MB (a file download can have its own limit). A larger one fails the step; it is never cut short.
- When Salesforce says to slow down (429), the step waits as long as it asks, if the step’s time allows. Otherwise it fails and says when to try again.

Not in your list? See [When an app isn’t here](https://docs.gorunner.io/apps/when-an-app-isnt-here#q-not-in-list).

## For developers

In the API, which calls apps pieces, Salesforce is `pieceId: "salesforce"` with `actionId: "salesforce"`, set by `resource` and an `operation_…` field, such as `operation_account`. Its trigger is `salesforcetrigger` / `salesforce_record`. [Get an app](https://docs.gorunner.io/api/apps/get-app) returns every field.

It can change something outside the run (`writes_external`). See [How versions and side effects work](https://docs.gorunner.io/apps#q-versions).

### Salesforce › Account

### Create

- **Account Name · Required**: The account name (Name).
- **Fields · Optional**: Field values by API name, such as {"Phone": "+1 415 555 0100", "Industry": "Energy", "Region__c": "EMEA"}.

### Create or Update (Upsert)

- **External ID Field · Required**: The field that identifies the record: an External ID field, or Id. A record with this value is updated; none is created.
- **External ID Value · Required**: The value to look the record up by.
- **Account Name · Required**: The account name (Name).
- **Fields · Optional**: Field values by API name, such as {"Phone": "+1 415 555 0100", "Industry": "Energy", "Region__c": "EMEA"}.

### Get

- **Account ID · Required**: The account's id (15 or 18 characters), or its link in Salesforce.
- **Fields to Return · Optional**: Field API names, comma-separated (such as Id, Name, Owner.Name). Empty returns every field.

### Get Many

- **Fields to Return · Optional**: Field API names, comma-separated (such as Id, Name, Owner.Name). Empty returns every field.
- **Conditions · Optional**: Only records matching these, such as {"Industry": "Energy"} or [{"field": "AnnualRevenue", "operator": ">", "value": 1000000}]. Empty reads every record.
- **Match · Optional**: Whether a record must match every condition or any one. Options: All conditions, Any condition. Default: All conditions.
- **Sort · Optional**: Field API names to sort by, each optionally followed by ASC or DESC, such as CreatedDate DESC.
- **Return All · Optional**: Read every account, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many accounts to return (1–2000). Default: 50. Shows when **Return All** is off.

### Update

- **Account ID · Required**: The account's id (15 or 18 characters), or its link in Salesforce.
- **Fields · Optional**: Field values by API name, such as {"Phone": "+1 415 555 0100", "Industry": "Energy", "Region__c": "EMEA"}.

### Delete

- **Account ID · Required**: The account's id (15 or 18 characters), or its link in Salesforce.

### Get Summary

Nothing to fill in.

### Add Note

- **Account ID · Required**: The account's id (15 or 18 characters), or its link in Salesforce.
- **Title · Required**: The note's title.
- **Body · Optional**: The note's text.
- **Private · Optional**: Only the owner and administrators see a private note. Off by default.

### Salesforce › Attachment

### Create

- **Parent Record ID · Required**: The record the file is attached to (an account, opportunity, case …), by id or link.
- **File · Required**: Upload a file, or switch to an expression to use one from an earlier step (such as {{steps.download.result}}). At most 28 MB.
- **File Name · Optional**: The attachment's name. Empty uses the file's own name.
- **Fields · Optional**: Field values by API name, such as {"Phone": "+1 415 555 0100", "Industry": "Energy", "Region__c": "EMEA"}.

### Get

- **Attachment ID · Required**: The attachment's id (15 or 18 characters), or its link in Salesforce.
- **Fields to Return · Optional**: Field API names, comma-separated (such as Id, Name, Owner.Name). Empty returns every field.
- **Download · Optional**: Also read the file itself (at most 11 MB) into file. Off by default.

### Get Many

- **Fields to Return · Optional**: Field API names, comma-separated (such as Id, Name, Owner.Name). Empty returns every field.
- **Conditions · Optional**: Only records matching these, such as {"Industry": "Energy"} or [{"field": "AnnualRevenue", "operator": ">", "value": 1000000}]. Empty reads every record.
- **Match · Optional**: Whether a record must match every condition or any one. Options: All conditions, Any condition. Default: All conditions.
- **Sort · Optional**: Field API names to sort by, each optionally followed by ASC or DESC, such as CreatedDate DESC.
- **Return All · Optional**: Read every attachment, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many attachments to return (1–2000). Default: 50. Shows when **Return All** is off.

### Update

- **Attachment ID · Required**: The attachment's id (15 or 18 characters), or its link in Salesforce.
- **New File · Optional**: Upload a file, or switch to an expression to use one from an earlier step (such as {{steps.download.result}}). Empty keeps the current file. At most 28 MB.
- **File Name · Optional**: The attachment's name. Empty uses the file's own name.
- **Fields · Optional**: Field values by API name, such as {"Phone": "+1 415 555 0100", "Industry": "Energy", "Region__c": "EMEA"}.

### Delete

- **Attachment ID · Required**: The attachment's id (15 or 18 characters), or its link in Salesforce.

### Get Summary

Nothing to fill in.

### Salesforce › Case

### Create

- **Fields · Optional**: Field values by API name, such as {"Phone": "+1 415 555 0100", "Industry": "Energy", "Region__c": "EMEA"}.

### Create or Update (Upsert)

- **External ID Field · Required**: The field that identifies the record: an External ID field, or Id. A record with this value is updated; none is created.
- **External ID Value · Required**: The value to look the record up by.
- **Fields · Optional**: Field values by API name, such as {"Phone": "+1 415 555 0100", "Industry": "Energy", "Region__c": "EMEA"}.

### Get

- **Case ID · Required**: The case's id (15 or 18 characters), or its link in Salesforce.
- **Fields to Return · Optional**: Field API names, comma-separated (such as Id, Name, Owner.Name). Empty returns every field.

### Get Many

- **Fields to Return · Optional**: Field API names, comma-separated (such as Id, Name, Owner.Name). Empty returns every field.
- **Conditions · Optional**: Only records matching these, such as {"Industry": "Energy"} or [{"field": "AnnualRevenue", "operator": ">", "value": 1000000}]. Empty reads every record.
- **Match · Optional**: Whether a record must match every condition or any one. Options: All conditions, Any condition. Default: All conditions.
- **Sort · Optional**: Field API names to sort by, each optionally followed by ASC or DESC, such as CreatedDate DESC.
- **Return All · Optional**: Read every case, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many cases to return (1–2000). Default: 50. Shows when **Return All** is off.

### Update

- **Case ID · Required**: The case's id (15 or 18 characters), or its link in Salesforce.
- **Fields · Optional**: Field values by API name, such as {"Phone": "+1 415 555 0100", "Industry": "Energy", "Region__c": "EMEA"}.

### Delete

- **Case ID · Required**: The case's id (15 or 18 characters), or its link in Salesforce.

### Get Summary

Nothing to fill in.

### Add Comment

- **Case ID · Required**: The case's id (15 or 18 characters), or its link in Salesforce.
- **Comment · Required**: The comment's text.
- **Visible to Customers · Optional**: Show the comment in the customer portal. Off by default.

### Salesforce › Contact

### Create

- **Last Name · Required**: The last name (LastName).
- **Fields · Optional**: Field values by API name, such as {"Phone": "+1 415 555 0100", "Industry": "Energy", "Region__c": "EMEA"}.

### Create or Update (Upsert)

- **External ID Field · Required**: The field that identifies the record: an External ID field, or Id. A record with this value is updated; none is created.
- **External ID Value · Required**: The value to look the record up by.
- **Last Name · Required**: The last name (LastName).
- **Fields · Optional**: Field values by API name, such as {"Phone": "+1 415 555 0100", "Industry": "Energy", "Region__c": "EMEA"}.

### Get

- **Contact ID · Required**: The contact's id (15 or 18 characters), or its link in Salesforce.
- **Fields to Return · Optional**: Field API names, comma-separated (such as Id, Name, Owner.Name). Empty returns every field.

### Get Many

- **Fields to Return · Optional**: Field API names, comma-separated (such as Id, Name, Owner.Name). Empty returns every field.
- **Conditions · Optional**: Only records matching these, such as {"Industry": "Energy"} or [{"field": "AnnualRevenue", "operator": ">", "value": 1000000}]. Empty reads every record.
- **Match · Optional**: Whether a record must match every condition or any one. Options: All conditions, Any condition. Default: All conditions.
- **Sort · Optional**: Field API names to sort by, each optionally followed by ASC or DESC, such as CreatedDate DESC.
- **Return All · Optional**: Read every contact, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many contacts to return (1–2000). Default: 50. Shows when **Return All** is off.

### Update

- **Contact ID · Required**: The contact's id (15 or 18 characters), or its link in Salesforce.
- **Fields · Optional**: Field values by API name, such as {"Phone": "+1 415 555 0100", "Industry": "Energy", "Region__c": "EMEA"}.

### Delete

- **Contact ID · Required**: The contact's id (15 or 18 characters), or its link in Salesforce.

### Get Summary

Nothing to fill in.

### Add to Campaign

- **Contact ID · Required**: The contact's id (15 or 18 characters), or its link in Salesforce.
- **Campaign · Required**: The campaign to add the contact to.
- **Member Status · Optional**: The campaign member status (such as Sent, Responded). Empty uses the campaign's default.

### Add Note

- **Contact ID · Required**: The contact's id (15 or 18 characters), or its link in Salesforce.
- **Title · Required**: The note's title.
- **Body · Optional**: The note's text.
- **Private · Optional**: Only the owner and administrators see a private note. Off by default.

### Salesforce › Any Object

### Create

- **Object · Required**: The object, standard or custom (such as Invoice__c).
- **Fields · Optional**: Field values by API name, such as {"Phone": "+1 415 555 0100", "Industry": "Energy", "Region__c": "EMEA"}.

### Create or Update (Upsert)

- **Object · Required**: The object, standard or custom (such as Invoice__c).
- **External ID Field · Required**: The field that identifies the record: an External ID field, or Id. A record with this value is updated; none is created.
- **External ID Value · Required**: The value to look the record up by.
- **Fields · Optional**: Field values by API name, such as {"Phone": "+1 415 555 0100", "Industry": "Energy", "Region__c": "EMEA"}.

### Get

- **Object · Required**: The object, standard or custom (such as Invoice__c).
- **Record ID · Required**: The record's id (15 or 18 characters), or its link in Salesforce.
- **Fields to Return · Optional**: Field API names, comma-separated (such as Id, Name, Owner.Name). Empty returns every field.

### Get Many

- **Object · Required**: The object, standard or custom (such as Invoice__c).
- **Fields to Return · Optional**: Field API names, comma-separated (such as Id, Name, Owner.Name). Empty returns every field.
- **Conditions · Optional**: Only records matching these, such as {"Industry": "Energy"} or [{"field": "AnnualRevenue", "operator": ">", "value": 1000000}]. Empty reads every record.
- **Match · Optional**: Whether a record must match every condition or any one. Options: All conditions, Any condition. Default: All conditions.
- **Sort · Optional**: Field API names to sort by, each optionally followed by ASC or DESC, such as CreatedDate DESC.
- **Return All · Optional**: Read every record, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many records to return (1–2000). Default: 50. Shows when **Return All** is off.

### Update

- **Object · Required**: The object, standard or custom (such as Invoice__c).
- **Record ID · Required**: The record's id (15 or 18 characters), or its link in Salesforce.
- **Fields · Optional**: Field values by API name, such as {"Phone": "+1 415 555 0100", "Industry": "Energy", "Region__c": "EMEA"}.

### Delete

- **Object · Required**: The object, standard or custom (such as Invoice__c).
- **Record ID · Required**: The record's id (15 or 18 characters), or its link in Salesforce.

### Get Fields

- **Object · Required**: The object, standard or custom (such as Invoice__c).

### Salesforce › File (Document)

### Upload

- **Title · Required**: The file's title in Salesforce.
- **File · Required**: Upload a file, or switch to an expression to use one from an earlier step (such as {{steps.download.result}}). At most 28 MB.
- **Share With Record · Optional**: A record (or library, or user) to share the file with, by id or link. Empty keeps it in the uploader's files.
- **Fields · Optional**: Field values by API name, such as {"Phone": "+1 415 555 0100", "Industry": "Energy", "Region__c": "EMEA"}.

### Salesforce › Flow

### Get Many

- **Return All · Optional**: Read every flow, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many flows to return (1–2000). Default: 50. Shows when **Return All** is off.

### Start

- **Flow · Required**: The autolaunched flow to start.
- **Input Variables · Optional**: The flow's input variables by API name, such as {"recordId": "001Hn00001xYzAbIAK", "amount": 250}.

### Salesforce › Lead

### Create

- **Company · Required**: The company (Company).
- **Last Name · Required**: The last name (LastName).
- **Fields · Optional**: Field values by API name, such as {"Phone": "+1 415 555 0100", "Industry": "Energy", "Region__c": "EMEA"}.

### Create or Update (Upsert)

- **External ID Field · Required**: The field that identifies the record: an External ID field, or Id. A record with this value is updated; none is created.
- **External ID Value · Required**: The value to look the record up by.
- **Company · Required**: The company (Company).
- **Last Name · Required**: The last name (LastName).
- **Fields · Optional**: Field values by API name, such as {"Phone": "+1 415 555 0100", "Industry": "Energy", "Region__c": "EMEA"}.

### Get

- **Lead ID · Required**: The lead's id (15 or 18 characters), or its link in Salesforce.
- **Fields to Return · Optional**: Field API names, comma-separated (such as Id, Name, Owner.Name). Empty returns every field.

### Get Many

- **Fields to Return · Optional**: Field API names, comma-separated (such as Id, Name, Owner.Name). Empty returns every field.
- **Conditions · Optional**: Only records matching these, such as {"Industry": "Energy"} or [{"field": "AnnualRevenue", "operator": ">", "value": 1000000}]. Empty reads every record.
- **Match · Optional**: Whether a record must match every condition or any one. Options: All conditions, Any condition. Default: All conditions.
- **Sort · Optional**: Field API names to sort by, each optionally followed by ASC or DESC, such as CreatedDate DESC.
- **Return All · Optional**: Read every lead, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many leads to return (1–2000). Default: 50. Shows when **Return All** is off.

### Update

- **Lead ID · Required**: The lead's id (15 or 18 characters), or its link in Salesforce.
- **Fields · Optional**: Field values by API name, such as {"Phone": "+1 415 555 0100", "Industry": "Energy", "Region__c": "EMEA"}.

### Delete

- **Lead ID · Required**: The lead's id (15 or 18 characters), or its link in Salesforce.

### Get Summary

Nothing to fill in.

### Add to Campaign

- **Lead ID · Required**: The lead's id (15 or 18 characters), or its link in Salesforce.
- **Campaign · Required**: The campaign to add the lead to.
- **Member Status · Optional**: The campaign member status (such as Sent, Responded). Empty uses the campaign's default.

### Add Note

- **Lead ID · Required**: The lead's id (15 or 18 characters), or its link in Salesforce.
- **Title · Required**: The note's title.
- **Body · Optional**: The note's text.
- **Private · Optional**: Only the owner and administrators see a private note. Off by default.

### Salesforce › Opportunity

### Create

- **Opportunity Name · Required**: The opportunity name (Name).
- **Close Date · Required**: The close date (YYYY-MM-DD).
- **Stage · Required**: The stage (StageName).
- **Fields · Optional**: Field values by API name, such as {"Phone": "+1 415 555 0100", "Industry": "Energy", "Region__c": "EMEA"}.

### Create or Update (Upsert)

- **External ID Field · Required**: The field that identifies the record: an External ID field, or Id. A record with this value is updated; none is created.
- **External ID Value · Required**: The value to look the record up by.
- **Opportunity Name · Required**: The opportunity name (Name).
- **Close Date · Required**: The close date (YYYY-MM-DD).
- **Stage · Required**: The stage (StageName).
- **Fields · Optional**: Field values by API name, such as {"Phone": "+1 415 555 0100", "Industry": "Energy", "Region__c": "EMEA"}.

### Get

- **Opportunity ID · Required**: The opportunity's id (15 or 18 characters), or its link in Salesforce.
- **Fields to Return · Optional**: Field API names, comma-separated (such as Id, Name, Owner.Name). Empty returns every field.

### Get Many

- **Fields to Return · Optional**: Field API names, comma-separated (such as Id, Name, Owner.Name). Empty returns every field.
- **Conditions · Optional**: Only records matching these, such as {"Industry": "Energy"} or [{"field": "AnnualRevenue", "operator": ">", "value": 1000000}]. Empty reads every record.
- **Match · Optional**: Whether a record must match every condition or any one. Options: All conditions, Any condition. Default: All conditions.
- **Sort · Optional**: Field API names to sort by, each optionally followed by ASC or DESC, such as CreatedDate DESC.
- **Return All · Optional**: Read every opportunity, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many opportunitys to return (1–2000). Default: 50. Shows when **Return All** is off.

### Update

- **Opportunity ID · Required**: The opportunity's id (15 or 18 characters), or its link in Salesforce.
- **Fields · Optional**: Field values by API name, such as {"Phone": "+1 415 555 0100", "Industry": "Energy", "Region__c": "EMEA"}.

### Delete

- **Opportunity ID · Required**: The opportunity's id (15 or 18 characters), or its link in Salesforce.

### Get Summary

Nothing to fill in.

### Add Note

- **Opportunity ID · Required**: The opportunity's id (15 or 18 characters), or its link in Salesforce.
- **Title · Required**: The note's title.
- **Body · Optional**: The note's text.
- **Private · Optional**: Only the owner and administrators see a private note. Off by default.

### Salesforce › Search

### SOQL Query

- **Query · Required**: A SOQL query. Put each value from earlier steps under Values and write :name where it goes; it is written into the query safely.
- **Values · Optional**: The values for the query's :names, such as {"industry": "{{steps.form.industry}}", "minimum": 1000}.
- **Return All · Optional**: Read every record, page by page (at most 2000; past that the step fails rather than stop early). On by default.
- **Limit · Optional**: How many records to return (1–2000). Default: 100. Shows when **Return All** is off.

### Text Search

- **Search Text · Required**: Words to find (at least 2 characters). * and? are wildcards.
- **Search In · Optional**: Which fields to search. Options: All fields, Name fields, Email fields, Phone fields, As the search box does. Default: All fields.
- **Objects · Optional**: Object API names to search, comma-separated (such as Account, Contact, Lead). Empty searches every searchable object.
- **Fields to Return · Optional**: Field API names to return for each object, comma-separated (such as Id, Name). Empty returns each record's id.
- **Limit · Optional**: How many records to return in all (1–2,000). Default: 50.

### Salesforce › Task

### Create

- **Fields · Optional**: Field values by API name, such as {"Phone": "+1 415 555 0100", "Industry": "Energy", "Region__c": "EMEA"}.

### Create or Update (Upsert)

- **External ID Field · Required**: The field that identifies the record: an External ID field, or Id. A record with this value is updated; none is created.
- **External ID Value · Required**: The value to look the record up by.
- **Fields · Optional**: Field values by API name, such as {"Phone": "+1 415 555 0100", "Industry": "Energy", "Region__c": "EMEA"}.

### Get

- **Task ID · Required**: The task's id (15 or 18 characters), or its link in Salesforce.
- **Fields to Return · Optional**: Field API names, comma-separated (such as Id, Name, Owner.Name). Empty returns every field.

### Get Many

- **Fields to Return · Optional**: Field API names, comma-separated (such as Id, Name, Owner.Name). Empty returns every field.
- **Conditions · Optional**: Only records matching these, such as {"Industry": "Energy"} or [{"field": "AnnualRevenue", "operator": ">", "value": 1000000}]. Empty reads every record.
- **Match · Optional**: Whether a record must match every condition or any one. Options: All conditions, Any condition. Default: All conditions.
- **Sort · Optional**: Field API names to sort by, each optionally followed by ASC or DESC, such as CreatedDate DESC.
- **Return All · Optional**: Read every task, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many tasks to return (1–2000). Default: 50. Shows when **Return All** is off.

### Update

- **Task ID · Required**: The task's id (15 or 18 characters), or its link in Salesforce.
- **Fields · Optional**: Field values by API name, such as {"Phone": "+1 415 555 0100", "Industry": "Energy", "Region__c": "EMEA"}.

### Delete

- **Task ID · Required**: The task's id (15 or 18 characters), or its link in Salesforce.

### Get Summary

Nothing to fill in.

### Salesforce › User

### Get

- **User ID · Required**: The user's id (15 or 18 characters), or its link in Salesforce.
- **Fields to Return · Optional**: Field API names, comma-separated (such as Id, Name, Owner.Name). Empty returns every field.

### Get Many

- **Fields to Return · Optional**: Field API names, comma-separated (such as Id, Name, Owner.Name). Empty returns every field.
- **Conditions · Optional**: Only records matching these, such as {"Industry": "Energy"} or [{"field": "AnnualRevenue", "operator": ">", "value": 1000000}]. Empty reads every record.
- **Match · Optional**: Whether a record must match every condition or any one. Options: All conditions, Any condition. Default: All conditions.
- **Sort · Optional**: Field API names to sort by, each optionally followed by ASC or DESC, such as CreatedDate DESC.
- **Return All · Optional**: Read every user, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many users to return (1–2000). Default: 50. Shows when **Return All** is off.

Source: https://docs.gorunner.io/apps/salesforce
