Platform Guides

Fix HubSpot to Salesforce Data Sync Issues

HubSpot-Salesforce sync failures are almost always caused by dirty data: duplicate contacts, field mapping mismatches, picklist conflicts, and phone format inconsistencies. Learn how to identify the root causes and clean your data before it breaks the sync.

March 2026·10 min read

Why HubSpot-Salesforce Sync Breaks So Often

The HubSpot-Salesforce native integration is one of the most widely used CRM sync connectors in the world, and it is also one of the most frequent sources of data quality complaints. Marketing teams use HubSpot. Sales teams use Salesforce. The sync is supposed to keep both systems in harmony. In practice, it creates a steady stream of sync errors, duplicate records, and data conflicts that consume hours of operations team time every week.

The integration itself is not broken. The problem is the data. HubSpot and Salesforce have different data models, different validation rules, different field types, and different expectations for how data should be formatted. When data flows from one system to the other without cleaning, the mismatches trigger sync failures. Records that fail to sync create a growing backlog of errors that becomes increasingly difficult to resolve.

According to data from RevOps teams we have worked with, the average HubSpot-Salesforce sync has a 5-15% error rate on any given sync cycle. For a database of 100,000 contacts, that means 5,000 to 15,000 records are failing to sync at any time. These are not theoretical numbers. These are real contacts that sales cannot see, real leads that marketing cannot track, and real revenue opportunities that fall through the cracks.

Root Cause 1: Duplicate Contacts Across Both Systems

Duplicates are the number one cause of sync chaos. When the same person exists as multiple records in HubSpot, the sync creates multiple contacts or leads in Salesforce. When the same person exists as multiple records in Salesforce, HubSpot may match to the wrong one, overwriting good data with bad data, or it may create yet another duplicate.

The duplication pathways are numerous. Form resubmissions create duplicates in HubSpot. Web-to-lead forms create duplicates in Salesforce. Manual data entry by sales reps creates duplicates in Salesforce. List imports from marketing campaigns create duplicates in HubSpot. And the sync itself can create duplicates when it fails to match an existing record and creates a new one instead.

The matching logic compounds the problem. HubSpot syncs to Salesforce primarily on email address. If a contact in HubSpot has a different email than the corresponding lead in Salesforce (because the person used their personal email in one system and work email in another), the sync treats them as different people. You end up with two records in Salesforce for one real person.

How to Fix It

Deduplicate both systems before enabling or repairing the sync. Start with HubSpot: merge duplicate contacts using email as the primary key, then name plus company as a secondary match for contacts with different emails. Then deduplicate Salesforce: merge duplicate leads and contacts using the same criteria. Only after both systems are clean should you let the sync run.

For ongoing duplicate prevention, establish which system is the "source of truth" for each data field. If marketing owns email addresses (HubSpot), do not let Salesforce overwrite them. If sales owns phone numbers (Salesforce), do not let HubSpot overwrite them. Our deduplication guide covers the matching and merging strategies in detail.

Root Cause 2: Field Mapping Mismatches

HubSpot and Salesforce have different field structures, and mapping them correctly is harder than it appears. HubSpot uses a flat contact record with properties. Salesforce has a multi-object model with Leads, Contacts, Accounts, and Opportunities, each with their own fields. A single HubSpot contact property may need to map to different Salesforce fields depending on whether the person is a Lead or a Contact.

Common field mapping problems include:

Data type conflicts: A HubSpot text field mapped to a Salesforce number field. If the HubSpot field contains "~500" or "$1,200" or "about 50", the sync fails because these are not valid numbers. Every record with non-numeric text in that field will error.

Character length limits: HubSpot text fields can hold up to 65,535 characters. Salesforce standard text fields are limited to 255 characters. If a HubSpot field contains more text than the Salesforce target field allows, the sync truncates the data or fails, depending on the configuration.

Required field gaps: Salesforce may have required fields that HubSpot does not. When a HubSpot contact is missing data for a required Salesforce field, the sync fails for that record. This is the most common sync error and the hardest to diagnose because the error message often does not clearly indicate which required field is empty.

// Common field mapping conflicts:

