How HubSpot contact-to-company matching works in Default
A HubSpot matching workflow in Default runs these steps:- 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.
- Match Record finds the Company. Set Record to Company, then match on property values or turn on Match by association.
- Tiebreakers pick 1 Company. When several companies qualify, the rules under Prioritize matched records by choose 1.
- The node branches. Match carries the Company’s ID and properties to later nodes. No Match runs when no Company qualifies.
- 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.
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.
Build a workflow that links new contacts to their company
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.
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:- Add Match Record with Record set to Contact, matched on Email from the trigger.
- 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.
- 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.
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