Skip to main content
Default matches HubSpot contacts to companies inside a workflow. A Match Record node finds the Company either by property values, such as the Company Domain Name compared with the domain of the contact’s email, or with Match by association, which looks up the companies already associated with a contact an earlier step found. Create Association then links a contact to the company it matched. Matching is built from workflow nodes, so each rule can be tested and each decision shows in the run logs. The nodes are documented in CRM nodes. To find or create the contact first, see HubSpot contact matching. For a signal that names a company but no person, see Salesforce account and HubSpot company matching.

How HubSpot contact-to-company matching works in Default

A HubSpot matching workflow in Default runs these steps:
  1. A trigger or earlier step supplies the contact. Use CRM Record Created or CRM Record Updated on the HubSpot Contact, or a Match Record step that found the contact from form or API data.
  2. Match Record finds the Company. Set Record to Company, then match on property values or turn on Match by association.
  3. Tiebreakers pick 1 Company. When several companies qualify, the rules under Prioritize matched records by choose 1.
  4. The node branches. Match carries the Company’s ID and properties to later nodes. No Match runs when no Company qualifies.
  5. Later nodes act on the result. Create Association links the contact to the matched Company, and other nodes can use the Company’s properties, such as its owner.

Ways to match a HubSpot contact to a company

Match by association and Match Details do not combine:
  • With Match by association on, the node ignores Match Details and considers only records associated with the Source record. The workflow can be published without match conditions.
  • With it off, Match Details needs at least 1 condition before the workflow can be published.
  • Match by association does not check HubSpot association labels. Any associated company counts, so use the primary company ID method when the primary company matters.
Match Details lists the properties you can filter on for the chosen object, including custom properties. Record ID and the contact’s primary company ID are always offered, even though HubSpot treats them as system properties.
Use domain matches instead of contains string on Company Domain Name and website properties. domain matches ignores https://, www., paths and subdomains, never matches a lookalike such as companyhp.com for hp.com, and never matches a public email provider such as gmail.com. See Match an account by company domain.

When several HubSpot companies match

A domain can belong to more than 1 Company record, for example a parent and its subsidiaries, and a contact can be associated with more than 1 company. Prioritize matched records by picks 1. Select Add tiebreaker: How Default applies the rules:
  • Only when 2 or more companies match. When exactly 1 company matches, the node uses it and runs no rule. Put a hard requirement in Match Details instead.
  • In order, top to bottom. A sort rule directly below another sort rule breaks its ties. Empty values sort last.
  • Filter rules narrow the list but never empty it. Has a parent company and Prefer records where… keep only the companies that meet them. When none of the remaining companies meets a filter rule, Default skips that rule, keeps the companies for the next rules, and adds a warning to the run log. Tiebreakers never send the node to No Match.
  • Without rules, the first result wins. Default takes the first company HubSpot returns, and that order is not defined. With Match by association and no rules, that is the first associated company.
  • Rules see a limited window. With tiebreakers, Match by association compares up to 100 associated companies. Property matches read a limited number of results too, and the run log warns when that limit is reached.

When no HubSpot company matches

The node follows No Match in these cases: Personal email addresses also end on No Match, so do not create a company straight from this branch. Leave the contact unlinked for review, or send it to an enrichment node that can find the company first. This example links each new HubSpot contact to the Company with the same domain, unless the contact already has an associated company.
1

Add the trigger

In Workflows, create a workflow and add the CRM Record Created trigger. Set CRM to HubSpot and Record to Contact.
2

Check for an existing association

Add Match Record from the Records section. Set CRM to HubSpot and Record to Company. Turn on Match by association, set Source record type to Contact, and choose the contact’s record ID from the trigger as Source record.Leave the Match branch empty. The contact is already linked.
3

Match the company by domain

On the No Match branch, add a second Match Record for Company with Match by association off. Under Match Details, select Edit, choose Company Domain Name and domain matches, pick the contact’s Email from the trigger, and choose Domain from email. Select Save changes.Under Prioritize matched records by, add Largest by employees and then Most recently modified.
4

Associate the contact with the company

On the second node’s Match branch, add Create Association. Set From record type to Contact and From record to the contact’s record ID from the trigger. Set To record type to Company and To record to the Company’s ID from the second Match Record step. Leave Association type set to Default.
5

Handle contacts without a company

Leave the second No Match branch empty, or add an enrichment node to find the company.
6

Test and publish

Select Test, choose the trigger, and fill in a sample contact whose email domain belongs to an existing company. Select Run Test and check the contact’s companies in HubSpot. Then select Publish and check that the status next to the deployment switch reads Live. A new workflow goes live when you first publish it. If the status reads Paused, turn the switch on.
A workflow test performs real actions in HubSpot. Use a test contact.
Choose Labeled as the Association type only when your HubSpot account uses a specific association label for this relationship, then pick it under Label.

Find the company for a contact an earlier step matched

A form or API workflow usually matches the contact by email first. The company lookup can then start from that contact:
  1. Add Match Record with Record set to Contact, matched on Email from the trigger.
  2. On its Match branch, add Match Record with Record set to Company, turn on Match by association, set Source record type to Contact, and choose the contact’s ID from the first Match Record step as Source record.
  3. Later nodes can use the Company’s properties. For example, a Display Scheduler node can use the Company owner as a custom host, so the person books with the rep who owns the account.
On the contact’s No Match branch, match the company by domain instead, because a new contact has no associations yet. To find or create the contact itself, see HubSpot contact matching.

Check and troubleshoot HubSpot company matching

Open the workflow, select Runs at the top, and select a run. Each Match Record step shows its conditions and the record it chose. See Run logs. Related: Lead routing software from Default