← All integrations
HubSpot → Salesforce

HubSpot Salesforce integration

In short

A HubSpot to Salesforce integration keeps your marketing and sales CRMs in agreement: it maps HubSpot contacts, companies, and deals onto Salesforce leads, accounts, contacts, and opportunities, decides which system owns each field, and matches records so the same person is not created twice. Done properly it is not a one-off field mapping but a continuous, idempotent pipeline that reconciles lifecycle stage against opportunity stage, respects Salesforce API limits and required fields, and resolves conflicts by a rule you agreed rather than by whichever save happened last.

What a HubSpot to Salesforce integration actually does

HubSpot is where marketing lives: forms, email engagement, lifecycle stage, campaign attribution, the score that says a contact is ready. Salesforce is where the deal lives: the account of record, the opportunity, the forecast, the rep’s pipeline. Both claim to hold the customer, and the moment a lead becomes an opportunity, they disagree about who that person is and what is true about them.

A HubSpot to Salesforce integration keeps the two in agreement without anyone re-keying. It matches records so marketing and sales are looking at the same person, decides field by field which system is authoritative, and moves attributes and events across in near real time so a rep sees the marketing context and a marketer sees whether the deal closed.

What data moves

HubSpot object / eventBecomes in SalesforceNotes
Contact (lifecycle: lead/MQL)LeadSalesforce requires LastName and Company on a Lead
Contact (post-conversion)Contact + AccountRe-pointed after Salesforce lead conversion
CompanyAccountMatched on domain or an ID mapping, not name
DealOpportunityStage and amount usually Salesforce-owned
Contact-to-Company associationOpportunityContactRole / Account linkHubSpot associations map to Salesforce relationships
Engagements (email, call, meeting, note)Task / ActivityMarketing touchpoints surfaced on the record
OwnerUserRequires a HubSpot owner to Salesforce user map
Lifecycle stageLead Status / Opportunity StageMust not move a record backwards

The exact object mapping, ownership rules, and matching keys are agreed once and encoded in the pipeline. After that nobody reconciles them by hand.

The details that break naive syncs

A packaged connector or a point-to-point script gets you the happy path and leaves the expensive edges on your desk:

How we build and run it

We treat this as a pipeline, not a middleware subscription you configure and forget. HubSpot changes are pulled by webhook or on a schedule, validated, matched against the mapping table, transformed into your agreed Salesforce shape, and written through the Bulk or REST API with back-off and partial-failure handling. Salesforce-owned fields flow the other way on the same footing.

The pipeline is idempotent: every record carries a stable identifier and resolves through the mapping table, so a retry or replay updates the existing Lead, Contact, or Opportunity instead of creating a duplicate. It runs on cloud-native, fully EU-hosted AWS infrastructure, so contact and account data never leaves the EU - which keeps your DPA / AVV and GDPR position clean.

Then we keep it running. Monitoring, alerting, incident response, and - critically - watching HubSpot and Salesforce for API deprecations, rate-limit changes, and new required fields are our responsibility under contract. You get a named owner and an SLA, not a connector that fails quietly until a rep notices a lead never arrived.

When this integration is worth building

If your setup is standard - contacts, companies, and deals mapping cleanly to leads, accounts, and opportunities - HubSpot’s native Salesforce connector is genuinely a good fit and we will say so. A managed pipeline earns its place when you have custom objects on both sides, per-field ownership rules the connector cannot express, non-trivial lead conversion logic, multi-currency opportunities, high enough volume to hit API limits, or a revenue operations team that is tired of debugging why a sync silently stopped. At that point the outcome is worth owning, not configuring.

Frequently asked questions

Isn't HubSpot's native Salesforce connector enough?
For a straightforward setup it often is, and if that is your situation we will tell you so. The native connector handles standard object sync and inclusion lists well. It gets strained when you have custom objects on both sides, non-trivial lead-to-contact conversion logic, field-level ownership rules that differ per property, multi-currency opportunities, or a need to sync data the connector does not expose. A managed pipeline earns its place exactly where the packaged connector stops.
How do you stop the same person being created as a duplicate?
Matching logic, agreed with you up front. HubSpot treats email as a unique key; Salesforce does not, and splits people across Leads and Contacts. We match on email first, then fall back to a record-ID mapping table the pipeline maintains, so a HubSpot contact resolves to the correct existing Lead or Contact instead of spawning a new one. The mapping is what keeps the two systems pointing at the same person over time.
Which direction does data flow?
Whichever each field needs. Typically marketing attributes and engagement flow HubSpot to Salesforce, while opportunity and account-of-record data flow Salesforce to HubSpot. We define ownership per field, not per record, so lifecycle stage can be HubSpot-owned while deal amount is Salesforce-owned. Conflicts resolve by that rule rather than by last write wins.
How do you handle the Lead versus Contact model?
HubSpot has no Lead object - it has one contact record with a lifecycle stage. Salesforce splits that into Lead, then Contact plus Account after conversion. We map lifecycle stage to the right Salesforce object and status, keep a HubSpot contact aligned with its Lead until conversion, then re-point it at the resulting Contact and Account. The conversion event is the moment naive syncs lose track of a record.
Who operates it once it is live?
We do. The pipeline runs on cloud-native, fully EU-hosted infrastructure that we monitor. When HubSpot or Salesforce changes an API, deprecates an endpoint, or shifts a rate limit, that is our problem to fix under contract - not something your revenue operations team discovers when sync silently stops. You get a named owner, alerting, and an SLA rather than a middleware subscription nobody watches.

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