Skip to main content
The Salesforce integration lets your agents read and write Salesforce data. Look up a contact’s account before the call, create a lead or task when the conversation ends, log the call on the record, or start calling as soon as a new lead is created.

Connect Salesforce

1

Find Salesforce in the App Center

Open App Center, search for Salesforce, and click +.
2

Enter the Salesforce domain

Enter a Connection Name and the Salesforce Domain to sign in to. The default, login.salesforce.com, connects a production org. Use test.salesforce.com for a sandbox, or your My Domain, for example mycompany.my.salesforce.com or mycompany.sandbox.my.salesforce.com.
3

Sign in and allow access

Click Connect, sign in to Salesforce in the pop-up, and approve access.
Salesforce login pop-up with Username and Password fields and a Log In button

Sign in to Salesforce in the pop-up

4

Confirm the connection

Back in Callers, Salesforce shows a check mark under Connected Apps.
Connect with a dedicated integration user whose profile can read and edit only the objects your agents need. The connection acts with that user’s permissions.

Available actions

The integration offers about a hundred actions. The groups below list them all; the ones agents use most are described in detail under Use Salesforce in an agent.
A few actions appear twice in the picker with the same name, for example Create Record, Create Contact, Create Lead, Create Task, Update Record, Update Contact, and Update Lead. Both entries work. The older entry uses drop-downs (Object, Record) and a JSON field named Record Data or Data to Update; the newer entry takes API names as text (Object, Record ID) and a JSON field named Fields. This page describes the newer entries.

Records (any object)

Objects

“Add Lead to Campaign” and “Add Contact to Campaign” refer to Salesforce campaigns, not Callers agents.

Bulk & batch

Files & reports

Advanced

Available triggers

Use these on an agent’s Triggers node to add or archive contacts automatically: New Lead, New Contact, New Record, New or Updated Record, New Case in Queue, New Case Attachment, New Field History Event, New or Updated File, and New Outbound Message. All triggers except New Outbound Message are Scheduled: Callers polls Salesforce for records created or modified since the last check. New Record and New or Updated Record take an Object and an optional Conditions (Advanced) SOQL filter. New Outbound Message is Instant: it receives an Outbound Message that you configure in a Salesforce Workflow Rule or Flow. See Triggers.

Use Salesforce in an agent

The examples below show the actions customers use most. Field values accept variables such as {{ email }}.

Create Record

Creates one record of any object. Not idempotent: every run creates a new record, so use it only where duplicates are acceptable or you have already searched for a match.
Required fields depend on the object; use Describe Object to see them. For up to 200 records in one call use Create Records Batch.

Update Record

Changes only the fields you send on an existing record. Every other field stays as it is; send null to clear a field.

Upsert Record by External ID

Creates the record if no match exists, or updates it if one does, matched on an external ID field. Use it so repeat calls don’t create duplicates: rerunning with the same external ID value updates the same record. The result reports whether the record was created or updated.
For up to 200 records in one call, Upsert Records Batch takes the same Object and External ID Field plus a Records list where every record includes the external ID field.

Batch Upsert (Advanced) vs Bulk Upsert (Advanced)

Both actions insert-or-update many records matched on an external ID, and both are idempotent on that field. They differ in input format and in how Salesforce processes them: With Bulk Upsert (Advanced), the response is the job itself (state, numberRecordsProcessed, numberRecordsFailed), not the records. To follow up, pass the job id to Get Bulk Ingest Job until state is JobComplete, Failed, or Aborted, then read the per-row outcome with Get Bulk Ingest Results (Result Type: successful, failed, or unprocessed rows). For other operations on CSV (insert, update, delete) use Run Bulk Ingest Job, which exposes the same job flow with an Operation field.
Salesforce Bulk Upsert (Advanced) form with Object Contact, External Field Id, a CSV record without an Id, and a test response showing operation upsert and state UploadComplete

Bulk Upsert (Advanced) with no Id in the CSV: the job is created and a new record is inserted

Salesforce Bulk Upsert (Advanced) form with a CSV record that includes an Id, and a test response with status 200

Bulk Upsert (Advanced) with an existing Id in the CSV: the record is updated

Run SOQL Query

Runs a SOQL query and returns the matching records (deleted and archived records are excluded). Always add a LIMIT; if the response has a non-null next_records_url, fetch the rest with Get Next Query Page.
Run Query (Advanced) is the older form of the same action with a single Query field.
Salesforce Run Query (Advanced) form with a SOQL SELECT query and a test response listing the matching Account record

Run Query (Advanced) configuration

Custom API Call

Calls any Salesforce REST endpoint not covered above. Set URL (a full URL or a path relative to your instance, for example /services/data/v62.0/query?q=...), Method, Headers, Query Parameters, and for POST or PATCH a Body Type and Body. Authorization headers come from your connection.
Salesforce Custom API Call form with a relative query URL, Method GET, and a test response listing the returned record

Custom API Call configuration

Use field API names (LastName, Custom_Field__c), not labels. Describe Object returns the API names and picklist values of any object, or see Salesforce’s Object Reference.

Troubleshooting

The field name isn’t the API name, or the integration user can’t see the field. Check field-level security for the user’s profile, and compare with Describe Object.
The object has required fields you didn’t send, often LastName on Contact and Lead or Company on Lead. Add them to Fields.
Send numbers without quotes, true/false for checkboxes, and ISO dates (2026-10-26). Make sure the variables you insert hold the right type.
The action returns as soon as the upload is complete; Salesforce processes the job afterwards. Check Get Bulk Ingest Job for the job state, then Get Bulk Ingest Results for failed rows.
The integration user’s password changed, or access was revoked in Salesforce. Remove the connection in the App Center and connect again.
Allow Callers’ outbound IP addresses, 35.245.204.86 and 35.221.61.75, in the integration user’s profile login IP ranges or your org’s network access settings.

Actions overview

Where each action runs and what data it can use.

Triggers

Add contacts from Salesforce events.

HubSpot

The equivalent guide for HubSpot.

App Center

Manage connections.