integrationsalesforcehubspotautomation

Salesforce HubSpot Integration Guide | 2V Automation

You can sync Salesforce and HubSpot three ways - native connector, iPaaS, or custom. Here's what each one syncs, what breaks, and how to choose.

VV
Valerian Valkin Founder & CEO, 2V Automation
·
Jump to a section

You can sync Salesforce and HubSpot in three ways: HubSpot’s native Salesforce integration, a third-party iPaaS platform like Zapier or Make, or a custom build against both APIs. For 90% of teams, the native connector is the right answer - it’s built and maintained by HubSpot, free on most tiers, and handles two-way sync of contacts, companies, and deals out of the box.

This guide walks through all three paths, what data actually flows in each direction, the field mapping gotchas that bite teams in month two, and how to choose.

The 60-second answer

If marketing lives in HubSpot and sales lives in Salesforce, you want HubSpot’s native Salesforce connector. It’s the most-supported path, and it covers most realistic use cases without writing code.

You’d reach for an iPaaS or custom build only when:

  • You need to sync objects the native connector doesn’t handle (tickets, products, custom objects with weird relationships)
  • You need transformation logic between the two systems (deduplication rules, complex routing, calculated fields)
  • You’re running a one-off historical migration rather than ongoing sync
  • One side is on a tier that doesn’t support the native integration

The three integration paths

Path 1: HubSpot’s native Salesforce integration

HubSpot built and maintains this connector. It’s the path most teams should start with.

What you get:

  • Two-way contact sync (HubSpot Contact ↔ Salesforce Lead or Contact)
  • Two-way company sync (HubSpot Company ↔ Salesforce Account)
  • Two-way deal sync (HubSpot Deal ↔ Salesforce Opportunity)
  • Lead score and lifecycle stage propagation from HubSpot to Salesforce
  • Inclusion lists (which HubSpot contacts get synced to Salesforce - useful if you don’t want every form-fill to create a Lead)
  • Activity timeline events (form submissions, email opens, page views) pushed to the Salesforce contact

Pros: Free on most tiers, two-way bi-directional sync, maintained by HubSpot, fast setup, no per-record charges.

Cons: Doesn’t cover tickets, custom objects with complex relationships, or arbitrary transformations. Initial sync of large databases can take hours to days. Conflict resolution rules are limited - you pick one side as the source of truth per field, but can’t easily do conditional logic.

Pricing: Available on HubSpot Professional and Enterprise (Marketing or Sales Hub). The Salesforce side needs API access - that’s Professional Edition and above on Salesforce, with API access enabled.

Path 2: iPaaS - Zapier, Make, n8n, or Workato

Use a platform that has both Salesforce and HubSpot connectors. The platform handles auth, polling/webhooks, and the actual data movement.

What you can do that native can’t:

  • Sync objects native doesn’t touch (HubSpot Tickets to Salesforce Cases, custom objects, products)
  • Apply transformation logic (route deals based on size, deduplicate against a third source, calculate fields)
  • One-way sync only (sometimes you want this - push HubSpot form fills to Salesforce as Leads but never sync back)
  • Loop in other systems in the same workflow (e.g. when a deal closes in Salesforce, update HubSpot AND notify Slack AND create a Stripe customer)

Pros: Full flexibility, can include third systems, handles transformation logic.

Cons: You’re building and maintaining workflows. iPaaS pricing scales with volume - Zapier per task, Make per operation, n8n per execution. At meaningful scale this can outpace the value vs. native.

Pricing: Zapier starts useful around $30-$70/month for low volume. n8n self-hosted is $30-$100/month for infrastructure regardless of volume. See our n8n vs Zapier comparison for the cost breakdown.

Path 3: Custom integration via APIs

Both Salesforce (REST API, Bulk API, Streaming API, Platform Events) and HubSpot (CRM API, Webhooks API) have well-documented APIs. You can build a service that talks to both.

When to do this:

  • You have engineering capacity and a long-term integration that doesn’t fit native or iPaaS
  • You need ultra-low-latency sync (sub-second) that polling-based iPaaS can’t deliver
  • You’re doing one-time data migration with complex business rules
  • You need extreme reliability with custom retry/backoff and observability

Pros: Full control, no vendor lock-in, no per-execution costs.

Cons: You’re now a maintainer. APIs change, auth tokens rotate, edge cases multiply. Budget engineering time for support indefinitely.

What data flows in each direction

This is where teams get tripped up. The directionality of the native connector is not symmetric.

