← All integrations
HubSpot → Intercom

HubSpot Intercom integration

In short

A HubSpot to Intercom integration keeps the same person and company consistent across your CRM and your messaging tool. It pushes HubSpot contacts, companies, lifecycle stages, and list memberships into Intercom - matched on a stable external ID rather than a fragile email - so support and onboarding see who they are talking to, and it feeds Intercom conversations, tags, and ticket outcomes back to the HubSpot timeline so sales and marketing see the whole relationship. Done properly it is not a one-way contact dump: it is a two-way, idempotent pipeline that respects rate limits, consent, and update ordering.

What a HubSpot to Intercom integration actually does

HubSpot is where the commercial relationship lives - who the contact is, which company they belong to, their lifecycle stage, which marketing lists they are on, the deal in flight. Intercom is where the conversation lives - the onboarding message, the support thread, the tags an agent applied, the ticket that got resolved yesterday. Both tools describe the same people, and both are wrong about each other most of the time.

A HubSpot to Intercom integration closes that gap so neither team is guessing. Support opens a conversation and already sees the plan tier, owner, and renewal date pulled from HubSpot. Sales opens a HubSpot record and sees the last Intercom conversation, the open ticket, and the tags that say this account is unhappy. Nobody copies a field between two browser tabs, and the two systems stop drifting apart the day after someone last reconciled them by hand.

What data moves

HubSpot object / eventBecomes in IntercomNotes
ContactContact (user or lead)Matched on external_id (HubSpot record ID), email as fallback
CompanyCompanyLinked to the contact via company membership
Lifecycle stageCustom data attributeSubscriber / lead / MQL / SQL / customer mapped to a fixed attribute
Contact & company propertiesCustom data attributesPlan tier, owner, renewal date, MRR - the attribute map is agreed once
Active list membershipTag or segment signalDrives Intercom audiences without re-building the segment logic
Marketing consent / subscriptionSubscription stateConsent is respected, never blindly overwritten

And back the other way, so HubSpot reflects what actually happened in Intercom:

Intercom eventBecomes in HubSpotNotes
Conversation opened / closedTimeline event or engagementLast-contacted date and conversation count kept current
Applied tagsContact / company propertye.g. “at risk”, “expansion”, “bug reported”
Ticket resolvedProperty update or timeline entrySupport outcome visible to the account owner

The exact property-to-attribute map and the direction of each field are agreed once and encoded in the pipeline. After that, nobody maps anything by hand.

The details that break naive syncs

A generic connector gets you contacts-in-Intercom and stops before the expensive parts:

How we build and run it

We treat this as a pipeline, not a nightly script. Changes are picked up by webhook where the platforms support it and by scheduled delta pass otherwise, validated, transformed into the agreed mapping, and written with idempotency so a retry or replay never creates a duplicate contact or a double-counted conversation.

It runs on cloud-native, fully EU-hosted AWS infrastructure, so contact and conversation data never leaves the EU, which keeps your DPA / AVV and your GDPR obligations clean. Every record carries a stable identifier end to end, so the pipeline always knows what it has already sent.

Then we keep it running. Monitoring, alerting, incident response, and - critically - watching for HubSpot and Intercom API changes, deprecated webhook topics, and tightened rate limits are our responsibility under contract. You get a named owner and an SLA, not a maintenance burden.

When this integration is worth building

If you have a few hundred contacts, one lifecycle definition, and support rarely needs more than an email address, the native app or a manual export is genuinely fine and we will tell you so. The integration earns its place when the contact count and change rate make manual reconciliation a chore, when your custom properties and lifecycle logic have to be reflected accurately in Intercom, when sales needs Intercom conversation and ticket signals on the HubSpot timeline, or when a flaky connector keeps dropping updates and someone is quietly fixing it by hand every week.

Frequently asked questions

Does HubSpot not already have a native Intercom app?
There is a listed connector, and for a small team that only needs contacts to appear in Intercom it can be enough. It tends to fall short on the parts that matter at scale: reliable identity matching when the same email exists as both a lead and a user, syncing your specific custom properties and lifecycle logic, pushing Intercom conversation outcomes back onto the HubSpot timeline, and any control over rate limits, ordering, or error handling. A managed pipeline exists for exactly the cases the app leaves on your desk.
How do you stop duplicate contacts appearing in Intercom?
Email alone is not a safe key - Intercom allows several contacts to share an email (a lead and a user, for example), and people change addresses. We write the HubSpot record ID into the Intercom external_id and match on that first, falling back to email only when no external_id exists. That gives one stable Intercom contact per HubSpot contact, so an email change updates the existing record instead of creating a second one.
Can it sync custom properties, not just name and email?
Yes, and this is usually the point of the project. Any HubSpot property - lifecycle stage, plan tier, account owner, renewal date, MRR - can map to an Intercom custom data attribute, and Intercom conversation data can map back to HubSpot properties or timeline events. Note that Intercom custom data attributes have to be created in Intercom before anything can write to them, and their types are fixed, so we agree the attribute map with you up front and provision it once.
Which way does the data flow?
Usually both, and the direction is decided per field to avoid the systems overwriting each other. HubSpot is typically the source of truth for identity, company, and lifecycle data flowing into Intercom, while Intercom is the source of truth for conversation counts, last-contacted dates, tags, and ticket outcomes flowing back to HubSpot. We define ownership field by field so there is never an ambiguous last-write-wins fight.
Who operates it after it goes live?
We do. The pipeline runs on cloud-native, fully EU-hosted infrastructure that we monitor. If HubSpot or Intercom changes an API, deprecates a webhook topic, or tightens a rate limit, that is our problem to fix under contract, not a silent breakage your team discovers when a segment stops updating. You get a named owner, alerting, and an SLA instead of a script nobody remembers building.

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