FluxCascade
FeaturesConnectorsPricingDocsBlog
Sign InGet Started Free

Getting Started

  • Introduction
  • Quick Start
  • Core Concepts

Integrations

  • Overview (35+)
  • HubSpot
  • Salesforce
  • Pipedrive
  • Jobber
  • All Connectors

Field Mappings

  • Creating Mappings
  • Field Transformations
  • Bidirectional Sync
  • Conflict Resolution

Syncing Data

  • How Syncs Work
  • Scheduling
  • Webhooks
  • Error Handling

API Reference

  • Overview
  • Authentication
  • Connections
  • Mappings
  • Syncs
  • Webhooks

Guides

  • All Guides
  • HubSpot + Jobber
  • Salesforce + HubSpot
  • Pipedrive + Jobber
  • Salesforce + Jobber
  • HubSpot + QuickBooks
  • Shopify + HubSpot
  • Deals to Jobs
  • Multi-Platform Sync
  • Address Mapping
  • Phone Formatting
  • Custom Fields
  • Data Migration
  • Performance

Security

  • Data Privacy
  • Encryption
  • Compliance

Support

  • FAQ
  • Troubleshooting
  • Contact Us

Salesforce + HubSpot Integration Guide

This guide walks you through setting up a complete integration between Salesforce and HubSpot. By the end, contacts, leads, and accounts will stay in sync across both CRMs.

Overview

Goal: Keep Salesforce and HubSpot records consistent so sales teams using either platform work from the same customer data.

What You'll Set Up:

  • Salesforce Contacts synced with HubSpot Contacts
  • Salesforce Leads synced with HubSpot Contacts (with lifecycle stage mapping)
  • Salesforce Accounts synced with HubSpot Companies
  • Bidirectional updates with configurable conflict resolution

Time Required: 20–30 minutes

Prerequisites

Before starting, ensure you have:

  • [ ] A FluxCascade account (sign up free)
  • [ ] Admin access to your Salesforce org (System Administrator profile or equivalent)
  • [ ] Admin access to your HubSpot portal
  • [ ] Both platforms connected to FluxCascade

If you haven't connected your platforms yet, see the Salesforce integration docs and HubSpot integration docs first.

Step 1: Choose Your Sync Direction

Before creating mappings, decide which direction data should flow:

Option A: Salesforce → HubSpot (one-way) Best when Salesforce is your system of record and HubSpot is used for marketing.

Option B: HubSpot → Salesforce (one-way) Best when HubSpot captures inbound leads and Salesforce manages the sales pipeline.

Option C: Bidirectional (recommended for most teams) Both systems stay current. Requires conflict resolution rules.

Step 2: Plan Your Contact Field Mapping

Recommended Contact Field Pairs

Salesforce FieldHubSpot FieldNotes
FirstNamefirstnameDirect mapping
LastNamelastnameDirect mapping
EmailemailUsed for matching records
PhonephoneAdd phone_e164 transform
MobilePhonemobilephoneAdd phone_e164 transform
TitlejobtitleDirect mapping
MailingStreetaddressAddress component
MailingCitycityAddress component
MailingStatestateAddress component
MailingPostalCodezipAddress component

Lead Field Mapping

When syncing Salesforce Leads to HubSpot, the records land as HubSpot Contacts with a lifecycle stage of "Lead."

Salesforce Lead FieldHubSpot Contact FieldNotes
FirstNamefirstnameDirect mapping
LastNamelastnameDirect mapping
EmailemailMatching field
CompanycompanyDirect mapping
Statushs_lead_statusUse value mapping transform
LeadSourcehs_analytics_sourceMay need value mapping

Account ↔ Company Mapping

Salesforce Accounts correspond to HubSpot Companies. This is a separate mapping from Contacts.

Salesforce Account FieldHubSpot Company FieldNotes
NamenameDirect mapping
WebsitedomainStrip protocol with extract_domain
PhonephoneAdd phone_e164 transform
IndustryindustryDirect mapping
NumberOfEmployeesnumberofemployeesDirect mapping
AnnualRevenueannualrevenueDirect mapping

Step 3: Create the Contact Mapping

  1. Go to Mappings in FluxCascade
  2. Click New Mapping
  3. Configure the basics:

Source:

  • Connection: Your Salesforce connection
  • Object: Contacts

Target:

  • Connection: Your HubSpot connection
  • Object: Contacts

Direction: Bidirectional (recommended)

  1. Click Continue

Step 4: Configure Contact Field Pairs

Add these field pairs:

  1. First Name

    • Source: FirstName
    • Target: firstname
    • Transform: None
  2. Last Name

    • Source: LastName
    • Target: lastname
    • Transform: None
  3. Email (Matching Field)

    • Source: Email
    • Target: email
    • Transform: lowercase
    • Mark as Matching Field
  4. Phone

    • Source: Phone
    • Target: phone
    • Transform: phone_e164
    • Default country: US (or your country)
  5. Mobile Phone

    • Source: MobilePhone
    • Target: mobilephone
    • Transform: phone_e164
  6. Job Title

    • Source: Title
    • Target: jobtitle
    • Transform: None

