Salesforce integration

CRM automation: SOQL queries, sObject CRUD, search, describe, bulk operations

Help CentreConnectors

Overview

Salesforce is the dominant CRM platform – accounts, contacts, leads, opportunities, cases, plus a deep customisation model via sObjects and custom fields. The Automize Salesforce connector talks to the Salesforce REST API and Bulk 2.0 API so you can automate record creation, SOQL queries, file uploads, approval routing, and CSV-scale ingestion.

  • Regions: Works against any Salesforce org – production (login.salesforce.com), sandbox (test.salesforce.com), and instance-specific domains like yourcompany.my.salesforce.com. Pick the right login URL when connecting.
  • Plans: Any Salesforce edition with API access enabled – Enterprise, Performance, Unlimited, Developer. Professional Edition needs the "API Access" add-on or it returns INVALID_OPERATION on every call.

Setting up the connection

Auth type: OAuth 2.0 (Authorization Code).

  1. In Salesforce, go to Setup → App Manager → New Connected App.
  2. Name it (e.g. Automize), enable OAuth, set the Callback URL shown in the Automize Salesforce connector dialog.
  3. Select scopes: 'Manage user data via APIs (api)', 'Perform requests at any time (refresh_token, offline_access)'. Add 'full' if you need broad access.
  4. Save and wait ~10 minutes for the Connected App to propagate.
  5. Copy the Consumer Key (Client ID) and Consumer Secret (Client Secret).
  6. In Automize, open Settings → Connectors → Salesforce → Add connection. Choose the right environment (production or sandbox), paste the credentials, click Connect.

Scopes required:

  • api
  • refresh_token
  • offline_access

Find your credentials at https://your-org.my.salesforce.com/lightning/setup/ConnectedApplication/home.


Rate limits

Salesforce enforces a daily API request limit per org (15,000 for Enterprise, scaling up by edition + license count). Use Get Limits to read your current usage. The connector retries on 503 / system busy with exponential backoff. For high-volume work prefer the Bulk API operations (bulk-create-job + bulk-upload-data + bulk-close-job) which count as one request per batch rather than per record.


Data model

Salesforce's data model is dominated by sObjects – both standard
(Account, Contact, Lead, Opportunity, Case) and custom (__c suffix).
Relationships are usually parent-child via lookup or master-detail.

    Account ─┬─ Contacts
             ├─ Opportunities ── Opportunity Line Items ── Product2
             ├─ Cases
             └─ Custom relationships (__c)

Approvals live separately from records. Most write paths return the
18-character record ID, which is what other ops expect.

Available operations

25 operations available. Click any row to jump to its detail.

OperationCategoryWhat it does
Close bulk jobBulk OperationsClose a Salesforce bulk job to start processing.
Create bulk jobBulk OperationsCreate a Salesforce bulk ingest job for insert, update, upsert, or delete.
Get bulk job statusBulk OperationsGet the status of a Salesforce bulk job.
Upload bulk dataBulk OperationsUpload CSV data to a Salesforce bulk job.
Composite requestGeneralExecute multiple Salesforce API calls in a single request.
Composite batchGeneralExecute independent Salesforce subrequests in parallel.
Upload FileGeneralUpload a file as a ContentVersion
Describe GlobalGeneralList all sObjects with summary metadata
Get deleted recordsGeneralGet recently deleted Salesforce records.
Get updated recordsGeneralGet recently updated Salesforce records.
List Approval ProcessesGeneralList approval processes defined in the org
List reportsGeneralList Salesforce reports.
Run reportGeneralRun a Salesforce report and get results.
Submit for ApprovalGeneralSubmit, approve, or reject records for approval
Upsert recordGeneralInsert or update a Salesforce record by external ID.
Create recordRecordsCreate a new sObject record in Salesforce.
Delete recordRecordsDelete a record by sObject type and ID from Salesforce.
Get recordRecordsGet a record by sObject type and 18-character Salesforce ID.
Update recordRecordsUpdate an existing sObject record in Salesforce.
Describe sObjectSearch & QueryGet metadata and schema for a Salesforce sObject type.
Get org limitsSearch & QueryGet current Salesforce API usage limits.
List sObjectsSearch & QueryList all available sObject types in the Salesforce org.
SOQL querySearch & QueryExecute a SOQL query with auto-pagination against Salesforce.
Query moreSearch & QueryFetch the next page of a SOQL query result from Salesforce.
SOSL searchSearch & QuerySearch records using SOSL across multiple Salesforce objects.

