CoreviaFlowCOREVIAFLOWDIGITAL PROJECT COMPANY Leave a request
EN UA RU

HubSpot ↔ Salesforce integration

Marketing leads from HubSpot become leads and contacts in Salesforce, and deal stages, owners and closed sales from Salesforce come back to HubSpot for reporting and nurturing

Marketing runs campaigns, forms and e-mail sequences in HubSpot; sales works deals in Salesforce. Between them a spreadsheet of «handed-over leads», a weekly export, and two versions of every contact. Marketing cannot see which campaigns turned into revenue, and sales gets leads without the history of what the person downloaded or clicked. The HubSpot ↔ Salesforce pair hands qualified leads over to Salesforce with their history, keeps the same person as one record on both sides, and returns deal stages, owners and closed sales to HubSpot, so campaigns are judged by revenue and lost deals go back into nurturing. Below: what exactly moves, which scenarios we cover and which capabilities of both systems we rely on.

What moves between the systems

  • HubSpot → SalesforceA contact that reaches the agreed lifecycle stage or score in HubSpot is created in Salesforce as a lead (or a contact under an existing account) with source, campaign and the last forms filled.
  • HubSpot → SalesforceNew e-mail opens, form submissions and page visits of a handed-over contact are written to the Salesforce record as activities, so the rep sees what the person did after the hand-over.
  • HubSpot → SalesforceChanges to agreed contact fields in HubSpot (phone, job title, consent) are carried to the Salesforce record, and the same fields changed in Salesforce go back; each field has one master.
  • Salesforce → HubSpotThe Salesforce owner, lead status and conversion to an opportunity are written to the HubSpot contact, so marketing knows the lead was picked up and by whom.
  • Salesforce → HubSpotOpportunity stage, amount and close date from Salesforce are mirrored as a deal in HubSpot, so revenue reports and campaign attribution in HubSpot use real sales data.
  • Salesforce → HubSpotA deal closed as lost in Salesforce puts the contact back into a HubSpot nurturing list with the loss reason, so marketing can re-engage it later.

What we connect

  • We agree on the hand-over rule and the field map: which lifecycle stage or score sends a contact to Salesforce, which fields go each way, which side owns each field, and how duplicates are matched (e-mail first, then phone).
  • The Salesforce administrator registers the exchange as an external client app with access to leads, contacts, accounts, opportunities and activities; the reps' own logins are not used.
  • In HubSpot the administrator creates a private app for this account with access to contacts, companies, deals and timeline events; that access can be revoked at any time.
  • We map users, pipelines and stages: which Salesforce user is which HubSpot owner, and which opportunity stage equals which HubSpot deal stage, so reports on both sides speak one language.
  • We subscribe to events on both sides where they exist and read everything else on a schedule of minutes, so a hand-over or a stage change is visible on the other side quickly without hammering either system.
  • We run the first pass on a test copy of Salesforce and a HubSpot test account with a hundred real contacts, check duplicates with both team leads, and only then connect the production orgs.

Automation scenarios

01

Leads handed over in a spreadsheet

Before marketing exports qualified contacts on Friday, sales imports them on Monday, and the hottest lead waits three days.

After a contact that hits the agreed score is in Salesforce within minutes with its history, assigned by the round-robin rule.

02

Campaigns judged by clicks, not revenue

Before marketing reports opens and form fills, sales reports revenue, and nobody can say which campaign paid for itself.

After closed opportunities from Salesforce are deals in HubSpot, and the campaign report shows revenue per source.

03

Two records for one person

Before the same person has a HubSpot contact and a Salesforce lead with different phone numbers, and the rep calls the old one.

After records are matched by e-mail, each field has one master, and a corrected phone appears on both sides.

04

Lost deals disappear

Before a deal lost in Salesforce is forgotten, and marketing keeps sending the person the same welcome sequence.

After the lost deal returns the contact to a nurturing list with the reason, and a different sequence starts in a few months.

How it works technically

For those who want to check: each point links to the official documentation page it comes from.

  • A tool built for a single account signs in with a static access token; a tool meant to serve multiple accounts is required to use OAuth.

    Source: developers.hubspot.com ↗ checked 2026-09-25
  • HubSpot's CRM is built around objects — contacts, companies, deals, tickets and others — and every object type has its own numeric ID used in requests.

    Source: developers.hubspot.com ↗ checked 2026-09-25
  • The built-in Workflows builder automates actions — sending an email, updating CRM data, launching another integration — based on an event, a schedule or a condition.

    Source: knowledge.hubspot.com ↗ checked 2026-09-25
  • REST API gives programmatic access to Salesforce records, metadata and search without using the Salesforce interface itself.

    Source: developer.salesforce.com ↗ checked 2026-09-25
  • Access is authorised through OAuth 2.0 via a Connected App or External Client App; since Spring '26, creating new Connected Apps is restricted and Salesforce recommends External Client Apps instead (existing Connected Apps keep working).

    Source: developer.salesforce.com ↗ checked 2026-09-25
  • Platform Events are secure, scalable messages published by Salesforce and received by subscribers in real time — Salesforce's built-in equivalent of a webhook.

    Source: developer.salesforce.com ↗ checked 2026-09-25

Limits

The limits come from both systems. Both are CRMs, so the exchange carries only the agreed fields and objects, not everything: custom objects, quotes and products are added as separate work. Each field has one master, and a value changed on the wrong side is overwritten on the next pass; this is by design, otherwise the two systems drift apart again. Salesforce events are received in real time, HubSpot changes are read on a schedule of minutes. Historical data is loaded once at the start in a controlled pass, not silently in the background.

How to start

Three steps from a first message to work on your project.

  1. 01

    Leave a request

    Describe the task in the form — in text or by voice. Budget and timing are optional.

  2. 02

    We review and estimate

    A developer studies the brief, asks about anything unclear and sends an estimate.

  3. 03

    We start

    Once scope and price are agreed, the work begins.

or write to info@coreviaflow.space

Questions

HubSpot has a native Salesforce connector. Why not just use it?
Often we do: if it fits your hand-over rule and field map, we set it up and stop. We build only where it does not bend: your own matching order, hand-over by a combination of conditions, lost-deal nurturing with reasons, and stage maps between custom pipelines.
Which system is the source of truth?
Not one system, one owner per field. Usually marketing fields (source, campaign, consent) belong to HubSpot and sales fields (owner, stage, amount) to Salesforce; contact details belong to whichever side your teams agree on. We write this down before the first pass.
Will all our old contacts flood Salesforce on day one?
No. Only contacts that meet the hand-over rule move, and the historical pass is run once, on a list both teams have looked at. Everything else stays in HubSpot until it qualifies.

Tell us what needs to be connected

Describe the task in text or a voice message. We look at your setup and reply with a plan.