Address Fields

  1. Street

    • Source: MailingStreet
    • Target: address
  2. City

    • Source: MailingCity
    • Target: city
  3. State

    • Source: MailingState
    • Target: state
  4. Postal Code

    • Source: MailingPostalCode
    • Target: zip

Step 5: Create the Account ↔ Company Mapping

Create a second mapping for organizations:

  1. Go to Mappings → New Mapping
  2. Source: Salesforce → Accounts
  3. Target: HubSpot → Companies
  4. Direction: Bidirectional

Add the field pairs from the Account ↔ Company table above. Use domain as the matching field for Companies (HubSpot deduplicates companies by domain).

Step 6: Configure Bidirectional Conflict Resolution

For bidirectional sync, set rules for when both systems update the same record:

Recommended Settings:

  • Overall Strategy: Last Write Wins
  • Email field: Salesforce wins – CRM of record owns email
  • Phone field: Last Write Wins – both teams may update
  • Address fields: Last Write Wins
  • Company name: Salesforce wins (if Salesforce is the org-level system of record)

Step 7: Handle Lead Sync (Optional)

If you also want to sync Salesforce Leads:

  1. Create a third mapping: Salesforce Leads → HubSpot Contacts
  2. Direction: Salesforce → HubSpot (one-way is typical for leads)
  3. Set lifecyclestage to a static value of lead on the HubSpot side
  4. Use email as the matching field

Note: When a Salesforce Lead is converted to a Contact, the Contact mapping takes over. Set up a filter to exclude converted leads from the Lead mapping.

Step 8: Test the Mapping

Before going live:

  1. Click Test Sync

  2. Review the preview showing what would sync

  3. Check for:

    • Correct field mapping
    • Expected record counts
    • Any transformation errors
    • Duplicate detection working as expected
  4. If issues appear, adjust configuration and test again

Step 9: Run Initial Sync

Once testing looks good:

  1. Click Sync Now
  2. Choose Full Sync for initial population
  3. Monitor progress in real-time
  4. Review completion statistics

Expected Results:

  • Salesforce Contacts created as HubSpot Contacts (and vice versa)
  • Salesforce Accounts created as HubSpot Companies (and vice versa)
  • Existing matches updated with consistent data

Step 10: Enable Scheduled Sync

Set up automatic syncing:

  1. Go to mapping Settings
  2. Enable Scheduled Sync
  3. Choose frequency: Every 15 minutes (recommended)
  4. Save

Repeat for each mapping (Contacts, Accounts, Leads).

Verification

Check Salesforce

  1. Open a Contact that should have synced
  2. Verify HubSpot-created contacts appear
  3. Check field values match

Check HubSpot

  1. Open a contact that should have synced from Salesforce
  2. Verify field values match
  3. Check that Company associations are correct

Review Sync Logs

  1. Go to Syncs
  2. Click on recent sync jobs
  3. Verify success rates and check for errors

Common Issues & Solutions

Duplicate Records Created

Cause: Matching field not finding existing records across systems.

Solution:

  1. Ensure email is the matching field for Contacts
  2. Enable case-insensitive matching
  3. Verify emails exist in both systems before the first sync
  4. Consider running a dedup pass before enabling bidirectional sync

Salesforce PascalCase vs. HubSpot Lowercase

Cause: Salesforce uses PascalCase field names (FirstName), HubSpot uses lowercase (firstname).

Solution: FluxCascade handles this automatically in the field selector. No manual case conversion is needed.

Account ↔ Company Domain Mismatch

Cause: Salesforce Website contains a full URL (https://example.com), but HubSpot domain expects just the domain (example.com).

Solution: Add the extract_domain transform to the Website → domain field pair.

Lead Conversion Creates Duplicates

Cause: A Salesforce Lead converts to a Contact, but the Contact mapping creates a new HubSpot record.

Solution:

  1. Filter converted leads from the Lead mapping
  2. Ensure email matching catches the overlap
  3. Use HubSpot's built-in deduplication after initial sync

Best Practices

  1. Map Contacts first, Accounts second – Get person-level data working before tackling organizations

  2. Use email as the primary matching field – Most reliable identifier shared between both platforms

  3. Keep Lead sync one-way – Salesforce → HubSpot avoids complex bidirectional lead/contact overlap

  4. Normalize phone numbers – Apply phone_e164 transforms to prevent format-based mismatches

  5. Test with a small batch – Run a test sync on a filtered subset before syncing your full database

  6. Monitor the first week closely – Check sync logs daily to catch mapping issues early

Next Steps

  • Field Transformations – Advanced data transformation options
  • Conflict Resolution – Configure bidirectional conflict handling
  • Error Handling – Handle sync failures gracefully
FluxCascade

The modern data integration platform. Connect your systems, sync your data, automate your workflows.

Product

  • Features
  • Pricing
  • Connectors
  • Changelog

Resources

  • Documentation
  • API Reference
  • Guides
  • Blog

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

Connect

  • Twitter
  • GitHub
  • LinkedIn

© 2026 FluxCascade. All rights reserved.

PrivacyTermsSecurity