How to Build Company or Account Hierarchies through Relationships
Marketing and sales teams depend on well-structured data to provide context during client interactions and prospect discussions. Without established parent-child company hierarchies, your team loses critical organizational insight and may overlook significant business opportunities.
Using Insycle, you can systematically identify and build hierarchical relationships between subsidiary companies and their parent organizations in bulk.
When the parent and subsidiary records you want to link are already present in your CRM, use the Associate app. To link new records during CSV import, use the Magical Import module.
Tips for Creating Relationships between Companies
Identify Parent Companies In Your Database
You will need a convention for identifying parent companies in your CRM. Without this, there is no way to associate them in bulk.
Common approaches include:
- Adding an identifier to parent company names, such as "HQ." This is what the filter in the example template is looking for. For example, the Parent Company value could be, "Microsoft HQ."
- Adding a custom field to manually tag parent companies before making the relationship.
- Using other fields, such as opportunity amounts, to automatically identify and tag parent companies.
There may be other ways to identify parent companies; it will depend on your data and situation.
Associate Child and Parent Companies With the Associate App
The Associate app can associate records that already exist in your database.
Process Summary
- Filter records down to those you want to associate.
- Set rules for making the associations.
- Optionally, copy a value between the associated records.
- Preview and apply the changes to the CRM.
Step-by-Step Instructions
Navigate to RevOps Acceleration > Associate.
Select the database and Companies record type from the top menu, then explore the templates for an existing solution. The Associate child to parent companies pre-built template can provide a good starting point that can be customized to fit your specific needs.
Under Step 1, configure the filter to find company records that might be child companies. Here, companies that do not have an associated Parent Company, and the Company Name does not include the value “hq" will be included in the results. This method assumes that parent company names will be appended with "hq" to denote that they are parent companies.
When you click Search, Insycle will list records that match the filter criteria in the Record Viewer at the bottom of the page. If you make changes to the filter, you'll need to click the Search button again to refresh the viewer.
In Step 2, you set up the rules that tell Incycle what records to use, fields to look at, and what criteria the values must meet in order to consider them a match for creating the relationship.
1. The Action tells Insycle what to do to the records that surfaced in Step 1. Add is used to create new child-parent company associations, or you can Remove existing associations. In HubSpot, you can Replace existing associations with new child-parent associations based on your matching rules.
2. Association specifies the type of record you want to create the relationship with. This template uses the Company to Company option.
3. Hubspot users will see a Labels field which is used to name the relationship. Here, this is set as Child to Parent.
4. The Companies Filter is used to narrow the company records down to those that might be parent companies. To identify these, this filter will only look at companies that have “HQ” in the company title. Update this filter to match the convention established for identifying parent companies in your CRM.
5. Click the Selection button to define rules for choosing the company if there are multiple matches found. When you add multiple selection rules, the criteria are evaluated in order, one at a time. The first record that matches is considered the correct match, and no further rules are checked.
The next two rows are rules that tell Insycle what values to use to identify company matches:
6. The first Companies Field is the field from the child record you want to try and match with the parent record.
7. The second Companies Field is the corresponding parent company field to be matched with the child record.
In this template, Insycle will try to match the child Company Name value to the parent Company Name value, and the child Company Domain Name will be matched to the parent Company Domain Name. The two matching fields are often the same for both the parent and child companies unless you are using a custom field to track an identifier.
To be considered a match, the values will have to meet the Comparison, Ignored, and Match Parts rules:
8. The Comparison Rule tells Insycle whether the values between the company records must be an Exact Match or Similar Match. This example uses Exact Match, but you can learn more about these Comparison Rules in the Pro Tip below.
9. Ignored settings can specify parts of a field value to ignore, such as specific text, whitespace, or characters. In the dropdown, check the box for the values you'd like to ignore.
In the template, the first Ignore rule tells Insycle to ignore a list of Common Terms that may appear in the Company Name field such as "HQ," "Inc." or "LLC." To view or alter the list of Common Terms, click the Terms button at the bottom of this section (see below).
In the second row, the Ignore rule says to ignore the Sub Domain in the Company Domain Name field values. For example, if the company is Microsoft, "www.microsoft.com," "dev.microsoft.com," and "app.microsoft.com" would all be considered matches. To also consider "www.microsoft.co.uk" as a match, add the Top-Level Domain (Extension) Ignore option.
10. The Match Parts field tells Insycle whether to match the entire field or just part of it—such as the first or last few words, or first and last characters.
11. The Ignored "Common Terms" can be edited using the Terms button.
After setting the association rules in Step 2, you can create rules to copy values between the company records. If you want to ensure some values are consistent between the linked records, such as the record owner, you can execute that copy in bulk.
Under Step 3, select the field from the source record type (in this example, the child company), and the relevant field on the target records (the parent company). You can choose to copy values from the source company (child) to the target company (parent), or target company to the source.
The Copy Rule gives you three options:
- Only when [the record you're linking to] field is empty (in this case, parent companies)
- Only when [the record you're linking from] field is not empty (child companies)
- Always copy
The preview CSV will include these fields and specify if the value was copied for each record.
Preview Changes in a CSV Report
Now, with the filters and association/linking actions in place, you can preview the changes you are making to your data. That way, you can check to ensure the relationships are being created as expected before making those changes in your live database.
Under Step 4, click the Review button, then select Preview in the popup.
On the Notify tab, add any additional recipients who should receive the CSV (and make sure to hit Enter after each address). You can add colleagues and additional context here.
On the When tab, click the Run Now tab and select which records to apply the change to (in most cases, this will be All), then click the Run Now button.
Open the CSV file from your email in a spreadsheet application and review the columns.
For each company record that didn't already have a Parent Company value, nor "HQ" in the Company Name, Insycle tries to match it with another company record using the name and domain values. Each row in the CSV includes the result of the association step, the child and parent company info, field values that were matched, and details on the copy operation.
Apply Changes to the CRM
If everything in your CSV preview looks correct, return to Insycle and move forward with applying the changes to the live CRM data.
Under Step 4, click the Review button, select Update mode, then click Next.
On the When tab you can choose to run and apply the update now, or you can set up an automation to run the template regularly. The first time you apply these changes to the CRM, we suggest you Run Now.
In the Run Now tab, you can control how many records to run the template on. Click Run Now to apply the changes to your CRM.
Save Templates and Setup Automation
After you've seen the results in the CRM and you are satisfied with how the operation runs, you can save all of the configurations as a template, and set up automation so this association process runs on a set schedule.
By automating with a template, you'll save time and ensure that your company records are consistently associated on an ongoing basis.
You can create multiple templates for different types of associations, and bundle them together using Recipes. Additionally, Hubspot users can integrate Recipes into HubSpot Workflow Builder.
In Step 2, the Comparison Rule defines what kind of likeness to look for when deciding if field values should be considered a match for association.
It's a good idea to start with Exact Match for the straightforward matches, then use Similar Match to broaden the search and look for edge cases.
Exact Match looks for values that match exactly, with no differences from one record to the next. Any unique identifying fields should use Exact Match.
Similar Match looks for values that may be close but with a one-character difference (like a typo, extra character, or missing character) and broadens the search. This search behaves like when Google shows results for a slightly different term or says “Did you mean...”
For example, if a Company Name of, “Acme” is found, it could include records with the Company Name values, “Akme," "acm," or "Acma,” as matches.
Similar Match uses looser criteria that cast a wider net for what can be considered matches. Make sure to carefully review the results to ensure the relationships being created are what you're expecting.
If using ID fields to match, note that they will only work with Exact Match, not Similar Match.
Associate Child-Parent Companies from a CSV Using the Magical Import Module
If you have a CSV file containing data to be imported as new records, use the Magical Import module to associate child companies to existing parent companies in your database when you import.
When you have a CSV file with data for importing as new records, leverage the Magical Import module to link subsidiary companies to existing parent organizations during the import process.
Process Summary
- Choose the CSV file.
- Configure CSV column mapping to CRM fields and define the import mode for each field.
- Set the unique matching criteria.
- Configure rules to establish associations between CSV and CRM records.
- Import the data with the configured associations into your CRM database.
Step-by-Step Instructions
Navigate to Data Management > Magical Import. Select the database and the record type in the top menu. Then choose the CSV file that you would like to import.
Loading a file into Insycle does not automatically import it into the CRM. Instead, you can modify the data in various ways before actually importing it into the CRM.
The Preview panel will display the CSV rows, with a column for each field.
Browse the templates to see if there's already a configuration saved for your specific import task.
AI-Powered Automatic Mapping
If you have AI enabled for your object type with at least "Meta" access, Insycle automatically uses AI to analyze your CSV column names, suggesting CRM mappings and matching criteria. This happens after loading your CSV.
The AI only accesses metadata, not actual record data.
Review and Adjust Field Mappings
If AI is enabled, the Data Mapping section will automatically expand after your CSV is processed. If AI is not enabled, you can manually expand this section by clicking on the Data Mapping heading.
Insycle automatically identifies and maps matching CRM fields, with the second row displaying the mapped CRM field names.
If your CSV includes fields that don't match any CRM fields, a red warning icon will appear at the top of the column. These unmapped fields need to be assigned manually by selecting the correct CRM field from the Not Mapped dropdown. Fields left unmapped won't be imported.
To exclude columns from the import, hover over the column name and click the “X”.
When there are issues with row data, a red warning icon will appear on the left side of the Preview row. Hovering over the icon will display an explanation of the error. Records with errors will not be imported. Learn how to resolve common errors in the Troubleshooting section below.
Define How to Import Values for Each Column
With all relevant fields mapped, tell Insycle how to handle the data on a field-by-field basis by selecting the Import Mode in the third row of the table.
The four Import Modes: Update, Fill, Overwrite, and Append—offer different ways to import CSV data into your CRM, ranging from updating existing records, filling empty fields, replacing data, to adding new information.
Review and Confirm Fields for Matching CSV Rows to CRM Records
If AI is enabled, it will propose Matching Criteria based on your CSV columns and CRM fields. Review these suggestions, as Matching Criteria determine how Insycle compares your CSV data with CRM records to identify matches.
Matching Criteria are unique identifiers such as email, phone, address, or ID number, which generally belong to one individual. For instance, Maria Smith's email or ID shouldn't be associated with someone else. If a record matches any of these fields, it is identified as Maria Smith.
You can adjust the AI suggestions or manually select the Matching Field. Multiple matching rules can be created and evaluated in sequence from top to bottom, enabling multi-criteria matching.
Note that when you use a domain field, Insycle will automatically cross-reference any other domain fields in the records for a match. If you use an email field, Insycle will check additional email fields.
When you set up your Matching Criteria rules, the Preview will update to show which records are already in your CRM. The records identified by Insycle will appear as blue links that open the corresponding record in your CRM.
In addition to creating associations, you can utilize the many other tools and features available to manipulate your CSV data before importing it into your CRM. Learn more about using these features in the Magical Import Module Overview.
Format and Clean Up Data Prior to Import
Apply formatting changes and other standardization updates to the CSV data in Insycle before uploading it to your CRM. Discover how to transform your data during the import process.
Exclude Data That Doesn’t Meet Validation Criteria
Use Data Validation to filter out records that don't meet your quality standards, or to target a segment before importing them into your CRM.
Make Updates to Matching CRM Records
Use Bulk Update to add a value to CRM fields, even if the field is not included in the CSV. This will add the same value for all the imported records.
Control Date Formats
You can override Insycle's automatic date standardization under Data Mapping using the Date Format tab.
Make Individual Edits in Preview
You can also make one-off changes to values directly in the Preview. Hover over a value and click the pencil icon.
Click the Data Operations heading to expand the section, then click the Associate tab.
Configure the rules that will establish the hierarchy between the two company records:
- Action determines how Insycle handles the records in the Preview. Select “Add" to make this association during the import.
- Associate specifies the type of record you want to create a relationship with. Choose Company to Company.
- With HubSpot, the Labels field is used to identify the relationship. Select Child to Parent.
- In the CSV Column field, select the field from your CSV to use to identify matches. When associating child with parent companies, you would likely choose the Company Domain or Company Name field from your CSV import.
- On the Match Field, select the field in your CRM database that should match your CSV value. For example, if you are using the “Company Domain” field from the CSV, you'd want to match that to the “Company Domain Name” field in your CRM.
- Additionally, you have the option to create a new record in your CRM when there is no match automatically found by Insycle by checking the Create when no matching is found box.
Select CSV Rows for the Operation
By default, Insycle will attempt to import all of your formatted CSV data into your database. Leave the checkboxes blank to import all of the records. If you only want to apply the association to a few records—perhaps to test it out before importing the entire CSV—return to the Preview and check the boxes beside the desired records.
Configure the Import
At the bottom of the Magical Import page, configure the Import.
Select the Records Mode to tell Insycle how the imported data should be handled during the import process:
- Update existing and create net new – If Insycle is unable to find a corresponding company record in your CRM, a new record will be created.
- Only update existing – If a corresponding company record is found, it will be updated with the data from your CSV import. CSV rows that do not match an existing CRM record will not be imported.
- Only create net new – Only records that can not be matched with an existing record in your CRM database will be imported. Company records that already exist will not be updated.
Import the Data
When you click the Import [X] Companies button, you'll be prompted to confirm.
⚠️ Note that there is no preview step. Once you confirm, the data will be imported into your CRM database immediately.
After the import completes, the Import Result summarizes the import information—how many records you tried to import and how many succeeded, failed, were updated, deleted, or unmodified. Click the Run ID to open a CSV record of the import.
After reviewing the results in your CRM and are satisfied with how the operation runs, you can save all of the configurations as a template to easily reproduce the same import and associate operation in the future.
Insycle uses Matching Criteria to compare the CSV with your CRM data and identify existing records for the same entity. Matching Criteria are rules based on unique identifiers that typically belong to only one entity, such as:
- Company domain
- Company name
- Company email address
- Phone number
- ID number
- Street address
Note that when using a domain field, Insycle will automatically cross-reference any additional domain fields in the records for a match. If using an email field, Insycle will check additional email fields.
You can set multiple matching rules that are evaluated in order from top to bottom. This allows you to find matches based on various criteria, all in one step.
For example, you could use the following criteria to match company records:
- Company Domain Name
- Company Name + Phone Number
- Company Name + State/Region + Street Address
Insycle attempts to match each CSV record using the first rule. If no match is found, it proceeds to the next rule, continuing until either a match is found or all rules are exhausted (in which case the CSV record is considered new or unique).
For best results, place your most precise matching criteria at the top of your rule list. Additionally, keep in mind that while names can be included as part of the matching criteria, they should be used in conjunction with other identifiers, as multiple individuals may have the same name.
Important Note
Though you can select more than one field in each Matching Criteria rule, it is important to note that ALL of the fields must match, not just one or some of them. If you include five fields and four of them match, but one doesn't, Insycle will not consider the rule a match.
Typically, it is best to use a single field for your first Matching Criteria to improve the likelihood of finding existing records in your CRM. Then you can add additional rules to match multiple fields.
If AI is enabled for your object type, many warning icons may automatically disappear after the initial CSV processing. Remaining warning icons indicate issues that still need your attention.
If there are issues with a CSV row, a red warning icon will appear at the left end of the row and next to the relevant field in the Preview. Rows with errors will not be imported.
To learn what the problem is and determine steps to resolve it, hover over the red exclamation mark—an explanation of the error will display.
Several common reasons for the warning icon include:
- Your validation rules
- Several records match your criteria
- Invalid picklist values
- Invalid reference values
- Unmapped columns
Your validation rules. A row will show warnings and be excluded from the operation based on your validation rules. The warning info will list which rules apply to the row.
There are several records in your CRM that match. If multiple records have the same Matching Criteria, Insysle identifies these as matching records in your CRM.
If there should be only one record with this value, you may need to first merge duplicates and then try importing again.
If there are legitimate reasons for a Matching Field value to exist in more than one record, try adding additional Matching Criteria to make it more specific.
Invalid reference values. If a column is mapped to a CRM field that references other data, such as owners or associated record IDs, and no match is found, an error will appear.
Invalid picklist values. If a CRM field includes dropdown options and the data in your CSV does not match, you'll see an "Invalid picklist value" error. This value needs to be changed to match the dropdown options in your CRM.
To quickly fix the import data directly in the Preview, hover over a value and click the pencil icon.
Once you've selected your Matching Criteria, filter options will become available in the Preview. You can use the Show Only Warning Rows filter to view only rows with warnings.
Advanced How-Tos
Incorporating company hierarchy data in your CRM can be a game-changer. This information is crucial for understanding the structure and relationships within and between organizations.
However, records with multiple levels of hierarchical associations aren’t automatically linked together in a chain or nested like matryoshka dolls. Instead, you create different types of parent-subsidiary relationships.
One: Create Custom Fields to Capture Information About Relationships
In your CRM, create a custom property to capture the extended relationship info. In this example, we're using a "Parent Company" property and creating a custom property, "Grandparent Company."
Two: Create a CSV File Containing Relationship Information
This CSV file is configured for companies that already exist in your CRM. Use the existing record IDs to fill in the Parent Company ID and Grandparent Company ID info.
Three: Import the CSV data into your CRM
Use the Magical Import module to bring CSV data into your CRM, mapping the Parent Company ID and Grandparent Company ID columns to the new Parent Company and Grandparent Company CRM fields.
Under Data Operations on the Associate tab, you can create child-parent associations using the record IDs.
Once run, you'll see the parent-child relationships in your CRM.
Four: Create a Custom HubSpot Label for the Grandchild-Grandparent Relationship
When using HubSpot, additional steps are needed to create a labeled association.
In your HubSpot company settings, create a new label. For this example, we’ll use “Grandchild Company” and “Grandparent Company.”
Create A pair of labels where many companies can have the “Grandchild Company” label, and only one company can have the “Grandparent Company” label.
Five: Make Grandchild-Grandparent Associations
Use the Associate app to associate grandchild with grandparent companies.
For complete step-by-step instructions, see the Associate Child and Parent Companies with the Associate App section above.
Tip: Using ZoomInfo
If you don’t have the company hierarchy data, you can use a business data service like ZoomInfo, which integrates directly with HubSpot. Once you’ve integrated the platforms, you can use Insycle’s Associate app to leverage the ZoomInfo data to make the relationships.
The process of checking Salesforce hierarchies and re-creating them in HubSpot is labor-intensive, costly, and an easy way to introduce errors. Challenges arise from the inherent differences in how these platforms structure and manage data, as well as the complexities involved in syncing information across multiple systems.
In Insycle, there are a couple steps you can take to optimize and automate this process.
First, you can use a custom ID to ensure relationships between child and parent companies are consistent between HubSpot and Salesforce, in bulk and automatically.
Then, you can use the filters in the Associate app to segment the companies from both CRMs, and make the process run more efficiently.
Setting Up the Custom ID Property
In HubSpot, create a custom property to hold parent company ID information. This new field must be a “dropdown select” field type.
In Salesforce, add a new sync rule and mapping to share Salesforce’s parent company ID with HubSpot. On the HubSpot-Salesforce integration page, go to the field mappings for the Company property, and set the Salesforce Parent ID field mapping to “Always use Salesforce.”
Now you can go to Insycle and use the Associate app to create the child-parent relationships in bulk.
Configuring the Association Using the New Property
In Step 1, filter your HubSpot records to find those that don’t have a parent company, and do have a listed Salesforce Parent ID.
The Salesforce ID is an 18-character alphanumeric value. When using this ID as the matching key, Insycle has to crawl through this string for the child and parent companies, comparing all 18 characters for each record on both sides. This can take a long time to complete.
To optimize the matching process, you can limit the number of characters Insycle examines for comparison. Instead of analyzing all 18 characters of the Salesforce ID, you can instruct Insycle to compare only the last 9. This method makes matching run about 300 times faster!
In Step 2, configure the association settings using the new Salesforce Parent ID property and the Salesforce Account ID field. Use the Match Parts parameter to only look at the Last 9 Characters.
Then save a template and set up automation to ensure the company hierarchies automatically remain consistent from here on.
If no matching record is found, you can choose to automatically create a new record based on what is in the source record. The option is located in a different place in each module.
Associate App
Under Step 2 of the Associate app, check the Create new [record] when no matching is found box to enable, then select the field to use for naming the new record.
Magical Import Module
In the Magical Import module on the Associate tab under Data Operations, check the Create when no matching is found checkbox to enable.
Troubleshooting
When Insycle detects multiple potential matches for a single record during association, it marks those records as 'Failed' in the CSV report to prevent incorrect links. You will also see a Message similar to "Multiple target matches (x)..." or "Multiple source matches..."
For example, if you were associating contacts with companies, and Insycle found ten company records named "Microsoft," it wouldn't know which Microsoft to establish the relationship with, so this would fail.
There are a few options for resolving this issue:
Merge duplicates: If there shouldn't be multiples of these records, you should first go through the process of merging duplicates before trying to create the relationships.
Add parameters to be more specific in the Associate app: If there are supposed to be multiple similar but distinct records, there are several features in Step 2 of the Associate app that you can use to refine the criteria:
-
Add a second field. A record would have to match both field values to be considered appropriate for making the relationship.
-
Use the filter. This will narrow the set of records to be associated.
For example, in the filter popup, you can add the "Company name" field and set the parameters to "contains" and "HQ." This tells Insycle to only consider companies for association if the Company Name value includes the term "HQ." -
Add Selection rules. In cases where there are multiple target records that could match, you can add Selection rules to choose the appropriate record.
When you add multiple selection rules, the criteria are evaluated sequentially, one at a time. If a record meets the first criterion, the remaining rules do not affect the selection. The first record that matches is considered the appropriate match, and no further criteria are checked.
For example, you can create rules in the selection pop-up to choose the record where the Lifecycle Stage is 'Customer'; if there is no single match, then select the record with the most associated deals, and so on. -
Add a Condition field. Add a Condition to your second matching rule to create more specific criteria. For example, to remove contact-to-company associations where the contact's country doesn't match the company's country, add a condition that Country/Region must not match.
An "Unmodified" Result with the Message "Unmodified, no matching record found (use 'Grid Edit' to troubleshoot)" result occurs when there aren’t any records that meet your matching specifications.
You can examine the data in the unmatched records and troubleshoot using the Grid Edit module. Look at different fields and values to identify why your associate setup didn’t work for the record. Then decide what match options could work or if some cleanup is needed.
Learn more about reviewing your data using the Grid Edit module.
When using the Associate app, you have the option under Step 2 to Count unmatched records as Failed. When checked, any record where there is no match to create the association will be counted as failed. This will be reflected by a "Failed" Result with the Message "No matching record found (use 'Grid Edit' to troubleshoot)" in the CSV report.
You can examine the data in the unmatched records and troubleshoot using the Grid Edit module. Look at different fields and values to identify why your associate setup didn’t work for the record. Then decide what match options could work or if some cleanup is needed.
Learn more about reviewing your data using the Grid Edit module.
Frequently Asked Questions
Insycle does not automatically know what company the parent is. You have to make that clear through the data itself. A common way of tagging the parent company is to include "HQ" in the company name field. Or, you can create a custom field and manually tag parent companies before bulk associating with relevant child companies.
Yes. If no matching record is found, you can choose to automatically create a new record based on what is in the source record.
In the Associate app, under Step 2, check the Create new [record] when no matching is found box to enable, then select the field to use for naming the new record.
In the Magical Import module on the Associate tab under Data Operations, check the Create when no matching is found checkbox to enable.
Yes. For information about making child-parent associations from a CSV file, see the Associate Child-Parent Companies from a CSV Using the Magical Import Module section above.
Additional Resources
Related Help Articles
- App Overview: Associate
- Link and Associate People to Companies
- Associate Contacts, Companies, Deals from CSV by Matching Property Values
- Lead to Account Matching and Association Best Practices
Related Blog Posts