ObjectHubSpot → SalesforceSalesforce → HubSpot
ContactYes (creates Lead or Contact)Yes (creates Contact)
Company / AccountYesYes
Deal / OpportunityYes (with stage mapping)Yes
Email activityYesNo (HubSpot tracks its own)
Form submissionsYes (as activity)N/A (Salesforce doesn’t have forms in the same way)
Lead scoreYesNo
Lifecycle stageYesNo (HubSpot owns this)
Tickets / CasesNo (native)No (native)
Custom objectsLimitedLimited
AttachmentsNoNo
TasksConfigurableConfigurable

A few things to know:

  • HubSpot Contacts can map to either Salesforce Leads or Salesforce Contacts, depending on your routing rules. Most teams map new contacts to Leads, then convert to Contacts when the Lead converts.
  • Deal stages aren’t 1:1 between systems. You map each HubSpot deal stage to a Salesforce opportunity stage in the integration setup.
  • Custom field sync is supported but you have to map each field manually. The mapping interface is in HubSpot under Settings → Integrations → Salesforce → Field mappings.

Step-by-step: Setting up the native Salesforce integration

Assuming you’re using the HubSpot-native path. Both systems must already exist with admin access.

1. Pre-flight checks

On the Salesforce side:

  • Confirm API access (Professional Edition+ with API access enabled, or Enterprise/Unlimited)
  • Have admin or System Administrator profile credentials ready
  • Decide your Lead vs. Contact strategy upfront

On the HubSpot side:

  • Confirm you’re on a paid Professional or Enterprise tier
  • Have a list of contacts ready (you’ll pick which segments sync)
  • Document your deal pipeline stages so you can map them to Salesforce opportunity stages

2. Install the connector

In HubSpot, go to Settings → Integrations → Connected Apps → Visit App Marketplace. Search for Salesforce. Click “Install app.” HubSpot redirects you to Salesforce to authorize.

You can choose between Salesforce production and sandbox during install. Start in sandbox if you have one - verify behavior, then redo in production.

3. Run the setup wizard

The wizard walks you through:

  • Connection - OAuth authorization with Salesforce admin credentials
  • Contact sync rules - inclusion list (which HubSpot contacts sync to Salesforce). Most teams pick “all contacts in active marketing lists” or a specific list, not “every single contact”
  • Lead or Contact - whether new HubSpot contacts become Salesforce Leads or Contacts. Most B2B teams pick Leads
  • Field mappings - standard fields auto-map. Custom fields you map manually. Pick the “source of truth” for each: HubSpot wins, Salesforce wins, or always use whichever is most recently updated
  • Deal sync - enable if you sync deals. Map HubSpot pipelines and stages to Salesforce opportunities and stages
  • Activity sync - pick which HubSpot activities flow to Salesforce (page views, form fills, email opens, etc.)

4. Initial sync

The connector kicks off a full sync. Depending on the size of your databases, this takes anywhere from minutes to a day or two. Monitor the sync health page in HubSpot - it’ll show errors per record.

5. Watch the first week

The first week is when you find the field mapping mistakes. Common issues:

  • Picklist values don’t match (HubSpot has “United States”, Salesforce has “USA”) - leads to sync errors per record
  • Required fields on Salesforce that HubSpot doesn’t populate
  • Duplicate contact creation because email matching isn’t strict enough
  • Lifecycle stage gets overwritten unexpectedly because both sides are trying to own it

Triage errors daily for the first week. Most settle into a routine after that.

Common pitfalls

Duplicate records

The single most common issue. Causes:

  • A new form submission in HubSpot creates a contact that already exists as a Lead in Salesforce, because email matching is case-sensitive or has a trailing space
  • Marketing imports a list to HubSpot that creates duplicates of existing Salesforce Contacts
  • The same person is both a Lead and a Contact in Salesforce

Mitigation: enable strict email matching, run a deduplication pass before turning on sync, use a tool like DemandTools or DupeBlocker on the Salesforce side for ongoing dedupe.

Field mapping mismatches

Picklist values are the big one. If HubSpot has free-text “Lead Source” and Salesforce has a picklist, you’ll get sync errors for every value that doesn’t match.

Mitigation: convert HubSpot fields to dropdown lists with the same values as Salesforce picklists. Or use the iPaaS path with a transformation step.

Sync timing

The native connector syncs near-real-time for most fields but isn’t truly instant. Plan on 1-10 minute delay for most updates, longer during high volume. If your workflow assumes “the moment a deal closes in HubSpot, Salesforce updates and triggers downstream automation,” build in a check.

API rate limits

