I’m working on configuring the Salesforce integration, and am running into an issue that I’m hoping someone can help me solve. Here’s my use case:
I want to “seed” a new Salesforce org with all of the Companies that exist in my HubSpot org. Ideally, I would upload these as Accounts in Salesforce, with all of the relevant data (including their HubSpot Company ID).
I do not want to have all of the associated Contacts existing in Salesforce yet, so I would use the inclusion list on the HubSpot side to limit which Contacts are synced.
The issue I’m seeing: once I add a Contact to the inclusion list, it syncs to Salesforce - but a new Account is created rather than the Contact being associated to the existing Account that I had previously seeded the org with. My assumption here is that there is not yet a Salesforce Account ID value set in HubSpot for the Contact’s associated Company, so the integration is not able to make the connection between the Company and the existing Account.
I was hoping to pre-populate the HubSpot Companies with the Salesforce Account ID values, but that field is read-only and is only controlled by the integration.
Any ideas for how I can potentially get around this?
Hi @FourFold_Sltns, I’ve encountered this scenario play out a few times with HubSpot ↔ Salesforce integrations. The main challenge to this is identity mapping: Contacts sync correctly only if their associated Accounts already have the Salesforce Account ID in HubSpot. A common pattern is to stage-sync Companies first, then apply external ID logic for Contacts, which avoids duplicate Accounts. I’m curious, have you tried seeding only Companies first and holding off on syncing Contacts?
@JoeA14 thanks for your response!
I would love to use the integration to seed only the Accounts (and therefore establish that Salesforce Account ID connection). However, from my testing, a Company is only synced once it has an associated Contact that syncs. It would be great if I was wrong about this - open to any feedback you have here.
Thanks for clarifying, yes, you’re right to test this carefully. In the native HubSpot ↔ Salesforce integration, ‘Companies’ in HubSpot usually don’t create Accounts in Salesforce on their own; the Account mapping is typically triggered by syncing a Contact.
Because the Salesforce Account ID on a HubSpot Company is read-only and integration-controlled, a new Contact can’t automatically link to an existing Account unless that relationship exists first.
Teams typically solve this by either:
Seeding Accounts from Salesforce first, then letting HubSpot pull them in; or
Doing a very controlled initial Contact sync to establish the Account linkage.
Advanced setups sometimes use middleware to handle identity timing, but that adds complexity.
Just curious — are you running a Salesforce-first or HubSpot-first system of record?
I’ve worked extensively with HubSpot-Salesforce integrations, and you’re encountering a classic identity mapping challenge. The core issue is that the native integration needs a Contact sync event to trigger the Account/Company relationship establishment.
Here are two proven approaches:
Option 1: Reverse the Flow (Salesforce → HubSpot)
Instead of seeding from HubSpot to Salesforce, create the Accounts in Salesforce first with your desired data structure. Then configure the integration to pull those Accounts into HubSpot as Companies. This automatically establishes the Salesforce Account ID mapping on the HubSpot side. Once that’s done, you can safely sync Contacts using your inclusion list—they’ll correctly associate with the existing Companies.
Option 2: Strategic Initial Contact Sync
If you must go HubSpot → Salesforce, identify one Contact per Company (preferably a primary contact or company owner) and sync just those initial Contacts. This will create both the Account in Salesforce AND establish the Account ID mapping in HubSpot. After this initial sync completes, you can then expand your inclusion list to sync additional Contacts—they’ll properly link to the existing Accounts.
Technical Note: The Salesforce Account ID field in HubSpot is integration-managed and read-only by design. You cannot pre-populate it manually, even via API. The integration must write it during a sync event.
In my portal configurations, I typically use Option 1 when doing initial migrations, as it gives you more control over the Account structure before bringing Contacts into the equation.
Which direction is your system of record—are you building from HubSpot data or Salesforce data?
@amjadkhatri thank so much for the detailed response!
We are building from HubSpot data. The HubSpot org is currently in use, but the Salesforce org is new. So you’re second suggestion is definitely more relevant here. I’ll see if I can work with our data to narrow the inclusion list down to a single contact per company.