Operations

Close bulk job

Close a Salesforce bulk job to start processing.

ParameterRequiredTypeDescription
Job ID job_idYestext
Api Version api_versionYestext

Tips

  • Closes a job and triggers async processing. Use Bulk Job Status to poll for completion.

Create bulk job

Create a Salesforce bulk ingest job for insert, update, upsert, or delete.

ParameterRequiredTypeDescription
sObject type objectYestext
Operation operationYestext
Content type contentTypeNotext
Api Version api_versionYestext
Lineending lineEndingNotext

Tips

  • operation: insert, update, upsert, delete, or hardDelete.
  • Returns a job_id used by Upload Data and Close Job.

Get bulk job status

Get the status of a Salesforce bulk job.

ParameterRequiredTypeDescription
Job ID job_idYestext
Api Version api_versionYestext

Tips

  • Polling: typical jobs finish within seconds. Status values: Open, UploadComplete, InProgress, Aborted, JobComplete, Failed.

Upload bulk data

Upload CSV data to a Salesforce bulk job.

ParameterRequiredTypeDescription
Job ID job_idYestext
CSV data dataYestextarea
Api Version api_versionYestext

Tips

  • data: CSV content with header row matching the sObject field API names.
  • Single call per job – chunk uploads by creating multiple jobs if your CSV exceeds 150 MB.

Composite request

Execute multiple Salesforce API calls in a single request.

ParameterRequiredTypeDescription
Api Version api_versionYestext
Compositerequest compositeRequestNotext
Allornone allOrNoneNoswitch

Tips

  • Bundle up to 25 subrequests into one call. Set allOrNone=true to roll back on any failure.

Composite batch

Execute independent Salesforce subrequests in parallel.

ParameterRequiredTypeDescription
Api Version api_versionYestext
Batchrequests batchRequestsNotext

Tips

  • Up to 25 independent subrequests in one call. Use when subrequests don't depend on each other (faster than composite).

Upload File

Upload a file as a ContentVersion

ParameterRequiredTypeDescription
Api Version api_versionYestext

Tips

  • Upload a file as a ContentVersion (Salesforce Files). Use the returned ContentDocumentId to link to records.

Create record

Create a new sObject record in Salesforce.

ParameterRequiredTypeDescription
sObject type sobjectYestext
Fields (JSON) fieldsYestextarea
Api Version api_versionYestext

Tips

  • sobject: e.g. Account, Contact, Lead, Opportunity, or a Custom__c.
  • fields: JSON object of field-name → value.
  • Returns id of the new record.

Errors

  • REQUIRED_FIELD_MISSING – A required field on the sObject was not provided.
  • INVALID_FIELD – Field name doesn't exist on the sObject. Run Describe first to verify.
  • DUPLICATE_VALUE – A unique field already has this value.
  • INSUFFICIENT_ACCESS – Connected user doesn't have create access to this sObject.

Delete record

Delete a record by sObject type and ID from Salesforce.

ParameterRequiredTypeDescription
sObject type sobjectYestext
Record ID record_idYestext
Api Version api_versionYestext

Tips

  • Soft-delete – record goes to Recycle Bin for 15 days before permanent deletion.

Describe sObject

Get metadata and schema for a Salesforce sObject type.

ParameterRequiredTypeDescription
sObject type sobjectYestext
Api Version api_versionYestext

Tips

  • Returns sObject metadata: fields, relationships, picklist values. Heavy payload – cache it.

Describe Global

List all sObjects with summary metadata

ParameterRequiredTypeDescription
Api Version api_versionYestext

Tips

  • Lists every sObject in the org with brief metadata. Useful for discovery / autocomplete.

Get deleted records

Get recently deleted Salesforce records.

ParameterRequiredTypeDescription
Api Version api_versionYestext
Sobject sobjectYestext

Tips

  • Returns IDs deleted in the last 0–30 days. Useful for sync downstream systems.
  • Provide startDateTime and endDateTime in the request.

Get org limits

Get current Salesforce API usage limits.

ParameterRequiredTypeDescription
Api Version api_versionYestext

Tips

  • Returns API usage, storage, and feature limits. Call sparingly – it counts against your API quota.

Get record

Get a record by sObject type and 18-character Salesforce ID.