Salesforce has daily API call limits (typically 15,000-1,000,000 depending on edition and license count). A large initial sync can chew through these. Schedule big imports during off-hours and watch consumption.

HubSpot also has rate limits (100 requests / 10 seconds typical, more on higher tiers). Less commonly hit but worth knowing.

Custom object handling

The native connector handles HubSpot’s standard objects (Contact, Company, Deal) and Salesforce standard objects. Custom objects on either side aren’t fully supported - you’ll need iPaaS or custom.

Pricing and cost

PathSetup costOngoing cost
Native HubSpot connectorIncluded in HubSpot Pro/EnterpriseIncluded (no extra fee)
ZapierFree to start$30-$500+/month depending on volume
MakeFree tier exists$10-$300+/month
n8n CloudFree trial$25-$500+/month per execution tier
n8n self-hostedInfrastructure setup$30-$100/month VM + ops time
Custom build2-6 weeks engineeringMaintenance: 2-10 hours/month

For a typical mid-market team, native is free, iPaaS runs $50-$200/month, and custom adds up to thousands monthly when you fully load engineering time.

Decision matrix

SituationRecommended path
Standard CRM sync (Contacts, Companies, Deals)Native
Need tickets or custom objects syncediPaaS (Zapier, Make, n8n)
Complex transformation rules requirediPaaS or custom
One-time migration with cleanup logiciPaaS or custom
20,000+ records syncing activelyNative (or custom for sub-second SLAs)
Need to involve a third system in the workflowiPaaS
Want sub-second latencyCustom
No HubSpot Pro/Salesforce API accessiPaaS

When to involve specialists

If you’re untangling a multi-system stack - HubSpot, Salesforce, plus a billing system, plus a data warehouse, plus marketing tools - and trying to figure out where each piece of data should live, that’s a strategy question before it’s an integration question. Our Efficiency Scorecard walks you through it in about 15 minutes.

For estimating what an automation project actually costs to build and maintain, the workflow cost calculator compares iPaaS pricing across Zapier, Make, and n8n at your specific volume.


If you’re untangling a HubSpot/Salesforce stack that’s drifted out of sync - or scoping a new integration before turning it on - start with the Efficiency Scorecard. It’s the fastest way to figure out which path makes sense for your specific setup.

Frequently asked questions

Is the HubSpot-Salesforce integration free?
The HubSpot side of the native connector is included in HubSpot Professional and Enterprise tiers (Marketing or Sales Hub) at no extra cost. The Salesforce side requires API access - included in Professional Edition with API access add-on, and standard on Enterprise/Unlimited. You don't pay a per-record sync fee.
Can I sync HubSpot Tickets to Salesforce Cases?
Not with the native connector. The native integration covers Contacts, Companies, and Deals/Opportunities. For Ticket-to-Case sync, use an iPaaS platform like Make or n8n, or build a small custom integration via webhooks.
How long does the initial sync take?
Anywhere from minutes (small databases under a few thousand records) to several days (hundreds of thousands of records). The connector batches and respects API rate limits, so it'll throttle itself rather than break. Monitor the sync health page in HubSpot during the initial run.
What happens to duplicates?
The native connector uses email as the primary matching key. If a HubSpot contact and a Salesforce Lead have the same email, they're merged into one synced record. If they don't match exactly (case sensitivity, trailing whitespace, typos), duplicates get created. Plan a dedupe pass before turning on sync.
Can I sync just specific HubSpot contacts to Salesforce, not all of them?
Yes. The inclusion list feature lets you pick which contacts sync - typically based on a HubSpot list. Common patterns: "only contacts in the MQL list," "only contacts with a deal," "only contacts in specific lifecycle stages." This keeps your Salesforce free of unqualified marketing leads.
What if I'm on HubSpot Starter or free?
The native Salesforce connector isn't available on those tiers. Use Zapier, Make, or n8n with the standard HubSpot and Salesforce connectors. You'll get most of the same data flow with the trade-off of paying per-task or per-execution.
Does the integration support custom fields?
Yes for standard objects (Contact, Company, Deal). You map each custom field manually in the field mapping interface and pick a source of truth. Custom objects (e.g., a Salesforce custom object for "Subscriptions") aren't directly supported by the native connector - use iPaaS for those.
How do I troubleshoot sync errors?
In HubSpot, go to Settings → Integrations → Salesforce → Sync errors. The error log lists each failed record with the reason. Most failures are validation errors (required field missing, picklist value not in the allowed list, duplicate detected). Fix the underlying data and the connector retries automatically.