HubSpot "Annual Revenue" (text: "$1.2M") → Salesforce "AnnualRevenue" (currency: expects 1200000)

HubSpot "Description" (5000 chars) → Salesforce "Description" (255 char limit) = TRUNCATED

HubSpot "Company" (empty) → Salesforce "Company" (required) = SYNC FAIL

Fix: Clean data to match target field types BEFORE syncing

How to Fix It

Audit every field mapping in your HubSpot-Salesforce integration settings. For each mapping, verify that the data types are compatible, the character lengths are compatible, and the values in the source field are valid for the target field. Export both systems' data, compare the fields side by side, and clean the source data to match the target requirements.

For required field gaps, the solution is either to make the Salesforce field non-required (if your admin allows it), set a default value in the sync mapping, or ensure every HubSpot record has a value for that field before it syncs. Creating a HubSpot workflow that flags contacts missing required Salesforce fields is an effective preventive measure.

Root Cause 3: Picklist and Dropdown Value Differences

Picklist (dropdown) fields are one of the most frequent sync failure triggers. Both HubSpot and Salesforce support dropdown fields with predefined values, but the values rarely match exactly between systems. HubSpot might have an "Industry" dropdown with "Software" as an option, while Salesforce's Industry picklist uses "Technology" or "Computer Software." These are the same concept but different values.

When a HubSpot dropdown value does not match any value in the corresponding Salesforce picklist, the sync either fails for that record or maps the value to blank, which can be worse. A blank Industry field in Salesforce means lost segmentation data and broken reports.

The problem is compounded by Salesforce's picklist validation. If a Salesforce admin has enabled "restrict picklist to defined values," any value that does not exactly match a predefined option is rejected. If validation is not enabled, the mismatched value syncs through but creates a non-standard value that breaks Salesforce reports and dashboards.

Common picklist mismatches include:

// Picklist value mismatches:

HubSpot Lead Status: "New", "Open", "In Progress", "Closed"

Salesforce Lead Status: "New", "Working", "Nurturing", "Closed - Converted"

"Open" and "In Progress" have no Salesforce match → sync error

HubSpot Country: "United States", "UK", "Deutschland"

Salesforce Country: "US", "GB", "DE"

"United States" does not match "US" → sync error or blank

How to Fix It

Create a complete value mapping table for every picklist field in your sync. Document every HubSpot value and its corresponding Salesforce value. For values that do not have a direct match, decide whether to create a new Salesforce picklist value, map to the closest existing value, or map to a catch-all like "Other." Then clean the HubSpot data to ensure every value has a valid mapping before syncing.

Country fields deserve special attention. Standardize all country values to ISO 3166-1 alpha-2 codes (US, GB, DE, FR) in both systems. This eliminates the ambiguity of full names, abbreviations, and localized names. Similarly, standardize state fields to two-letter abbreviations.

Root Cause 4: Phone Format Conflicts

Phone number formatting is a surprisingly common sync breaker. HubSpot stores phone numbers as free-text strings, so the same phone number appears in dozens of formats: (555) 123-4567, 555-123-4567, +1 555 123 4567, 5551234567, and so on. Salesforce also stores phone numbers as text by default, but many Salesforce implementations have validation rules that enforce a specific format.

If your Salesforce admin has created a validation rule requiring phone numbers to match a specific pattern (e.g., must start with a plus sign, must be exactly 12 characters, must not contain parentheses), every HubSpot phone number that does not match that pattern will fail to sync. In a typical database, the failure rate for phone number validation can be 30-60% because the formats are so inconsistent.

Even without Salesforce validation rules, inconsistent phone formats cause problems. Salesforce duplicate detection may fail to match "+15551234567" with "(555) 123-4567" because they look different as strings, creating duplicates. Reports that filter or group by phone become unreliable.

How to Fix It

Standardize phone numbers to E.164 format in HubSpot before they sync to Salesforce. This means stripping all formatting characters, adding the country code, and validating the digit count. If your Salesforce has a phone format validation rule, make sure the E.164 format matches it, or update the validation rule to accept E.164. Our E.164 conversion guide covers the process for every common phone format.

Root Cause 5: Email Formatting and Validation

