← All integrations
Intercom → Salesforce

Intercom Salesforce integration

In short

An Intercom to Salesforce integration keeps the people and conversations in Intercom aligned with Leads, Contacts, Accounts, and Cases in Salesforce - matching each Intercom contact to the right CRM record by email or external ID, turning conversations and tickets into Cases or Activities against that record, and syncing tags, custom attributes, and assignee data both ways. Done properly it is not a one-time CSV import or a brittle Zap: it is a continuous, idempotent pipeline that dedupes identities, respects Salesforce API limits, and keeps support and sales looking at the same customer.

What an Intercom to Salesforce integration actually does

Intercom is where your customers talk to you - the live chat, the product messages, the support conversations, the tickets your team works through the day. Salesforce is where the business tracks those same people as Leads, Contacts, Accounts, and Cases, and where sales and success decide what to do next. The two systems describe the same customers, and left unconnected they drift apart within a week.

An Intercom to Salesforce integration closes that gap continuously. It matches each person in Intercom to the right record in Salesforce, turns conversations and tickets into Cases or Activities against that record, and keeps tags, custom attributes, and ownership aligned so a rep opening an Account sees the support reality, and a support agent in Intercom sees the sales context. Nobody re-keys a customer from one tool into the other.

What data moves

Intercom object / eventBecomes in SalesforceNotes
Contact (user)Contact or LeadMatched by email or external_id; unmatched people become Leads by your rule
Contact (lead)LeadAnonymous or pre-sales visitors, kept separate from known Contacts
CompanyAccountMatched by domain or a shared external ID; drives Contact-to-Account linkage
ConversationCase or ActivityCarries state, assignee, and first-response / close timestamps
TicketCaseTicket type and state mapped to your Case record type and status
TagsCase / Contact fields or topicsAgreed mapping, not a free-text dump
Custom attributesCustom fieldsTyped and mapped per object, not flattened into a notes blob
Assignee / teamCase owner / queueMapped from Intercom teammates to Salesforce users

The exact objects, record types, matching keys, and field mappings are agreed once and encoded in the pipeline. After that, nobody maps them again by hand.

The details that break naive syncs

A native app or a generic connector gets you most of the way and leaves the expensive edge cases on your desk:

How we build and run it

We treat this as a pipeline, not a one-off import. Intercom contact, company, conversation, and ticket events are received by webhook (or pulled on a schedule for backfills), validated, matched against Salesforce, transformed into your agreed object model, and written through the Salesforce Bulk and Composite APIs.

The pipeline is idempotent: every Intercom event carries a stable identifier, so a redelivery or a retry never produces a duplicate Lead, Contact, or Case. It runs on cloud-native, fully EU-hosted infrastructure, so contact and conversation data never leaves the EU - which keeps the DPA / AVV and your GDPR obligations clean.

And then we keep it running. Monitoring, alerting, incident response, and - critically - watching for Intercom and Salesforce API changes are our responsibility under contract. When Salesforce deprecates an API version or Intercom changes a webhook payload, that is our problem to fix, not a surprise your revenue team discovers when records stop syncing. You get a named owner and an SLA rather than a workflow somebody has to babysit.

When this integration is worth building

If one team uses both tools, your contacts are clean, and Intercom’s native Salesforce app maps to your object model without a fight, use it - and we will tell you so. The managed pipeline earns its place when identity matching gets hard, when you have duplicate contacts or multiple Salesforce record types and custom objects, when conversation and ticket volume starts eating your API allocation, or when support and sales keep arguing about which system is right because the two never quite agree. That is the point where a pipeline that dedupes, batches, and runs itself pays for itself.

Frequently asked questions

Doesn't Intercom already have a native Salesforce app?
It does, and for a single team with clean data it can be enough. The native app is opinionated about how it matches records and what it writes, and it struggles once you have duplicate contacts, multiple Salesforce record types, or custom objects it was never designed for. We build to your actual object model and matching rules instead of the app's defaults, and we own the pipeline when Intercom or Salesforce changes an API.
How do you decide whether an Intercom contact becomes a Lead or a Contact?
By your rules, applied consistently. Typically an Intercom contact matched to an existing Salesforce Contact or Account updates that record, an unmatched person becomes a Lead, and conversion is left to your sales process rather than forced by the sync. We agree the matching keys - email, external_id, or a company domain - up front so the same person never lands as both a Lead and a Contact.
Can conversations and tickets sync as Salesforce Cases?
Yes. An Intercom conversation or ticket can create or update a Salesforce Case linked to the matched Contact and Account, carrying the state, priority, assignee, and tags. Conversation notes and the message thread can be summarised into the Case or attached, depending on how much history your team wants inside Salesforce versus a deep link back to Intercom.
How do you avoid hitting Salesforce API limits?
We batch writes through the Salesforce Bulk and Composite APIs, sync deltas rather than the full population on every run, and back off cleanly when limits tighten. Because the pipeline is idempotent, a throttled or retried batch never creates duplicate records. Your Salesforce daily API allocation stays predictable instead of being spent by a chatty connector.
Where does the data run, and is it GDPR-compliant?
The pipeline runs on cloud-native, fully EU-hosted infrastructure that we monitor. Contact and conversation data stays in the EU, and the processing is covered by a DPA / AVV so your GDPR obligations are clean. You get a named owner, alerting, and an SLA rather than a workflow nobody is accountable for.

Need this integration built and permanently operated? Tell us which systems connect and what data has to move. Fixed-price scoping quote within 48 hours.

Request a scoping call