HubSpot’s Missing Salesforce ID error has a specific meaning: HubSpot tried to send a value to a Salesforce reference or lookup field, but the value did not identify an existing Salesforce record. Start with the mapped field and the value on the affected record. A company name that looks right on screen, for example, may still be only a label rather than the record ID Salesforce expects. HubSpot classifies this as a property-mapping error and defines it separately from other Salesforce sync failures.
The safest path is to confirm the exact Sync Health message, inspect the property’s internal value, verify that it points to the right record in the connected Salesforce org, and test one corrected record before doing anything in bulk.
First confirm which sync error you have
HubSpot groups Missing Salesforce ID and Invalid Salesforce ID under property-mapping errors, but documents different causes. It also distinguishes both from duplicate-rule and other sync failures. Read the exact error card and its affected-record details in the Salesforce integration’s Sync Health before editing a field or rule.
| Error shown in HubSpot | What it points to | First check |
|---|---|---|
| Missing Salesforce ID | A value sent to a Salesforce reference/lookup field is not an existing Salesforce record ID. | Inspect the mapped property’s internal value and confirm the target record in the connected org. |
| Invalid Salesforce ID | HubSpot directs admins to check a Salesforce custom validation rule. | Review the Salesforce rule and the exact error details; see the validation-rule diagnostic. |
| Duplicate id specified | A custom mapping may include a Salesforce Lead or Contact ID field that the integration manages automatically. | Review custom mappings; do not create a second mapping for the system-managed ID. |
| Salesforce duplicate rule | A Salesforce deduplication rule rejected the record operation. | Inspect the matching and duplicate rules; see the duplicate-rule diagnostic. |
These messages call for different investigations. A validation-rule problem is not fixed by changing a lookup ID; a restricted picklist problem is about allowed option values, not a Salesforce record reference. See the separate restricted-picklist guide if that is the error Sync Health reports.
Inspect the field mapping and the actual property value
In HubSpot, open Settings → Integrations → Connected Apps → Salesforce → Data sync, choose the relevant object, and review its property mappings. Confirm the Salesforce field is a reference/lookup field and identify the HubSpot property mapped to it. Check the configured sync rule and look for another standard or custom mapping that could also write to the same field.
Then inspect the affected record’s value for that property. If it is a dropdown, compare the value HubSpot actually sends—the option’s internal name—with the text displayed as its label. HubSpot’s mapping guide says Salesforce reference-field values appear in HubSpot as 18-digit record IDs, while dropdown labels can hold the human-readable names. A label such as “Northwind Parent Account” is useful to a person, but it is not a substitute for the ID in the internal value.
Do not edit the mapping just because the visible label looks unfamiliar. First establish which property and value produced the error. If the field should represent a different relationship, decide who owns that relationship and which system is authoritative before changing a mapping that may affect more records.
Illustrative example: a HubSpot dropdown shows “Northwind Parent Account,” but its internal option value is also the words “Northwind Parent Account.” The mapped Salesforce field is a lookup to Account, so Salesforce expects a record reference, not that label. An administrator verifies the intended Account in the connected org, changes only the internal value to the correct record ID, and keeps the readable label for users. If the internal value already contains an ID, do not rewrite it yet; first confirm the org, object, exact characters, and target record.
If you need a refresher on the relationship type itself, the article Salesforce Lookup vs. Master-Detail Relationships explains the Salesforce-side distinction. This troubleshooting path is narrower: it checks a value sent through the HubSpot integration.
Verify the ID in the connected Salesforce org
Use the Salesforce record page or a Salesforce report to obtain and check the identifier. Salesforce’s field-type documentation describes a lookup as a relationship to another record. Confirm that the record is in the same Salesforce org connected to HubSpot, that the lookup field expects that kind of record, and that the ID belongs to the intended target. A value copied from a different sandbox, a different Salesforce org, or an unrelated object is not made valid by looking like an ID.
Salesforce documents 15-character case-sensitive IDs and 18-character case-safe IDs. The 18-character form adds characters that preserve the casing of the first 15; APIs can return either format depending on the API version and settings. HubSpot’s current mapping guidance uses 18-digit IDs for Salesforce reference-field values in HubSpot. Do not lowercase, trim, truncate, or “repair” an ID in a spreadsheet. Verify the exact value against Salesforce and preserve its original characters.
Also check whether the property contains a friendly label, an external key, or an old ID for a record that was replaced or removed. Those may be meaningful to your team, but the documented Missing Salesforce ID condition is about a value that does not identify an existing Salesforce record for the reference field.
Correct only the confirmed source
- Record the exact Sync Health error, affected object and record, mapped Salesforce field, HubSpot property, sync direction, and time of the failed attempt.
- Compare the property’s internal value—not just its display label—with the intended Salesforce record ID.
- Confirm the ID in the connected org and verify that the referenced record matches the lookup field’s target.
- Correct the smallest confirmed issue: the internal dropdown value, a stale or wrong reference value, or a mapping that has been reviewed for scope and ownership.
- Return to Sync Health and resync one affected record. Verify both that the error clears and that the Salesforce relationship points to the intended record.
When adding or changing a mapping, first check whether the same property or Salesforce field is already mapped. HubSpot warns that overlapping mappings can write multiple fields, overwrite values, or cause sync loops. Review the mapping and update rule in HubSpot’s settings before changing it. If the issue affects many records, determine why the same bad value was assigned before resyncing a larger set.
Prevent the lookup value from drifting again
Keep an owner for each mapped reference property and document where its values come from. When using a HubSpot dropdown for a Salesforce reference field, maintain the pair between the visible label and the internal Salesforce ID whenever a referenced record is added or changed. HubSpot notes that these option pairs need ongoing maintenance.
For migrations or sandbox-to-production changes, review reference-field values and mappings against the destination org before enabling a broader resync. The same visible label can refer to different records across environments, so a copy of a dropdown by itself does not prove that its internal IDs are correct.
One-record verification checklist
- Sync Health explicitly reports “Missing Salesforce ID.”
- The mapped Salesforce field is a reference/lookup field, and the expected target object is known.
- The HubSpot property’s internal value contains the intended Salesforce record ID, not only a label.
- The ID was verified in the connected Salesforce org and its original case and characters were preserved.
- Only one affected record was resynced, then the saved Salesforce relationship was checked.
Keep record IDs and customer data inside your approved HubSpot and Salesforce accounts. You do not need to share customer records to diagnose this mapping error.
How did this article land?
Choose one reaction. You can change it anytime.