Email is the primary key for HubSpot-Salesforce sync matching. When email data is dirty, matching fails and duplicates proliferate. Common email issues that break the sync include leading or trailing whitespace (invisible but prevents matching), mixed casing (technically case-insensitive but causes comparison failures in some sync configurations), and invalid email formats that pass HubSpot's lenient validation but fail Salesforce's stricter checks.

The whitespace problem is particularly insidious. An email address with a trailing space like "user@example.com " looks identical to "user@example.com" in most interfaces but fails exact-match lookups. The sync sees these as different emails, creates a new record instead of updating the existing one, and you have a duplicate that is nearly impossible to find by visual inspection.

How to Fix It

Trim all whitespace from email fields in both systems. Lowercase all emails. Validate email format and remove clearly invalid addresses (missing @, invalid domains). Run the email validator on your HubSpot export to catch typos and invalid addresses before they create sync problems. Our guide to removing invalid emails covers the validation process comprehensively.

The Pre-Sync Cleaning Checklist

Before enabling or repairing a HubSpot-Salesforce sync, run through this cleaning checklist. Addressing these issues proactively eliminates the vast majority of sync errors.

1. Export and deduplicate both systems independently. Merge duplicates in HubSpot first, then in Salesforce. Match on email as primary key, name plus company as secondary.

2. Trim whitespace and fix casing on all email fields. Lowercase all emails. Remove leading, trailing, and invisible whitespace characters.

3. Standardize phone numbers to E.164 in both systems. Ensure the format matches any Salesforce validation rules.

4. Map all picklist values between systems. Create a mapping document for every dropdown field. Fix any values that do not have a valid target mapping.

5. Fill required Salesforce fields. Identify which Salesforce fields are required and ensure every HubSpot record that will sync has values for those fields.

6. Validate data types. Ensure number fields contain only numbers, date fields contain valid dates, and text fields do not exceed character limits.

7. Standardize country and state values. Use ISO codes in both systems to eliminate format-based mismatches.

For detailed platform-specific cleaning instructions, see our guides on cleaning data for HubSpot and cleaning data for Salesforce.

Ongoing Sync Hygiene

Cleaning your data before the initial sync is necessary but not sufficient. Data gets dirty continuously. New leads enter HubSpot from forms, ads, and imports. Sales reps manually create and edit records in Salesforce. Without ongoing hygiene, the same sync errors will return within weeks.

Implement a weekly or bi-weekly sync error review. HubSpot's sync dashboard shows failed records and error messages. Export the error list, identify the most common error types, and fix them in batches. Track the error rate over time. It should trend downward as you clean up systematic issues and implement validation rules to prevent new dirty data.

Create HubSpot workflows that validate data before it syncs. A workflow that checks for required field values, valid phone formats, and matching picklist values can prevent records with known issues from entering the sync queue. This shifts the error detection from post-sync (reactive) to pre-sync (proactive).

For organizations that do regular bulk data operations (list imports, migration batches, annual database cleanups), cleaning every CSV before importing it into either system prevents the sync from inheriting data quality problems from external sources. Our CRM migration cleaning guide covers the complete workflow for clean data imports.

How NoSheet Sits Between HubSpot and Salesforce

NoSheet serves as the cleaning layer between your CRM systems. Export your data from HubSpot or Salesforce, run it through NoSheet to fix every issue on the pre-sync checklist, and import the clean data back. The CSV Cleaner handles whitespace, encoding, and formatting in one pass. The deduplication tool merges duplicate records with configurable matching rules. The phone formatter standardizes every phone number to E.164.

For organizations doing regular sync maintenance, NoSheet's batch processing handles exports of any size in seconds. Export your HubSpot contacts, clean them in NoSheet, and re-import. Export your Salesforce leads, clean them in NoSheet, and re-import. Do this bi-weekly and your sync error rate will drop to near zero.

The key insight is that sync failures are data quality problems disguised as integration problems. Fixing the integration configuration does not help when the data itself is dirty. Clean the data first, and the sync works as designed.

Fix Your HubSpot-Salesforce Sync Issues

Upload your CRM export and NoSheet will fix the data quality issues that cause sync failures. Deduplicate, standardize, and validate in seconds.

Clean Your CRM Data Now