HubSpot Salesforce Property & Association Errors
Two categories of sync failure that share one root cause: HubSpot is more permissive than Salesforce. Here's exactly what breaks, why, and how to fix it.
HubSpot and Salesforce have fundamentally different philosophies about data validation. HubSpot accepts almost anything. Salesforce enforces strict rules about what a field can contain, what relationships a record must have, and what order records need to exist in before associations can be created.
That gap is the source of two of the most common sync error categories: property value errors and association errors. Property value errors happen when the data inside a field doesn't meet Salesforce's requirements. Association errors happen when the relationship between records doesn't match what Salesforce expects.
Both fail silently. Both accumulate in your sync log while records stop moving. And both have clear, specific fixes once you know what you're looking at.
Part 1: Property Value Errors
What this error means
A property value error means the field mapping is correct, the right HubSpot property is connected to the right Salesforce field, but the actual value inside the field fails Salesforce's validation. Salesforce is more strict than HubSpot about what it accepts, and when HubSpot sends something Salesforce won't take, the sync fails on that record.
Common examples: HubSpot sends a text string to a Salesforce number field. A required Salesforce field receives a null value because HubSpot didn't populate it. A description field exceeds Salesforce's 255-character limit. A picklist value exists in HubSpot but not in Salesforce. A phone number contains formatting characters Salesforce doesn't accept.
The mapping isn't the problem. The data is.
The 13 types of property value errors
1. Invalid format The most common property value error. HubSpot sends a value in a format Salesforce doesn't accept for that field type. Examples: text sent to a number field, a string sent to a boolean field, wrong decimal or thousands separator format, invalid email or phone format, wrong URL structure, or a HubSpot date value (which is UTC-based) sent to a Salesforce datetime field that expects a different format.
2. Null or missing required value Salesforce requires a field that HubSpot didn't populate. The sync sends the record without the required value and Salesforce rejects the entire update. Common required fields that trigger this: Lead Source, Lead Status, Close Date on Opportunities, Stage Reason on closed deals, and required picklist fields that HubSpot left blank.
3. Value exceeds maximum length Salesforce text fields have character limits, standard text fields cap at 255 characters, though custom fields can be configured with different limits. HubSpot's equivalent fields often have no length restriction, meaning long descriptions, URLs, or free-text values that look fine in HubSpot exceed Salesforce's limit on sync.
4. Unsupported special characters or encoding issues Salesforce rejects certain characters that HubSpot accepts without issue. This includes emojis, multi-byte characters, smart quotes (the curly quotation marks that word processors insert automatically), HTML tags embedded in text fields, and hidden whitespace characters that come from copy-paste operations or data imports. These are invisible in the HubSpot UI but present in the underlying data.
5. Invalid picklist value The value HubSpot is sending exists in HubSpot's dropdown but doesn't exist in Salesforce's picklist for that field. Salesforce rejects any value not in its defined list. This overlaps with picklist mismatch errors but originates specifically from the property value, the mapping is correct, the value is wrong. See the Picklist Value Mismatch guide for the full resolution process.
6. Multi-select format error HubSpot sends multi-select values as comma-separated strings. Salesforce requires semicolon-separated values for multi-select picklists. Every multi-select field in your sync is affected by this formatting difference until it's explicitly corrected.
7. Boolean or checkbox mismatch HubSpot represents boolean values as "true" or "false" strings in some contexts. Salesforce checkboxes may expect "1" or "0", or may not accept null values for a checkbox field. When the representation doesn't match, the sync fails on every checkbox field it touches.
8. Invalid lookup or reference value HubSpot is sending a record ID or owner reference that Salesforce can't resolve. The OwnerId references a user who is inactive or doesn't exist. An AccountId references a record that was deleted. A lookup field points to a record outside the integration user's visibility. Salesforce rejects any reference it can't validate.
9. Hidden legacy HubSpot values HubSpot stores historical values in properties even after those options are hidden or removed from the UI. Records created or updated before a picklist option was removed still carry the old value in the database. HubSpot doesn't display it, but it syncs it — and Salesforce rejects it because the value no longer exists in its picklist.
10. Dirty data from imports Data imported into HubSpot from spreadsheets, third-party tools, or legacy CRM migrations often carries formatting inconsistencies: wrong capitalization, invalid phone formats, extra spaces, trailing commas, malformed email addresses. HubSpot accepts these on import. Salesforce rejects them on sync.
11. Validation rules blocking the value A Salesforce validation rule fires when HubSpot tries to write a value not because the value is wrong in isolation, but because it violates a conditional requirement. Examples: Stage Reason is required when Stage = Closed Lost, State is required when Country is populated, a contract start date must be after today. The value HubSpot sends is technically valid, but the combination of values doesn't satisfy the rule.
12. State/Country standardization conflicts If Salesforce has State and Country picklist standardization enabled, it only accepts values from its defined ISO-standard list. HubSpot uses free text for address fields by default. "USA" instead of "United States", "CA" without a valid paired country, "UK" instead of "United Kingdom" — all rejected. Salesforce also requires Country to be populated if State is provided.
13. Managed package value requirements Packages like CPQ, Pardot, Conga, Gainsight, and FinancialForce enforce their own value requirements on fields they manage. HubSpot has no visibility into these constraints, so it sends values that pass standard Salesforce validation but fail the package's additional rules.
How to diagnose property value errors
Step 1: Read the exact error message. Go to HubSpot → Settings → Integrations → Salesforce → Sync Errors. Click View Details on the failing record. The error message will typically say "Invalid value", "Value not allowed", "Value does not meet field requirements", "Required field missing", "Value exceeds maximum length", or "Invalid reference Id". Record the exact Salesforce field name and the value HubSpot attempted to send.
Step 2: Check the Salesforce field configuration. In Salesforce, go to Object Manager → select the object → Fields & Relationships → find the field. Check: field type, character length limit, whether the field is required, any validation rules referencing it, picklist allowed values if applicable, and any dependent picklist relationships.
Step 3: Inspect the actual value in HubSpot. Look at the property value on the failing record in HubSpot. Check for hidden whitespace (copy the value into a plain text editor to reveal it), deprecated options that are no longer visible in the UI, manual entries that don't match the field's expected format, and workflow-generated values that may have been created by outdated automation.
Step 4: Check automations writing to this field. Review HubSpot workflows, Salesforce Flows, Apex Triggers, Process Builder automations, and any external tools (Zapier, Make, custom APIs) that write to the failing field. An automation that generates invalid values will regenerate the error after every fix until the automation itself is corrected.
Step 5: Check field dependencies. Determine whether the failing field has conditional requirements tied to other fields. Common dependencies: Stage Reason required when Stage = Closed Lost, State required when Country is populated, a required date when record type = Customer. If a dependency exists, HubSpot needs to populate both fields, not just the one that's failing.
Step 6: Verify integration user permissions. Field-level security gaps often surface as "Invalid value" or "Cannot update field" errors rather than permission errors. Confirm the integration user has edit access to the specific field on the specific object.
How to fix property value errors
Clean and standardize data in HubSpot. For dirty data from imports or manual entry, use HubSpot lists to identify records with invalid values, then use bulk property edits or workflows to normalize them. Focus on: capitalization, whitespace, special characters, phone and email formatting, and URL structure.
Replace invalid values with allowed values. For picklist, checkbox, and multi-select fields, identify every record carrying an invalid value and replace it with a value that exists in Salesforce. Use HubSpot's bulk edit or a workflow with enrollment criteria targeting the invalid value.
Add default values for required fields. For Salesforce fields that are required but that HubSpot doesn't naturally populate, add a HubSpot workflow that sets a default value before the record syncs. If a field like Lead Source or Lifecycle Stage is required in Salesforce, ensure every HubSpot record has a value before it's eligible for sync.
Update Salesforce validation rules. For rules that enforce UI-only logic, add an integration user bypass condition: $User.Username != 'integration@yourorg.com'. Use ISNEW(), ISCHANGED(), and PRIORVALUE() to make rules conditional rather than absolute. Make fields conditionally required in the UI without enforcing the same requirement on API writes.
Fix multi-select formatting. Ensure multi-select values are semicolon-delimited before they reach Salesforce. Update any HubSpot workflow or integration configuration that builds multi-select strings to use semicolons instead of commas.
Fix lookup and reference fields. For invalid OwnerId references, reassign records to active users before syncing. For broken AccountId or ContactId lookups, identify the correct record in Salesforce and update the reference. For records associated with deleted parents, reassign or clean the association before the next sync attempt.
Remove hidden legacy values. Use HubSpot's property history and list filters to surface records still carrying old picklist values that are no longer valid. Bulk update them to valid current values. Don't rely on hiding the option in HubSpot — the value persists in the data until it's replaced.
Align Country/State values to Salesforce's ISO standard list. If your Salesforce org uses State and Country picklist standardization, update HubSpot's address fields to use the exact values from Salesforce's accepted list. Consider using HubSpot's Country and State dropdown properties rather than free-text fields to enforce valid values at entry.
Common pitfalls
HubSpot accepts anything, Salesforce doesn't. The gap between the two platforms' validation standards is the source of most property value errors. Anything that enters HubSpot without validation, imports, manual entry, API writes from third-party tools, can contain values Salesforce will reject.
Hidden characters break validation invisibly. A value that looks correct in HubSpot may carry invisible whitespace, smart quotes, or encoding artifacts that Salesforce rejects. Always check the raw value, not just the displayed value.
Automation regenerates invalid values after correction. The most common reason property value errors return after a fix: a workflow, Flow, or external tool is writing the invalid value back to the record. Always audit automations writing to the failing field before marking the error resolved.
Validation rules intended for UI block API updates. Rules built for human data entry often don't have API exceptions. A RevOps Manager who didn't build the rule may not know it exists. Always check validation rules when the field configuration looks correct but the error persists.
Part 2: Association Errors
What this error means
An association error occurs when HubSpot tries to create or update a relationship between records — a Contact associated to a Company, a Deal associated to a Contact, an Activity associated to an Account, and Salesforce cannot complete that association.
The core mismatch: HubSpot's association model is flexible. A Contact can be associated with multiple Companies. A Deal can exist without a Company. Custom association labels can connect almost any object pair. Salesforce's association model is strict. A Contact can have one Account. An Opportunity requires an Account. Lookup fields must reference valid, existing records. Parent records must exist before child records can be associated to them.
When HubSpot's flexible associations hit Salesforce's strict requirements, the sync fails.
The 12 types of association errors
1. Parent record missing HubSpot tries to sync a Deal associated to a Company, but Salesforce can't find the corresponding Account. Or a Contact is syncing but its Company hasn't synced yet, so Salesforce has no Account to associate the Contact to. Salesforce requires the parent record to exist before it can create the child association.
2. Multiple companies associated to a contact HubSpot allows a Contact to be associated with multiple Companies. Salesforce supports exactly one Account per Contact. When HubSpot syncs a Contact with multiple Company associations, Salesforce rejects or ignores all but one, and the sync error appears because the mapping can't resolve which one to use.
3. Invalid lookup ID Salesforce lookup fields require a valid record ID. If the ID HubSpot is referencing doesn't exist in Salesforce — because the record was deleted, because the record is outside the integration user's visibility, or because the ID is malformed, Salesforce rejects the lookup.
4. Child record syncing before parent record HubSpot syncs records in an order that doesn't match Salesforce's dependency requirements. A Deal syncs before its associated Company has synced, so Salesforce has no Account to attach the Opportunity to. A Contact syncs before its Account exists. Salesforce blocks the association because the parent record isn't there yet.
5. Restricted association type HubSpot supports custom association labels that have no equivalent in Salesforce. When HubSpot tries to create an association using a label or relationship type that Salesforce doesn't recognize, or that doesn't have a corresponding lookup field, the sync fails.
6. Unsupported association structure Salesforce doesn't support many-to-many relationships between standard objects without a junction object. HubSpot's flexible association model allows structures Salesforce simply doesn't have the schema to represent multiple parent Accounts, custom object relationships without a lookup field, or association types that exist in HubSpot with no Salesforce equivalent.
7. Duplicated associations HubSpot tries to create an association that already exists in Salesforce, generating a duplicate key error or a conflict resolution failure. This often happens when records are resynced after a cleanup and the association was already present from the original sync.
8. Required relationships missing Salesforce enforces required relationships that HubSpot doesn't. An Opportunity requires an Account. A Case requires a Contact. Some Salesforce orgs require an Opportunity Contact Role before a deal can progress. HubSpot doesn't enforce these requirements, so it syncs records that Salesforce rejects for missing a required relationship.
9. Deleted parent record A parent Account or Contact was deleted in Salesforce after child records were already associated to it. When HubSpot next tries to sync an association to that deleted parent, Salesforce returns an invalid reference error.
10. Sync direction restrictions The association sync is configured to flow in one direction only, either HubSpot → Salesforce or Salesforce → HubSpot. HubSpot tries to push an association in the blocked direction, or Company sync is disabled entirely, preventing any Company-level associations from being created.
11. Invalid custom object relationships HubSpot tries to associate a custom object record to another object in a way that requires a lookup field or master-detail relationship in Salesforce that doesn't exist. Without the corresponding lookup field in Salesforce's schema, the association has nowhere to land.
12. Pipeline-specific restrictions Some Salesforce orgs enforce pipeline-level rules: an Account is required on all Opportunities, Contact Roles are required before a deal can advance, or a specific record type restricts which associations are valid. HubSpot doesn't enforce Opportunity Contact Roles, so Deals that require them in Salesforce fail to sync correctly.
How to diagnose association errors
Step 1: Read the exact error message. Common messages: "Parent record does not exist", "Invalid reference Id", "Association type unsupported", "Required relationship missing", "Account ID is required for this Opportunity", "Contact cannot have more than one Account". The error message usually identifies which association failed and what Salesforce expected.
Step 2: Identify the parent-child relationship. Determine what type of association is failing. Is this a Contact that needs an Account? A Deal that needs a Company synced first? A custom object that requires a lookup field? Map the expected relationship before attempting any fix.
Step 3: Verify the associated record exists in Salesforce. Check whether the parent record the HubSpot association is pointing to actually exists in Salesforce, wasn't deleted, is visible to the integration user, and has the correct ID. A broken association often traces back to a parent record that's missing or inaccessible.
Step 4: Check required relationships in Salesforce configuration. Confirm which relationships Salesforce requires for the object type. Opportunities require Accounts. Cases require Contacts. Some custom configurations require Opportunity Contact Roles. These requirements must be met before the child record can sync.
Step 5: Check HubSpot associations on the failing record. Look at the record in HubSpot. Does it have multiple Companies associated? Is it a Deal with no Company? Does it use a custom association label that doesn't map to anything in Salesforce? HubSpot's flexibility is the most common source of association errors in Salesforce.
Step 6: Check sync order. If child records are syncing before their parent records, adjust the sync configuration or trigger parent syncs first. HubSpot's sync doesn't always respect Salesforce's dependency order automatically.
Step 7: Check Salesforce validation rules on associations. Look for rules that enforce relationship requirements: "Opportunity must have a Primary Contact Role", "Account must be active before association", "Record cannot be associated with an inactive Account". These rules block association writes the same way they block field writes.
Step 8: Check sync direction settings. Confirm that association sync isn't restricted to one direction in a way that blocks the update HubSpot is attempting. Check whether Company sync is enabled, if it's disabled, Contact-to-Account associations can't be created.
How to fix association errors
Sync parent records before child records. Ensure Companies sync before Contacts, and Contacts/Companies sync before Deals. If sync order is causing the issue, trigger a manual sync of the parent record first, then resync the child record.
Set a single primary company on contacts with multiple associations. For Contacts associated to multiple HubSpot Companies, designate one as the primary Company and remove or unassociate the others before the Contact syncs to Salesforce. HubSpot's primary association setting controls which Company maps to the Salesforce Account.
Fix invalid or broken lookup IDs. For broken AccountId, ContactId, or OwnerId references, identify the correct record in Salesforce and update the lookup. For records associated with deleted parents, reassign the child record to an active parent before resyncing.
Map associations correctly in field mappings. Ensure Deal-to-Company and Contact-to-Company associations are explicitly mapped in HubSpot's integration settings. Missing association mappings are a common cause of Opportunities syncing without an Account in Salesforce.
Add missing required relationships before syncing. For Opportunities that require an Account, ensure the Company association exists in HubSpot and is syncing correctly. For Salesforce orgs that require Opportunity Contact Roles, add them in Salesforce after the Opportunity syncs, or configure a Salesforce Flow to add them automatically on Opportunity creation.
Update Salesforce validation rules to allow integration user writes. For rules that enforce association requirements at the UI level, add bypass conditions for the integration user. Use $User.Username != 'integration@yourorg.com' or a custom bypass field to exempt API-created associations from rules designed for human data entry.
Clean up inactive or deleted parent records. Identify child records in HubSpot that are associated to Companies or Contacts that no longer exist as active records in Salesforce. Reassign them to active parents before the next sync.
Align custom object relationships to Salesforce's schema. For custom object associations, verify that a corresponding lookup field exists in Salesforce before attempting to sync the association. If no lookup field exists, create one before enabling the association sync.
Fix automation writing invalid associations. Review HubSpot workflows, Salesforce Flows, and external integrations that create or update associations. Any automation assigning invalid Account IDs, creating multi-company associations on Contacts, or connecting records without valid parent records will regenerate association errors after every fix.
Common pitfalls
HubSpot's flexible associations don't translate to Salesforce. The single biggest source of association errors. Everything that's valid in HubSpot's association model needs to be evaluated against Salesforce's strict relationship requirements before configuring the sync.
Contacts with multiple Companies are the most common association blocker. Salesforce supports one Account per Contact. If your HubSpot database has Contacts associated to multiple Companies, which is common in ABM or enterprise sales motions — every one of them will fail to sync correctly until the primary association is explicitly set.
Sync order causes cascading failures. When child records sync before their parents, the association fails and the child record lands in Salesforce as an orphan. The parent then syncs, but the association isn't retroactively created. Both records exist in Salesforce but are disconnected. This is one of the hardest association errors to clean up after the fact.
Deleted parent records create permanent orphans. Once a parent Account is deleted in Salesforce and child Contacts or Deals lose their association, those child records can't be reassociated to the deleted parent. They need to be manually reassigned to a valid Account before they'll sync correctly again.
Opportunity Contact Roles are invisible to HubSpot. If your Salesforce org requires Opportunity Contact Roles, HubSpot will never create them automatically. Deals that require OCRs to advance will stall in Salesforce with no obvious connection to HubSpot's sync.
If you're working through these errors and not clearing them, book a call with our team — we'll get into your sync configuration and find the root cause.
Key Takeaways
Property value errors and association errors share one root cause: HubSpot accepts data that Salesforce won't. The fix is almost never in the connector — it's in the data, the automation writing the data, or the Salesforce configuration enforcing rules that HubSpot doesn't know about.
For property value errors: the mapping is usually correct. Check the value itself — its format, its length, whether it exists in Salesforce's picklist, whether it carries hidden characters. Then check what automation created or last touched it.
For association errors: HubSpot's flexibility is the problem. Every multi-company Contact association, every Deal without a Company, every custom association label with no Salesforce equivalent is a sync failure waiting to happen. Audit your HubSpot association model against Salesforce's strict relationship requirements before the errors compound.
In both categories: always audit automations before marking an error resolved. A fix without an automation audit produces the same error on the next sync cycle.