ParameterRequiredTypeDescription
sObject type sobjectYestext
Record ID record_idYestext
Api Version api_versionYestext

Tips

  • Use 15-char or 18-char record IDs. 15-char is case-sensitive; 18-char round-trips through case-insensitive systems.

Get updated records

Get recently updated Salesforce records.

ParameterRequiredTypeDescription
Api Version api_versionYestext
Sobject sobjectYestext

Tips

  • Returns IDs updated in the last 0–30 days. Same date-window contract as Get Deleted.

List Approval Processes

List approval processes defined in the org

ParameterRequiredTypeDescription
Api Version api_versionYestext

Tips

  • Lists approval processes defined in the org. Use Submit Approval to take action.

List sObjects

List all available sObject types in the Salesforce org.

ParameterRequiredTypeDescription
Api Version api_versionYestext

Tips

  • Lighter than describe-global – names and labels only.

List reports

List Salesforce reports.

ParameterRequiredTypeDescription
Api Version api_versionYestext

Tips

  • Returns report metadata. Use Run Report to fetch results.

SOQL query

Execute a SOQL query with auto-pagination against Salesforce.

ParameterRequiredTypeDescription
SOQL query soqlYestextarea
Api Version api_versionYestext

Tips

  • soql: full SELECT statement. Returns auto-paginated up to ~2,000 records by default.
  • Use Query More with next_records_url for paged retrieval beyond the first batch.
  • Tip – alias relationships: SELECT Id, Account.Name FROM Contact.

Query more

Fetch the next page of a SOQL query result from Salesforce.

ParameterRequiredTypeDescription
Next records URL next_records_urlYestext

Tips

  • Use the nextRecordsUrl returned by query (or a previous query-more) to walk through large result sets.

Run report

Run a Salesforce report and get results.

ParameterRequiredTypeDescription
Api Version api_versionYestext
Report Id report_idYestext

Tips

  • Synchronous reports return immediately. Async reports return a job_id – poll the job.

Search records using SOSL across multiple Salesforce objects.

ParameterRequiredTypeDescription
SOSL query soslYestextarea
Api Version api_versionYestext

Tips

  • SOSL is faster than SOQL for free-text 'find anything containing X' queries – searches multiple objects in one call.
  • Example sosl: FIND {acme} IN ALL FIELDS RETURNING Account(Id,Name), Contact(Id,Name)

Submit for Approval

Submit, approve, or reject records for approval

ParameterRequiredTypeDescription
Api Version api_versionYestext
Requests requestsYestextarea

Tips

  • Single endpoint covers submit, approve, reject. requests is an array of action specs.

Update record

Update an existing sObject record in Salesforce.

ParameterRequiredTypeDescription
sObject type sobjectYestext
Record ID record_idYestext
Fields (JSON) fieldsYestextarea
Api Version api_versionYestext

Tips

  • Only fields you send are touched. Send {field: null} to clear a value.
  • Returns success: true with no body on 204.

Errors

  • ENTITY_IS_DELETED – Record was soft-deleted (in the Recycle Bin). Restore first or use Upsert.

Upsert record

Insert or update a Salesforce record by external ID.

ParameterRequiredTypeDescription
Api Version api_versionYestext
Sobject sobjectYestext
External Field external_fieldYestext
External Id external_idYestext

Tips

  • Insert-or-update keyed by an External ID field. Use this for idempotent ingestion.
  • external_field is the API name of the field marked 'External ID' in the org.

FAQ

Why does my query return 0 rows when I can see records in the UI?
Field-level security or sharing rules. The connected user must have read access. Quick check – try the SOQL in Developer Console as the same user.
Which API version should I use?
Latest is v60.0 at the time of writing. Pin a version per process for stability – Salesforce supports back to v21.0. The version parameter is required on every call.
How do I handle Person Accounts?
If your org has Person Accounts enabled, queries against Account return Person records. Use IsPersonAccount=true filter to scope, and PersonContact* fields to access contact data.
Sandbox vs production – how do I switch?
Create separate connections for sandbox and production with different login URLs (test.salesforce.com vs login.salesforce.com). Process variables can swap connection at runtime.
What's the difference between Composite and Bulk?
Composite bundles up to 25 calls of any type into one HTTP round trip – good for transactional small batches. Bulk 2.0 is async and CSV-based – good for moving 100k+ rows.

Related connectors

See it working on your own data

Everything documented here ships with the platform – try the document tools free, or go live in 7 days.