Change of main record from Contact to Company

Hi all,

My company is using Contacts as the main record for our users. Eg when a user registers in our platform becomes automatically a Contact in HubSpot. All of our sales teams work only with Contacts and Deals. We now want to leverage Companies as well for 2 main reasons:

1. Our users can have multiple contact people or accounts that are now disconnected around the portal. They can move under a Company and be associated

2. We want to use a specific tool for contracts and we need the Company object that will be overarching to the secondary contacts, to be the main object that contracts live.

We have almost 3 milllion contacts in HubSpot and the plan is roughly to create a Company for every contact, and if more contacts are related, associate them under 1 Company.

Main risk I see here:
If we use an automation to create a Company for every Contact, how can I correctly manage the secondary contacts that will always create a company (through workflows)? I have thought of deleting records if that occurs but it seems quite manual

Has anyone been through a similar migration and are there any tips that could help me?

Hi @Efigiann,

It sounds like this here may be a good solution for your situation: Automatically create and associate companies with contacts

HubSpot would look at the email domain and not create duplicates, like a workflow would. You’ll of course have company duplicates after if companies have multiple domains, but those would show up in the duplicates tool: Deduplicate records in HubSpot

Before making any of these changes, I highly recommend two things:

The reason this is so import is that the setting above (similarly to your considered workflow solution) cannot be reversed. Once associations are established, it’s a lot of work cleaning them up or change their overall logic.

Let me know if you have any follow-up questions!

Hi @Efigiann ,
@karstenkoehler is spot on. Turn on “Automatically create and associate companies with contacts” so HubSpot uses the email domain to create a company once and associate the rest, instead of a workflow that makes one company per contact (Automatically create and associate companies with contacts).

Add all known domain aliases on each Company so contacts from those domains roll up to the same record. Exclude free email providers.

For the 3M you already have, I wouldn’t create a company per contact and delete later.
Better: export unique domains, create the Companies by domain, then import Associations so existing Contacts attach cleanly. HubSpot’s multiple-object import supports creating or updating with associations and labels, using Record ID or domain as the key (Understand the import tool)

Do this in a sandbox first and pause any workflows that trigger on company creation.

After go-live, use the Duplicates tool to catch multi-domain orgs and merge, then maintain a small allowlist or blocklist for edge domains that should or shouldn’t auto-associate (Deduplicate records in HubSpot)

For what it’s worth, we actually built Stacksync to handle the cross-system side of this. If your contracts tool needs Company as the anchor, we keep HubSpot and that tool in real-time two-way sync with proper associations, and teams usually cut integration maintenance by ~40%.
Happy to walk you through a quick pilot if helpful. Hope this helps