Skip to main content
The Salesforce integration imports contacts and leads from reports or from your open call tasks, and logs every dialed call back as a completed Task on the record. Connect it from Settings → Connections & API → Salesforce. A separate Salesforce Sandbox connection lets you test against a sandbox org.

Architecture

Salesfinity talks to Salesforce only through the standard REST, SOQL, and Analytics APIs as the connected user. There is no managed package, no Apex, no trigger, no custom object, and no custom field. Nothing is installed in your org.

Permissions required to connect

Salesfinity is a Salesforce connected app that authorizes through OAuth. When you connect, the Salesforce login page asks you to allow these OAuth scopes: There is nothing to install in Salesforce and no package to configure. Your Salesforce admin does need to allow the Salesfinity connected app if your org restricts which apps users may authorize. Salesfinity only ever acts as the connected user. It cannot read a record or run a report that your Salesforce user cannot.

Production and sandbox

Production connects through login.salesforce.com. The Salesforce Sandbox card connects through test.salesforce.com instead. The two are independent integrations with their own mappings, so you can keep a sandbox connected for testing while dialing against production.

For Salesforce admins: setup checklist

Most Salesforce questions about Salesfinity are answered by this list. Work through it once per org; after that, each rep connects their own account in a minute.
1

Allow the Salesfinity connected app

Salesfinity is an OAuth connected app. If your org restricts which apps users may authorize (Setup → Connected Apps OAuth Usage, or a policy of “Admin approved users are pre-authorized”), approve Salesfinity and assign it to the profiles or permission sets your reps use. Reps whose profile is not assigned are refused at the authorization step.
2

Give reps API access

The rep’s profile or a permission set must have API Enabled. Salesfinity does everything through the API, so a user without it cannot connect.
3

Check object permissions

Salesfinity acts as the rep, so the rep needs the access listed in objects and access below. In most orgs a standard sales profile already has it. The one that is commonly missing is Run Reports with access to the report folders reps import from.
4

Prepare the reports reps will import

Salesfinity imports from a contact report or a lead report. The report must include the record ID column (Contact ID or Lead ID), because that is how Salesfinity finds the records to load. An import reads at most the first 2,000 records of a report, so split larger territories into several reports.
5

Map your task process, if it is custom

If your org uses custom Task statuses, a custom “call” type value, or a custom due-date field, set them in the integration’s Task import section so “All call tasks” and call completion match what reps see in Salesforce. Orgs on the standard Task process can leave the defaults.
6

Decide on Sales Engagement

If Sales Engagement is enabled, Salesfinity advances the current cadence step when a call is logged and lets reps add, move, and remove targets from cadences. If it is not enabled, everything else still works and cadence features are simply absent.
7

Have each rep connect

Every rep connects from Settings → Connections & API → Salesforce with their own login. Calls are logged as the connected user, which is what keeps activity attribution and sharing rules correct. Connecting once as an admin on behalf of everyone would log every call under the admin.

Objects and access

What Salesfinity reads and writes, and the permission the connected user needs for each. Field level security applies: a field the user cannot see is left out of the import rather than causing an error. The dialer integration never deletes a Salesforce record. It creates records only in the one case above, a CSV contact with no match in Salesforce.

How an import runs

1

Collect record IDs

For a report, Salesfinity runs it through the Analytics API and reads the Contact or Lead ID from each row, up to 2,000. For “All call tasks” it queries your open call Tasks, ordered by due date, and takes the Contact or Lead each one is related to. If a record has several open tasks, the earliest is used.
2

Load the records

It then queries Contacts and Leads in batches of 100 IDs, selecting only the fields in your contact and lead field mappings plus any custom fields, including relationship fields such as the account name.
3

Build the list

Each record becomes a contact with its Salesforce ID, object type, a link back to the record, and, for task imports, the task ID and due date. The list is named after the report, or “All call tasks”.

