Salesforce
CRM OAuthRead and write Salesforce records, run SOQL queries and call Apex REST endpoints from any Windmill script, flow or app.
Set up in 3 steps
Connect from the Resources page
Open Resources, click Add a resource/API and pick salesforce from the OAuth APIs list — there is a separate tile for sandbox orgs. Sign in, then name the resource and save it.
Check the instance URL
instance_url pins every call to your org's data host. Windmill fills it from the connection; api_version selects the REST API version if you need to pin one.
Run your first script
Fork any script below and read before writing anything.
Scripts
Building blocks, if none of the projects above fit. Fork one, run it, or call it as a step inside your own flow.
New or Updated Record
Upsert Record
Upload File
Update Record
SOSL Search
Query More
Parameterized Search
List Objects
Get User Info
Get Related Records
Get Record
Execute SOQL Query
Describe Object
Delete Record
Create Record
Convert Lead
Resource type
The shape of the credential every script on this page expects.
salesforce
View raw schema →| Field | Type | Required | What it is |
|---|---|---|---|
| api_version | string | No | Salesforce REST API version path segment, e.g. v60.0. Optional — scripts default to v60.0 when left blank. |
| instance_url | string | Yes | Org data host returned in the OAuth token response, e.g. https://acme.my.salesforce.com (production) or https://acme--sandbox.sandbox.my.salesforce.com (sandbox). Every REST call is made against this host, not login.salesforce.com. |
| token | string | Yes | OAuth access token. Populated by Windmill's OAuth flow. |
Questions
Sandbox or production?
Separate tiles, separate sign-in hosts. The saved resource keeps the same type either way, so scripts do not fork.
There is no Connect button on my instance
Self-hosted instances need a Salesforce connected app configured once by an admin before the tile appears.
Is my token stored on the hub?
Never. It lives only in your own Windmill workspace, encrypted at rest.