CRM

In short

How does Reply's Salesforce integration work?

Leads and contacts sync both ways as separate objects, and emails, tasks, calls and notes are logged from Reply to Salesforce. There are two connection paths; the standard one and a managed package. A converted lead can never be updated, which surprises most teams.

At a glance

AvailabilityAvailable. Included on plans that offer CRM integrations – check yours in Billing
DirectionTwo-way for leads and contacts · Reply → Salesforce for emails, tasks, calls and notes
Sync timingAutomatic on a regular cycle, with some variation between runs, plus a manual sync
What you needA Salesforce user with API access and read/write permission on the objects you sync
SurfacesSetup: in the app only – integration configuration is not in the public API. Once connected: the contacts that sync are readable and writable through the API and MCP, and sync activity raises webhook events
Does notUpdate a converted lead · sync opportunities as objects · offer Salesforce's own system fields for mapping · bring Salesforce activity back into Reply

Availability

Available on plans that include CRM integrations. On the Salesforce side you need a user with API access, not every Salesforce edition or licence type includes it, and that is the most common blocker before anything else can be tried.

Ownership can be mapped, so a record created by Reply lands with the right Salesforce owner rather than the connecting user.

How to connect Salesforce

Reply offers two connection paths. Choose one deliberately:

PathWhen to use it
Standard connectionThe default. Authorize Reply as a connected app and sync through the Salesforce API
Managed packageWhen your Salesforce org restricts direct API connections, or your admin prefers an installed package with its own scoped key

Before you start

  • Confirm your Salesforce user has API access
  • Decide whether leads, contacts, or both are in scope
  • Decide the owner mapping, so synced records are not all attributed to one person
  • If you plan to use the managed package, have your Salesforce admin install it first

Connect

  1. Go to Execution → Integrations.
  2. Click Connect next to Salesforce.
  3. Log in to Salesforce in the pop-up window, as the user whose permissions the sync should use.
  4. Configure the sync steps once you are returned to Reply.

Set up what syncs

Leads and contacts are separate steps. The generic mechanics are the same for every CRM. See Sync Reply with a CRM. What follows is Salesforce-specific.

What to expect

What syncs

DataDirectionWhenNotes
Leads↔Every cycleA separate object from contacts, with its own step
Contacts↔Every cycleA separate object from leads, with its own step
Contact statusesReply → SalesforceEvery cycleArrive as Salesforce lead statuses
Inbox categoriesReply → SalesforceEvery cycleAlso arrive as lead statuses
EmailsReply → SalesforceEvery cycleArrive as lead tasks or contact tasks, depending on the object
Tasks, calls and notesReply → SalesforceEvery cycleAlso arrive against the lead or the contact, created once and not updated

After you connect

The first sync brings across records matching your filters. Later cycles re-examine a rolling recent window, so a record edited a few days ago is still picked up.

Above a certain volume the sync switches to Salesforce's bulk processing, which behaves slightly differently: larger batches, and errors reported per batch rather than per record. You do not configure this; it happens automatically.

What doesn't sync

  • A converted lead cannot be updated. Once Salesforce converts a lead, Reply can no longer write to it; the sync records the refusal and moves on. This is Salesforce's rule, not Reply's, and it is the single most common source of "some records just stopped updating".
  • Opportunities are never synced as objects.
  • Salesforce system fields (record identifiers, view and reference timestamps, conversion fields, photo URLs and similar) are never offered for mapping.
  • Activity in the other direction. Work logged in Salesforce does not appear in Reply.
  • Contacts with a placeholder email address when the identifier is email.

Common problems

  • Some records stopped updating – check whether those leads have been converted. Sync Reply with a CRM
  • A contact never arrives – a required Salesforce field left empty, or a value longer than the field allows. Full guide
  • Emails and tasks are missing – the activity steps are separate and have to be enabled individually. Full guide
  • Nothing has synced at all – check the connection first; a Salesforce password change is enough to break it. Full guide

Pause or disconnect

Turn the integration off to stop syncing while keeping steps and mappings. Disconnecting removes the authorization; records already synced remain in both systems. If you connected through the managed package, removing the package also ends the connection.

FAQ

Does Reply sync leads or contacts?

Both, as separate objects with separate steps. You can enable one, the other, or both.

Why did a record stop updating?

Most often because the lead was converted. Salesforce does not allow updates to a converted lead.

What is the managed package for?

It is an alternative connection path for orgs that restrict direct API connections, or where an admin prefers an installed package.

Can Reply create opportunities?

No. Opportunities are not synced as objects.

Need help connecting Salesforce?

If the connection fails or data isn't syncing the way you expect, the Reply support team can check your integration settings with you. Open the Reply Help Center and send the team a message.

To get an answer faster, include:

  • which integration and which sync step is affected
  • what you expected to sync, and what happened instead
  • the error text from the integration's Logs, or a screenshot of it

Don't send passwords, API keys, or access tokens.

Build with Reply

  • REST API: Contacts – read and write the contacts that sync
  • Webhooks: Webhook events – react to Reply events in your own systems
  • MCP: docs.reply.io/mcp – let an assistant read and update synced contacts, though not the integration's own settings