What Salesfinity imports

  • A report. Pick a contact report or a lead report. Salesfinity runs the report and imports the Contact or Lead records it returns. The Salesfinity list is named after the report.
  • All call tasks. Import with no report selected and Salesfinity pulls your open Tasks that are calls, together with the Contact or Lead each task is on. The list is named “All call tasks”. Which tasks count as open and which count as calls is set in the Task import configuration.
Both Contacts and Leads are supported. Contacts use the contact field mapping; Leads use the lead field mapping. Every imported record keeps its Salesforce ID and its object type, so the call is logged back to the right object.

What Salesfinity writes back

When you log a call on a Salesforce-sourced contact or lead, Salesfinity creates a Task: If the record is enrolled in a Sales Engagement cadence and its current step is active, Salesfinity marks that step complete so the cadence advances. This uses Salesforce’s standard cadence action and requires Sales Engagement to be enabled in your org; when it is not, the call is still logged and the step is left alone. Two more write paths run outside of call logging:
  • Contacts you dial from a CSV or custom list are logged to Salesforce too, if Salesforce is connected. Salesfinity searches for the person by email and name. If nobody matches, it creates a Contact using your field mapping, dropping any mapped columns that the Contact object does not have, and then logs the call.
  • Phone numbers found by enrichment or edited in the dialer can be written to the Contact or Lead’s phone fields.

Sequences

Salesforce Sales Engagement cadences appear in the dialer’s sequence controls. You can add a contact or lead to a cadence, remove it, and move it to a different cadence. All three require Sales Engagement in your org.

Configuration

Two separate maps, one for Contacts and one for Leads, from Salesforce fields to Salesfinity contact fields. Relationship fields such as the account name are available for Contacts.
Extra Contact, Lead, Account, and Opportunity fields to bring across. Contact and Lead custom fields land on the contact in the dialer. Account and Opportunity fields feed the account view and the AI Companion.
Maps each Salesfinity disposition to a Salesforce call disposition value. The automatic suggestion fills the table from your org’s picklist values.
Controls what “All call tasks” pulls and how tasks are closed. Map three Task fields:
  • Status — the field that says whether a task is open, plus the list of values that count as open. Defaults to Status and “not Completed”.
  • Task type / call type — the field and values that identify a task as a call. Defaults to Task Subtype equal to Call.
  • Due date — the field used to filter tasks by due date. Defaults to Activity Date.
Orgs with a custom task process should map these to their own fields so the import matches what reps see in Salesforce.

Sessions and reconnecting

Salesforce access tokens are opaque and do not carry an expiry, so Salesfinity refreshes the session on every call using your refresh token. You will not be asked to log in again unless the refresh token is revoked, which happens when an admin revokes the connected app, when your password changes with session revocation, or when the org’s refresh token policy expires it. In those cases the integration reads as disconnected and you reconnect from the same settings card.

Questions admins ask

No. Each rep connects with their own Salesforce login and every action runs as that user. A shared integration user would log every call under one name and bypass sharing rules, so Salesfinity does not support it.
Salesfinity stores the OAuth access token, refresh token, and instance URL for each connected user in its credential store, and never the user’s password. Tokens are never shown in the UI or returned by the API. Disconnecting from Salesfinity deletes them. Revoking the connected app in Salesforce invalidates them immediately.
An import costs one report run plus one SOQL query per 100 records. A logged call costs a short identity check, one Task insert, and, with Sales Engagement, one cadence query and one action call. Salesfinity refreshes the session per request with a lightweight identity call rather than a full login. A team dialing all day stays well inside a standard org’s daily API allocation.
Yes, through Salesforce itself. Salesfinity only sees what the connected user sees, so profiles, permission sets, sharing rules, and field level security all apply unchanged.
Contacts and Leads are the supported objects. Custom fields on either are supported through the custom field pickers. A custom Task process is supported through the Task import mapping. Custom objects are not imported.
Yes. Connect the Salesforce Sandbox card to a sandbox org. It is a separate integration with its own mappings, so nothing from testing touches production.

How data moves

Where a call goes after you log it, and what each sync state means.

Troubleshooting

Reconnect prompts, empty imports, and failed syncs.