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).
- In Salesforce, go to Setup → App Manager → New Connected App.
- Name it (e.g. Automize), enable OAuth, set the Callback URL shown in the Automize Salesforce connector dialog.
- Select scopes: 'Manage user data via APIs (api)', 'Perform requests at any time (refresh_token, offline_access)'. Add 'full' if you need broad access.
- Save and wait ~10 minutes for the Connected App to propagate.
- Copy the Consumer Key (Client ID) and Consumer Secret (Client Secret).
- In Automize, open Settings → Connectors → Salesforce → Add connection. Choose the right environment (production or sandbox), paste the credentials, click Connect.
Scopes required:
apirefresh_tokenoffline_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.
| Operation | Category | What it does |
|---|---|---|
| Close bulk job | Bulk Operations | Close a Salesforce bulk job to start processing. |
| Create bulk job | Bulk Operations | Create a Salesforce bulk ingest job for insert, update, upsert, or delete. |
| Get bulk job status | Bulk Operations | Get the status of a Salesforce bulk job. |
| Upload bulk data | Bulk Operations | Upload CSV data to a Salesforce bulk job. |
| Composite request | General | Execute multiple Salesforce API calls in a single request. |
| Composite batch | General | Execute independent Salesforce subrequests in parallel. |
| Upload File | General | Upload a file as a ContentVersion |
| Describe Global | General | List all sObjects with summary metadata |
| Get deleted records | General | Get recently deleted Salesforce records. |
| Get updated records | General | Get recently updated Salesforce records. |
| List Approval Processes | General | List approval processes defined in the org |
| List reports | General | List Salesforce reports. |
| Run report | General | Run a Salesforce report and get results. |
| Submit for Approval | General | Submit, approve, or reject records for approval |
| Upsert record | General | Insert or update a Salesforce record by external ID. |
| Create record | Records | Create a new sObject record in Salesforce. |
| Delete record | Records | Delete a record by sObject type and ID from Salesforce. |
| Get record | Records | Get a record by sObject type and 18-character Salesforce ID. |
| Update record | Records | Update an existing sObject record in Salesforce. |
| Describe sObject | Search & Query | Get metadata and schema for a Salesforce sObject type. |
| Get org limits | Search & Query | Get current Salesforce API usage limits. |
| List sObjects | Search & Query | List all available sObject types in the Salesforce org. |
| SOQL query | Search & Query | Execute a SOQL query with auto-pagination against Salesforce. |
| Query more | Search & Query | Fetch the next page of a SOQL query result from Salesforce. |
| SOSL search | Search & Query | Search records using SOSL across multiple Salesforce objects. |
Operations
Close bulk job
Close a Salesforce bulk job to start processing.
| Parameter | Required | Type | Description |
|---|---|---|---|
Job ID job_id | Yes | text | |
Api Version api_version | Yes | text |
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.
| Parameter | Required | Type | Description |
|---|---|---|---|
sObject type object | Yes | text | |
Operation operation | Yes | text | |
Content type contentType | No | text | |
Api Version api_version | Yes | text | |
Lineending lineEnding | No | text |
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.
| Parameter | Required | Type | Description |
|---|---|---|---|
Job ID job_id | Yes | text | |
Api Version api_version | Yes | text |
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.
| Parameter | Required | Type | Description |
|---|---|---|---|
Job ID job_id | Yes | text | |
CSV data data | Yes | textarea | |
Api Version api_version | Yes | text |
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.
| Parameter | Required | Type | Description |
|---|---|---|---|
Api Version api_version | Yes | text | |
Compositerequest compositeRequest | No | text | |
Allornone allOrNone | No | switch |
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.
| Parameter | Required | Type | Description |
|---|---|---|---|
Api Version api_version | Yes | text | |
Batchrequests batchRequests | No | text |
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
| Parameter | Required | Type | Description |
|---|---|---|---|
Api Version api_version | Yes | text |
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.
| Parameter | Required | Type | Description |
|---|---|---|---|
sObject type sobject | Yes | text | |
Fields (JSON) fields | Yes | textarea | |
Api Version api_version | Yes | text |
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.
| Parameter | Required | Type | Description |
|---|---|---|---|
sObject type sobject | Yes | text | |
Record ID record_id | Yes | text | |
Api Version api_version | Yes | text |
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.
| Parameter | Required | Type | Description |
|---|---|---|---|
sObject type sobject | Yes | text | |
Api Version api_version | Yes | text |
Tips
- Returns sObject metadata: fields, relationships, picklist values. Heavy payload – cache it.
Describe Global
List all sObjects with summary metadata
| Parameter | Required | Type | Description |
|---|---|---|---|
Api Version api_version | Yes | text |
Tips
- Lists every sObject in the org with brief metadata. Useful for discovery / autocomplete.
Get deleted records
Get recently deleted Salesforce records.
| Parameter | Required | Type | Description |
|---|---|---|---|
Api Version api_version | Yes | text | |
Sobject sobject | Yes | text |
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.
| Parameter | Required | Type | Description |
|---|---|---|---|
Api Version api_version | Yes | text |
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.
| Parameter | Required | Type | Description |
|---|---|---|---|
sObject type sobject | Yes | text | |
Record ID record_id | Yes | text | |
Api Version api_version | Yes | text |
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.
| Parameter | Required | Type | Description |
|---|---|---|---|
Api Version api_version | Yes | text | |
Sobject sobject | Yes | text |
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
| Parameter | Required | Type | Description |
|---|---|---|---|
Api Version api_version | Yes | text |
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.
| Parameter | Required | Type | Description |
|---|---|---|---|
Api Version api_version | Yes | text |
Tips
- Lighter than describe-global – names and labels only.
List reports
List Salesforce reports.
| Parameter | Required | Type | Description |
|---|---|---|---|
Api Version api_version | Yes | text |
Tips
- Returns report metadata. Use Run Report to fetch results.
SOQL query
Execute a SOQL query with auto-pagination against Salesforce.
| Parameter | Required | Type | Description |
|---|---|---|---|
SOQL query soql | Yes | textarea | |
Api Version api_version | Yes | text |
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.
| Parameter | Required | Type | Description |
|---|---|---|---|
Next records URL next_records_url | Yes | text |
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.
| Parameter | Required | Type | Description |
|---|---|---|---|
Api Version api_version | Yes | text | |
Report Id report_id | Yes | text |
Tips
- Synchronous reports return immediately. Async reports return a job_id – poll the job.
SOSL search
Search records using SOSL across multiple Salesforce objects.
| Parameter | Required | Type | Description |
|---|---|---|---|
SOSL query sosl | Yes | textarea | |
Api Version api_version | Yes | text |
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
| Parameter | Required | Type | Description |
|---|---|---|---|
Api Version api_version | Yes | text | |
Requests requests | Yes | textarea |
Tips
- Single endpoint covers submit, approve, reject. requests is an array of action specs.
Update record
Update an existing sObject record in Salesforce.
| Parameter | Required | Type | Description |
|---|---|---|---|
sObject type sobject | Yes | text | |
Record ID record_id | Yes | text | |
Fields (JSON) fields | Yes | textarea | |
Api Version api_version | Yes | text |
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.
| Parameter | Required | Type | Description |
|---|---|---|---|
Api Version api_version | Yes | text | |
Sobject sobject | Yes | text | |
External Field external_field | Yes | text | |
External Id external_id | Yes | text |
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.