How to Merge Duplicate HubSpot Contacts, Companies, Deals, Tickets, and Other Object Types
Insycle's Merge Duplicates module identifies and combines redundant contacts, companies, deals, tickets, and custom objects in HubSpot. This article explains all available options, rules, and settings—covering matching logic, master record selection, field retention, automation, and HubSpot-specific behaviors. Use it as a reference when working in the module or to understand how various settings affect your merge results.
For a step-by-step walkthrough of using the module, see the Deduplicate HubSpot Contacts, Companies, and Deals in Bulk article.
Supported HubSpot Object Types
Insycle supports merging the following HubSpot object types:
- Companies
- Contacts
- Courses
- Deals
- Leads
- Line Items
- Listings
- Orders
- Tickets
- Custom Objects
You can select the object type you would like to work with in the top menu of the module.
HubSpot Merge Logic Explained
How Data Is Consolidated When Bulk Merging
The following describes how data is consolidated using the default merge method for each HubSpot object type:
Contacts
- Record ID: A unique Record ID is created for the new resulting merged record (contacts always use Native merge).
- Email address: The email address from the master record becomes the primary, and the duplicate email addresses are added as additional email addresses.
-
Fields/Property values:
- To customize how field data is retained in the master record on a field-by-field basis, use the Field tab under Step 3.
- By default, the value is retained from the master. When a value is empty in the master, it picks a non-empty value from the most recently updated duplicate. All other values are available in the history.
- Multi-select picklist fields: All selected values from duplicate records and the master are automatically consolidated into the master record. For example, if the master record has the value "Newsletter" and a duplicate has the value "Product Updates," the merged record will contain both "Newsletter" and "Product Updates."
- Certain specific fields are uniquely handled by HubSpot. These will trigger special messages in the CSV that indicate how values are retained. See the table "Special CSV messages for select HubSpot contact fields" below for details.
- Associated deals, contacts, companies, and any other objects: Reassigned from the duplicates to the master.
- Activities (notes, emails, tasks, etc.): Reassigned from the duplicates to the master.
- Attachments: Reassigned from the duplicates to the master. (Note that there may be a short delay before the attachment appears in the merged record.)
Companies
- Record ID: The Record ID from the master record is kept when HubSpot-Salesforce sync is enabled (uses Synthetic merge by default). Otherwise, a unique Record ID is created (uses Native merge by default).
- Domains: Copied from the duplicates into the master and appended as secondary domains to avoid future duplicates with the same domain.
-
Fields/Property values:
- To customize how field data is retained in the master record on a field-by-field basis, use the Fields tab under Step 3.
- By default, the value is retained from the master. When a value is empty in the master, it picks a non-empty value from the most recently updated duplicate. All other values are available in the history.
- Multi-select picklist fields: All selected values from duplicate records and the master are automatically consolidated into the master record. For example, if the master record has the value "Newsletter" and a duplicate has the value "Product Updates," the merged record will contain both "Newsletter" and "Product Updates."
- Parent company associations: If you don't configure this field in Step 3 on the Fields tab and the master record has no parent company, Insycle automatically keeps the parent company from the most recently modified duplicate record that has one. To override this behavior, configure the Parent Company field on the Fields tab of Step 3.
- Associated deals, contacts, companies, and any other objects: Reassigned from the duplicates to the master.
- Activities (notes, emails, tasks, etc.): Reassigned from the duplicates to the master.
- Attachments: Reassigned from the duplicates to the master. (Note that there may be a short delay before the attachment appears in the merged record.)
Courses, Deals, Leads, Line Items, Listings, Orders, Tickets, and Custom Objects
- Record ID: A unique Record ID is created for the new resulting merged record (uses Native merge by default). When using Synthetic merge, the Record ID from the master record is kept.
- All other properties, apart from Domain, follow the same merge logic as company records.
Learn more about HubSpot's merging behavior.
How HubSpot Sensitive Data Fields Are Handled During Merges
Because properties designated as Sensitive Data in HubSpot are not ingested by Insycle, they cannot be used for filtering or controlled using Master selection or Field rules in Step 3. How these fields are handled during a merge depends on the merge method used:
- Native merge: Sensitive Data is retained according to HubSpot's native merge logic.
- Synthetic merge: Sensitive Data is retained only if it resides on the master record. If the Sensitive Data is on a duplicate record, it will not be retained after the merge.
Note that HubSpot's Sensitive Data feature is separate from Insycle's Settings > Fields PII controls. These are two independent systems that serve different purposes. For more information, see HubSpot's Store Sensitive Data in HubSpot article.
Special CSV messages for select HubSpot contact fields
When you include certain fields in Step 3, Master rules, a special message will appear in the Master (After) row of the CSV. These fields do not follow the standard merge logic, and the message lets you know how HubSpot will choose the value. This applies to the following fields:
| Field | Master (After) message |
|---|---|
| Lifecycle Stage | Stage furthest down the funnel |
| Number of Form Submissions | Added together with the values for each contact |
| Number of Unique Forms Submitted | Added together with the values for each contact |
| Marketing contact status | Most marketable status is kept |
| Number of Pageviews | The total number of page views for both contacts combined |
| Original Source | The oldest value for the original traffic source property is kept unless the source has been manually updated. In that case, the manually updated value will remain. |
| Legal basis for processing contact data | The most recent values from both contact records are kept |
See HubSpot's contact merge exceptions info to learn more.
Insycle Merge Process
When merging HubSpot records, Insycle goes through the following steps:
- Select the master record according to the rules set in Step 3: Merge Logic, Master tab.
- Determine field values to retain in the master record based on rules configured in Step 3: Merge Logic, Fields tab.
- For fields without specific rules, identify non-empty values using a "fill in the blanks" method:
- Check whether the master record has any empty fields.
- If empty, copy values from the most recently updated record in the duplicate group.
- Update the master record by:
- Applying the field values chosen in #2 (from Field rules).
- Adding the non-empty values identified in #3 (using "fill in the blanks").
- Preserve all other existing values in the master record.
- Merge the duplicate records and reassign all related objects to the master record.
- Store an audit trail report accessible from the Activity Tracker and send an email notification to the designated recipients.
Native Merge vs. Synthetic Merge
There are unique features and applications for HubSpot's Native merge functionality compared to the Synthetic merge capabilities provided by Insycle. While both methods may be available for most object types, the default method varies. This option is available on the Method tab under Step 3.
Native Merge vs. Synthetic Merge Comparison
| Native HubSpot Merge | Insycle’s Synthetic Merge | |
| Availability | Available for all object types. This is the default option for all object types except companies when the HubSpot-Salesforce sync is enabled. | Available for all object types except contacts. This is the default for companies when the HubSpot-Salesforce sync is enabled. |
| Merge Logic | Uses HubSpot’s built-in merge logic | Insycle’s customizable merge logic |
| Record ID | A unique Record ID is created for the new resulting merged record | The Record ID from the master record is kept. There is no new record |
| Associated Leads on Companies | When merging companies, associated leads from the duplicate companies will appear in the master company after the merge. | When merging companies, Insycle automatically recreates leads from the duplicate companies and associates them with the master company. These new leads retain the same name, type, stage, and owner. Learn more |
| Track Changes | In HubSpot: Record Activity tab for merged events and IDs |
In HubSpot: Custom Insycle Run ID fields or Merged Record ID fields In Insycle: Activity Tracker and reports |
When to use the Synthetic merge:
- Record ID: When you want to retain the master record and record ID instead of creating a new record.
- Salesforce integration: To merge companies when the HubSpot Salesforce integration is enabled.
- Parent-child relationships: If you have complicated parent-child associations that aren’t merging properly, Synthetic merge can automatically handle reassigning relationships.
- 250+ duplicates: HubSpot limits the number of duplicates that can be merged into a single record to 250. Synthetic merge lets you bypass this cap.
- Revert: If there's a chance you'll want to unmerge records later. Learn how to partially restore merged duplicates and undo the changes to the master records.
Note that due to its complexity, the Synthetic merge may take longer to run than the Native merge.
Fill-in-the-Blanks Data Retention
Though you can create custom data retention rules for any record fields using the Fields tab under Step 3, it is not required. There is no need to create rules for every field in your CRM - Insycle automatically handles fields without specific rules with a "fill in the blanks" approach.
When the master record has empty fields, Insycle copies values from the most recently updated record in the duplicate group where that data exists. For example, if the master record's Industry field is empty but another record in the duplicate group has an Industry value, that value will automatically be copied to the master record.
This means you only need to create custom retention rules for the fields that require special handling, rather than setting up rules for all your fields.
Step-by-Step Process Overview
The Merge Duplicates module follows a four-step process:
Step 1: Find Duplicates
Step 1 is where you define which fields Insycle should examine to find duplicate records, and set the rules for how those fields are compared. Each field you add is cumulative — records must match all of the criteria you specify to be flagged as potential duplicates. For example, matching on First Name AND Last Name AND Email Domain returns only results where all three values are the same.
Step 1 operates through three tabs:
- The Simple tab is where you add matching fields and configure comparison rules, ignored elements, match parts, and conditions.
- The Advanced tab is where you configure Related Fields for any field already added on the Simple tab.
- The Conditions tab is where you set conditions for any field already added on the Simple tab.
A field must be added on the Simple tab before it can be configured on the Advanced or Conditions tabs.
See Setting the Criteria for Finding Duplicate Matches for a complete breakdown of options.
Additionally, Step 1 includes a CSV tab that lets you upload a file of known duplicate record ID pairs directly — bypassing field-based matching entirely. See Merging Duplicates from a List You Already Have for details.
Step 2: Review Duplicates
Step 2 displays all duplicate groups identified in Step 1, allowing you to review and verify the matches before proceeding. Records that match your Step 1 criteria are automatically clustered into duplicate groups — each group represents a single entity and shows how many duplicate records it contains. For example, four records for the same person would appear as a single duplicate group containing four records.
Click the chevron at the right end of a duplicate group row to expand it and examine the individual records within that group. You can also add more fields as columns to give yourself further context when evaluating the matches.
To exclude a duplicate group from all future deduplication analysis, click the X on the group row. Excluded groups will not appear as duplicates or be included in merges, even when using different duplicate detection templates. To review and manage excluded groups, click the Exclusions button in the Step 2 header.
Step 3: Merge Logic
Bulk vs. Manual
Step 3 is where you configure how duplicate groups are consolidated—from choosing your operation mode to defining master selection rules and field retention logic. This step combines operation selection with the merge logic configuration through multiple tabs.
At the top of Step 3, choose between Bulk and Manual modes in the header:
- Bulk mode (recommended) automatically merges all duplicate groups according to the master record selection rules you define in the Master tab. This is the right choice for most deduplication processes, and the only mode that supports templates, Recipes, and automation.
- Manual mode lets you review and select specific records to merge individually from the Record Viewer. Reserve this for high-value records or complex scenarios where you want hands-on control over each merge. Learn more about merging using Manual mode.
Step 3: Master Tab
The Master tab of Step 3 lets you set the rules that determine which record in each duplicate group becomes the master. Insycle evaluates your rules in order from top to bottom, and the first record that uniquely matches a rule becomes the master. If no record matches any rule, master selection fails for that group. See Choosing Which Record Remains After a Merge for a full breakdown of all rules and options.
At the bottom of the Master tab, you'll also configure:
- Processing method — Choose between By Priority (evaluates rules in sequence, stops at first unique match) or Absolute (master must match all rules). Most operations should use By Priority.
- Exclusions — By default, Insycle skips any duplicate group containing more than 5 records—this prevents overly broad matching criteria from accidentally merging unrelated records. You can adjust this threshold up to 100 records per group.
Step 3: Fields Tab
The Fields tab in Step 3 controls which field values are copied to the master record after the merge. By default, Insycle keeps the master record's values and fills any empty fields with values from the most recently updated duplicate. You can override this on a field-by-field basis for any fields that need special handling. See Keeping the Right Data When Records Merge for all available criteria and conditions.
Step 3: Method Tab
On the Method tab of Step 3, you choose between Native and Synthetic merge logic and control whether empty master fields are automatically filled. See Native vs. Custom Merge: Two Ways to Combine Records in HubSpot and Salesforce for details.
Step 4: Review
Preview vs. Update Mode
Step 4 is where you preview and apply your merge changes. It operates in two modes:
- Preview Mode generates a CSV report that shows exactly how your records would be merged based on your current configuration — which records become masters, which field values end up where, and whether any errors occur. No changes are made to your CRM. Always run Preview Mode before Update Mode to verify everything is working as expected.
- Update Mode applies the merge to your live CRM. Once you've confirmed your Preview results look correct, Update Mode executes the actual merge operations.
Confirmation Prompt
When the Merge API is set to Synthetic on the Module tab in Step 3, running in Update Mode displays a Please confirm dialog before the operation begins. This dialog shows an estimated time for the merge based on the number of associations and engagements that need to be reassigned.
Click Yes to proceed.
Processing time for Synthetic merges depends on the volume of associated records and will be longer than Native merges — avoid running multiple operations in parallel on the same database. You can monitor progress in the Activity Tracker.
CSV Report File
The CSV report includes records from all duplicate groups. It shows the current state of the master record, excluding reassignments of associated contacts, deals, or activities. (To verify how these reassignments happen, run a small test in Update mode.) This guarantees that the CSV accurately represents the merge setup before executing in Update mode.
The Duplicate Group ID indicates which records will be merged together.
The Status column indicates:
- Duplicate – The record is part of a duplicate group.
- Master – The master record chosen for the duplicate group based on default behavior and your Master rules. Review the selections in this row to determine whether the appropriate records are being chosen.
- Master (After) – For each duplicate group, a special row –Master (After)– will appear in the CSV report. The Master (After) row shows the values the final record will contain based on your Field rules and the default behavior. For certain fields included in the Step 3 Master rules, a special message will appear in the Master (After) row. View the HubSpot Merge Logic Explained above for details.
- Error – If Insycle is not able to determine which record would be the master, an error message will appear here. See the Merge Duplicates Troubleshooting article for next steps.
Save Template and Set Up Automation
After you've seen the results in HubSpot and you are satisfied with how the operation runs, you can save your configuration as a template and set up automation so this merge operation runs on a set schedule. If you have several templates you'd like to run together automatically, you can create a Recipe and integrate it into HubSpot Workflows.
Return to the Template menu at the top of the page and click Copy to save your configurations as a new version of the template you started with. Then click the pencil to edit your new template name.
Under Step 4, click the Review button, and select Update mode.
On the Notify tab, select the send option appropriate for your automation: Always send, Send when errors, or Do not email.
Add any additional recipients who should receive the CSV (hitting Enter after each address) and provide context in the message subject or body.
On the When tab, select Automate, and configure the frequency you'd like the template to run. When finished, click Schedule.
You can view all your scheduled automations at any time on the Operations > Automations page.
Learn More:
Create a Recipe and Integrate with HubSpot Workflows
When you have a solid set of templates that reliably merge your records, you can put them together into a longer, ordered sequence as a Recipe. Then you can schedule that Recipe to run on a consistent schedule. Your templates will run one after another in the order that you set.
To add your Recipe to a HubSpot Workflow, it must be automated and set to Execute as HubSpot Workflow Action.
Learn more about integrating Insycle Recipes with HubSpot workflows.
Advanced Use Cases
Merge Duplicate Salesforce Accounts and the Corresponding HubSpot Companies When Sync is Active
Having your HubSpot and Salesforce CRMs set up to sync can make cleaning up duplicates tricky. You need to determine the appropriate “master record” to use across both CRMs and consider the merging process. Often, your settings in each platform impact how the merge takes place.
When you deduplicate accounts in Salesforce, the master is kept in sync with the original HubSpot record, indicated by a Salesforce Account ID value. However, the deduplication only takes place on Salesforce, leaving duplicate companies in HubSpot. Since HubSpot doesn't allow you to deduplicate companies while the sync is active from within the HubSpot app, you need another option.
Insycle allows you to merge duplicate HubSpot companies and Salesforce accounts while keeping things simple and your sync intact.
To learn more, see Deduplicate HubSpot Companies and Salesforce Accounts.
Deduplicate HubSpot and Salesforce Simultaneously
Your sales team is using both HubSpot and Salesforce and is running into problems with duplicate records in one CRM or the other, and sometimes both.
You have a data sync set up between the two systems but don't know how to deduplicate effectively to ensure the cleanup effort is consistent across CRMs. In addition, HubSpot doesn't allow you to deduplicate companies while the sync is active from within the HubSpot app.
With the Merge Duplicates module, you can flexibly merge duplicate people and companies in bulk and automatically (including through workflow automation right when visitors fill out a form) even when the HubSpot-Salesforce sync is active, and keep the master records syncing after the merge. You can also control the merge process by defining rules for picking the master record and master field values (for example, retain the owner from the contact that was created first).
To learn more, see Deduplicate HubSpot and Salesforce While Keeping the Sync Active.
Merging Companies with Associated Leads
When merging companies in HubSpot directly or in Insycle using the Native merge method, associated leads from the duplicate companies will appear in the master company after the merge.
When merging companies using Insycle's Synthetic merge method, special handling is applied to leads associated with those companies:
HubSpot's API prevents existing lead objects from being reassigned to different companies. This is by design—leads are meant to capture a snapshot of the specific interactions and context that led to a deal, and HubSpot preserves this by preventing lead reassignment.
Insycle's Synthetic merge can accommodate lead reassignment when merging companies. To reassign leads, Insycle automatically:
- Recreates the leads from duplicate companies
- Associates these new leads with the master company
- Maintains the original lead data: name, type, stage, and owner
- Adds a parenthetical detail to the lead name to indicate its origin (e.g., "Example Lead Name (From duplicate company Acme. Lead originally created 2025-10-02T12:52:25)")
- Replaces the original leads (so you don't end up with duplicates)
This ensures data completeness and traceability while working within HubSpot's API limitations.
Note: If you have the Salesforce integration enabled, Synthetic merge is the default and required method for merging companies (as Native merge is not available when the sync is active). Users without the Salesforce integration can choose between Native and Synthetic merge methods in Step 3.
Merging Child or Parent Companies While Retaining Associations
When deduplicating child/parent companies in HubSpot, Insycle can detect even the most complex company hierarchy associations, ensuring that the correct child company master records are associated with the correct parent company master records after the companies are merged.
Parent Company Retention: During the merge, if a duplicate company has a parent company and the master company does not, Insycle keeps the parent company from the most recently modified duplicate that has one and applies the Parent label.
Customizing Parent Company Selection: To control which parent company value is retained, configure the Parent Company field in Step 3 on the Fields tab. You can choose to keep the master's value even if it's empty, select from a record with a parent company, or base the selection on other field criteria.
See Bulk Associate Child to Parent Companies in HubSpot for complete details.
Granular control for picking duplicate records
For situations where there are no common rules you can apply for identifying duplicates for all or some of your records, you may need more granular control over which records are included or excluded from the process.
Bulk Solutions
There are two options for doing this in bulk. You can upload a CSV file of known duplicate record ID pairs directly into the Merge Duplicates module using the CSV tab in Step 1. This lets you bypass field-based duplicate detection entirely and work from a list of specific record pairs you've already identified. From there, you continue through Steps 2–4 to configure master selection rules and field retention settings, and then run the merge.
For more complex scenarios — such as designating master records or excluding specific records from deduplication using custom attributes — you can also use the Magical Import module in combination with Merge Duplicates for complete control over the process.
Learn how to customize merging duplicates in bulk using a CSV.
Single Record Solution
To do this one record at a time, you can use Manual mode of the Merge Duplicates module.
In Manual mode, you have complete control over which records are merged together by selecting them from the Record Viewer. Manual mode should be reserved for cases that require a careful, controlled process. Learn more about merging duplicates in Manual mode.
Explore additional deduplication techniques that address a variety of challenges in our Common Scenarios articles.
Pro Tip
If you're unsure how conflicting field values will be merged, include those fields in the Preview CSV report by adding them to the Layout in Step 2 by clicking the gear icon.
Additional Resources
Frequently Asked Questions
Check out the Merging Duplicates FAQ for help with questions about merging HubSpot duplicates.
Related Help Articles
- Merge Duplicates Troubleshooting
- Deduplicate HubSpot Contacts, Companies, and Deals in Bulk
- Deduplicate HubSpot and Salesforce While Keeping the Sync Active
- Solve Salesforce and HubSpot Sync Issues
Related Blog Posts
- Why HubSpot Duplicate Contacts Are Hurting Your Marketing Team and Straining Your Budget
- Data Duplication and HubSpot: Dealing With Duplicates and the Impact They Have on Your Business
- Hidden Duplicates: 11 Advanced Ways to Identify & Deduplicate Customer Data
- How to Merge Duplicates in HubSpot and Salesforce and Keep Them Syncing