HubSpot Merge Duplicates Module Overview

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.

merge-duplicates-hubspot-select-record-type.png

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. 
    • 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.
  • 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:

  1. Select the master record according to the rules set in Step 3: Merge Logic, Master tab.
  2. Determine field values to retain in the master record based on rules configured in Step 3: Merge Logic, Fields tab.
  3. 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.
  4. 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.
  5. Merge the duplicate records and reassign all related objects to the master record.
  6. 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 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.

merge-duplicates-hubspot-contacts-step-3-fields-tab-owner-phonw-state-notes-646w.png

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 the Duplicate Identification Rules info below for a complete breakdown of every option.

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 the CSV Tab Reference below for details.

merge-duplicates-hubspot-contacts-step-1-first-last-email-domain-exact-646w.png
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.

dup2.png

Step 3: Merge Logic

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.

Step 3 operates through three tabs that work together:

Master tab — This is where 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 the Master Record Selection reference below 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.

merge-duplicates-hubspot-contacts-step-3-master-tab-8-rules-646w.png

Fields tab — This is where you control which field values end up in 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 the Field Data Retention Reference below for all available criteria and conditions.

merge-duplicates-hubspot-contacts-step-3-fields-tab-10-rules-732w.png

Method tab — This tab lets you choose between Native and Synthetic merge logic, and control whether empty master fields are automatically filled. See the Method Tab Reference below for details.

merge-duplicates-hubspot-leads-step-3-method-tab-native-autofill-on-646w.png

Step 4: Review

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.

dup7.png

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.

merge-duplicates-step-4-review-update-mode-please-confirm-popup-646w.png

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.

merge-duplicates-hubspot-contacts-csv.png

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 Insycle <> HubSpot Merge Logic below for details.
  • Error – If Insycle is not able to determine which record would be the master, an error message will appear here. See the Troubleshooting section below for more details.

Configurations Reference

Duplicate Identification Rules (Step 1)

Step 1 controls which records Insycle flags as potential duplicates. Each matching field you configure acts as a filter — records must match all of your specified criteria to be grouped together. For example, matching on First Name AND Last Name AND Email returns only results where all three values are the same.

Core Matching Parameters

Field SelectionComparison RuleIgnoredMatch Parts

Field Selection

Choose fields that, in combination, provide strong evidence that matched records represent the same entity. The goal is to select fields that are unlikely to be identical across unrelated records.

Choosing Unique Identifiers

Matching duplicates requires unique identifiers — data that is unlikely to be shared by any other record unless it is truly a duplicate. If you only use fields that could legitimately have the same values across different entities, you risk identifying unrelated records as duplicates and accidentally merging them.

Common Unique Identifiers by Object Type

For contacts:

  • Email address
  • Phone number
  • Full name (first + last) combined with another identifier
  • LinkedIn URL or other social profile
  • Customer ID or external system ID

For companies:

  • Company domain
  • Company name combined with location or industry
  • Tax ID or registration number
  • External system ID (Salesforce ID, ERP system ID, etc.)
  • Phone number or main office address

For other object types:

  • Transaction ID
  • Deal name combined with associated company
  • Ticket number
  • Any system-generated or externally synced ID

  Field Length Requirement

Values must be at least 4 characters long to be considered for matching. Standalone values such as "Joe," "Ace," or "Inc" will be ignored during matching.

merge-duplicates-salesforce-contacts-first-last-name-phone-step-1-simple-tab.png

Related Fields

Related Fields lets you compare data across up to three different fields as if they were a single field. This helps catch duplicates where the same information appears in different field locations across records.

For example, you might want to check both the Email field and the Additional Email field for matching values. Or compare Phone, Business Phone, and Mobile Phone to find duplicates where the same number appears in different fields.

To configure Related Fields:

  1. On the Simple tab of Step 1, select the primary field you want to match on
  2. Click the Advanced tab
  3. Under Related Fields, select up to two fields that contain similar data
  4. Insycle will treat values from any of these fields as potential matches

This is particularly useful when dealing with inconsistent data entry practices or records imported from different sources that map the same information to different fields.

step-1-advanced-tab-related-email.png

Conditions

Conditions add requirements that one or more records in a duplicate group must meet. These let you control whether fields can be empty, require specific values, or set time-based parameters.

To set a condition on a field:

  1. On the Simple tab of Step 1, select the primary field you want to match on.
  2. Click the Conditions tab.
  3. Select the Condition option to configure for the field

Available Conditions

  • At Least One Record With Non-Empty — At least one record in the duplicate group must contain a value in this field. The other records can have empty values.
  • Value Required in All Records — Every record in the duplicate group must contain a value in this field to be considered a duplicate.
  • At Least One Record Match — At least one record in the duplicate group must match the specified value, and the other records cannot be blank. If none of the records contain the specified value, the duplicate group will not be merged.
  • Empty Allowed in Any Record — A record can still be considered part of the duplicate group even if this field is blank. Useful when a field is a secondary identifier. Requires using at least two fields to identify duplicates.
  • Only One Record Match — If more than one record in the duplicate group contains the specified field value, the entire duplicate group is skipped and will not be merged. Use this to ensure uniqueness constraints.
  • Within Timeframe — Limit duplicate detection to records created or modified within a specific time window (minutes, hours, or days). For example, find duplicates created within the last 20 minutes. This is useful for catching duplicates created during high-volume import processes or live form submissions.
  • Values Don't Match — All records in the duplicate group must have a value in this field, but the values cannot be identical across records. Use this to exclude previously processed duplicates from subsequent deduplication runs.
merge-duplicates-hubspot-contacts-step-1-conditions-all-6.png

CSV Tab (Step 1)

The CSV tab in Step 1 lets you import a list of known duplicate record pairs directly into the Merge Duplicates module, bypassing field-based duplicate detection entirely. This is useful when you already know which records are duplicates — for example, from an external audit, a data migration, or a report from another system — and want to use Insycle's merge logic to handle the consolidation.

CSV Format Requirements

The CSV must include a header row with exactly these two column names: ID_1 and ID_2. Each subsequent row should contain the record IDs of one duplicate pair. Any additional columns in the file will be ignored — Insycle only processes the ID_1 and ID_2 columns.

merge-duplicates-ID_1-ID_2-pairs-merge-csv.png

Uploading the CSV

Navigate to Data Management > Merge Duplicates and select your database and record type. In Step 1, click the CSV tab, then click Upload and select your file.

merge-duplicates-step-1-csv-tab-646w.png

Once uploaded, Insycle validates that the record IDs in the file exist in your HubSpot data. Rows with invalid or missing record IDs will be skipped and will not appear in Step 2.

⚠️ If valid record IDs aren't appearing in Step 2: You may need to trigger an incremental sync. Navigate to Settings > Accounts, then trigger the sync. If the issue persists, contact Insycle Support to request a full sync.

Completing the Merge

After uploading, continue through Steps 2–4 to review the duplicate groups, configure master selection rules and field retention settings, and run the operation.

Master Selection Rules (Step 3 Master Tab)

The Master tab controls which record in each duplicate group becomes the master — the record that will remain after the merge. Insycle evaluates your rules sequentially from top to bottom. As soon as one record uniquely meets a rule, it becomes the master, and no further rules are evaluated for that group. If no records match any rule, automatic master selection fails for that group.

Core Configuration Options

Processing MethodField SelectionConditions

Choose Your Processing Method

Before adding rules, select how Insycle should process your master selection criteria. This is found at the bottom of the Master tab.

  • By Priority (recommended) — Evaluates rules sequentially from top to bottom. As soon as one record uniquely meets a rule, it becomes the master, and remaining rules are skipped. This is the recommended method for most deduplication processes as it provides flexible, fallback-based master selection.
  • Absolute — Requires the master record to simultaneously match every rule on your list. For example, if you need the master to be both a customer AND assigned to an active representative, Absolute ensures that only records meeting both criteria are selected. However, Absolute frequently results in no master being identified since records must satisfy all conditions simultaneously. By Priority is typically the better choice for most use cases.
merge-duplicates-hubspot-companies-step-3-master-tab-processing-method-highlighted-646w.png

Considerations When Picking a Master Record

The best master selection strategy depends on your record type and business priorities.

For Contacts:

Select master records based on engagement metrics when available — highest number of email clicks, most recent email opened, or highest engagement score. You can also prioritize by lifecycle stage (customers over leads) or by assignment (records with active owners).

Common contact strategies:

  • Most engaged contact (email clicks, opens, form submissions)
  • Furthest along in lifecycle (Customer > Opportunity > Lead)
  • Most recently updated or contacted
  • Record with active owner assigned

merge-duplicates-hubspot-contacts-step-3-master-tab-7-rules-engagement-lifecycle-646w.png

For Companies:

Prioritize records with the most associated data — the highest number of associated contacts, deals, or activities. This ensures you preserve the record with the richest relationship history.

Common company strategies:

  • Most associated contacts or deals
  • Highest annual revenue or employee count
  • Record synced with external systems (Salesforce, ERP)
  • Record with active owner assigned
merge-duplicates-hubspot-companies-step-3-master-tab-5-rules-SF-ID-associated-646w.png

For records synced with external systems:

If you integrate with Salesforce, an ERP system, or other platforms, prioritize the record that syncs with those systems to prevent breaking your integration. Use an "exists" condition on the sync ID field as your first master rule. See the example in the Conditions section above for how to structure this with fallback logic.

Field Data Retention Rules (Step 3 Fields Tab)

The Fields tab controls how data in each field is handled when duplicate records are merged. After selecting a master record, you can pull specific field values from other records in the group to ensure the most valuable data is retained.

By default, Insycle keeps all field values from the master record. If a master field is blank, the value from the most recently updated duplicate is used. You can create rules to override this behavior on a field-by-field basis — you only need to configure rules for fields requiring special handling, not for every field in your CRM.

Core Configuration Options

Field SelectionCriteriaConditionsGroup Fields

Field Name

Choose which fields you want to control data retention for. You can only add writable fields to the Fields tab — read-only fields, like Record ID, cannot have retention rules configured.

Available criteria and condition options vary by field type. For example, number fields support rollup calculations (sum, average, max, min), while text fields support conditions like "contains" or "is."

You don't need to create a rule for every field. Fields without specific rules are handled automatically using the default "fill in the blanks" behavior — Insycle keeps the master record's value, or copies from the most recently updated duplicate if the master field is empty.

merge-duplicates-step-4-fields-tab-field-dropdown-646w.png

Merge Method (Step 3 Method Tab)

The Method tab provides additional merge configuration options. These settings control which merge API Insycle uses and whether empty master fields are automatically filled with values from duplicates.

Merge API

The Merge API setting determines which merge logic Insycle uses to combine your records.

Native uses HubSpot's built-in merge logic and follows HubSpot's standard rules for consolidating fields, associations, and activities during a merge.

Synthetic uses Insycle's custom merge logic. This gives you more control over field retention and master selection than the HubSpot native merge provides, and is the only option available for object types that don't have native merge support in HubSpot.

Default Merge API by Object Type

Platform Object Type Default API
HubSpot Contacts Native
HubSpot Companies (without HubSpot-Salesforce sync) Native
HubSpot Companies (with HubSpot-Salesforce sync enabled) Synthetic
HubSpot All other object types Native

Learn more about Native Merge vs. Synthetic Merge behavior in HubSpot.

Blank Fields

The Blank Fields toggle controls whether Insycle automatically fills empty fields in the master record with values from duplicates — the "fill in the blanks" behavior described in the HubSpot Merge Logic Explained section.

Enabled (toggled yellow) — Insycle automatically fills empty master record fields with values from the most recently updated duplicate where that data exists. This is the default setting and is recommended for most use cases.

Disabled (toggled grey) — Empty fields in the master record remain empty. No automatic filling occurs. Use this when you specifically want to preserve the master's empty state and prevent any data from duplicates being copied forward.

merge-duplicates-hubspot-step-4-method-tab-synthetic-646w.png
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.

save-template-copy-and-rename.png

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.

merge-duplicates-step-5-update-notify-tab-always-send.png

On the When tab, select Automate, and configure the frequency you'd like the template to run. When finished, click Schedule.

merge-duplicates-step-5-review-update-automate-daily.png

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.

recipe-templates-2-deduplicate-contacts-basic-646w.png

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.

recipe-review-update-automate-hubspot-workflow.png

Audit Trail and History

With the Activity Tracker, you have a complete audit trail and history of changes made through Insycle, including processes run in Preview mode or data syncs. At any time, you can download a CSV report that shows all the changes made in a given operation run.

Navigate to Operations > Activity Tracker, search by module, app, or template name, then click the Run ID for the operation.

activity-tracker-merge-duplicate-operation-run-id-w-arrow.png

If you've configured the Insycle Run ID property in HubSpot, you can cross-reference these operations in your CRM records.

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.

hubspot-company-associated-lead-renamed-646w.png

  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 empty, select from a record that has a parent company, or base the selection on other field criteria.

merge-duplicates-hubspot-companies-step-3-fields-tab-parent-company-646w.png
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 Deduplication Scenarios article.

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.

Troubleshooting

If you're not seeing the results you expect when merging duplicates, consider these issues:

Not all identified duplicates are merging into the master

You have duplicate records identified by Insycle, but not all are merging into the master. Check how many duplicates are in the affected groups. If you have duplicate groups with more than 5 records, you may want to change the Exclusions value at the bottom of Step 3 on the Master tab: Skip duplicate groups with more than 5 records per group to ensure you can get them all.merge-duplicates-hubspot-contacts-step-3-master-tab-exclusions-w-arrow-646w.png

This setting is intended to prevent overly broad matching criteria from accidentally merging unrelated records. You can adjust this threshold up to 100 records per group.

"Failed" Result in CSV with "Change rules in Step 3 'Master Selection'" Message

If the Result is "Failed" and the Message column of the CSV report displays this text:

Change rules in Step 3 'Master Selection'. Failed to pick master record because multiple records (X) meet the selection criteria. In 'Master Selection', change, add, or reorder the rules such that only one record matches (if cannot determine master based on field values, use 'Record ID is lowest' as the last rule).

merge-duplicates-salesforce-accounts-csv-w-error.png

This means Insycle could not determine which record in the duplicate group should become the master — none of the records meet more of the rules than the others.

There are a few things you can try to resolve this:

  1. Under Step 3, on the Master tab, experiment with reordering or adding rules based on fields that are likely to have unique values across your records. Think about what matters most to your business — the fields that would make one record clearly more valuable or authoritative than another. For example:

    • A field that stores an ID linked to an external system, such as an ERP, data warehouse, or proprietary internal tool — the record with that ID populated is likely the one your other systems depend on
    • The record with the highest number of associated records (contacts, deals, activities) — indicating it has accumulated more history and relationships
    • A field indicating CRM ownership or account status — for example, a record marked as "Customer" vs. "Lead," or one with an active owner assigned
    • A field that tracks revenue, subscription tier, or engagement level — the record with higher values may represent the more complete or current entry
    • A custom field your team uses to flag record quality or data source reliability

    The goal is to surface the fields that reflect record importance for your specific operations, not just default system fields.

  2. Also on the Step 3 Master tab, confirm that By Priority is selected rather than Absolute.

    With By Priority, a record only needs to match one rule to be selected as master. With Absolute, a record must meet all rule criteria, which makes it much harder for any single record to qualify.

    In most cases, By Priority is the right choice. If By Priority is already selected and the error persists, none of the records in the group meet any of the criteria more than the others. Return to the Master tab and continue adding or reordering rules, focusing on the business-critical fields described in #1 above.

    merge-duplicates-step-3-by-priority-match-w-arrow-646w.png

  3. As a last resort, add a rule on the Master tab that uses Record ID is lowest, or Create Date is earliest. These rules will always produce a unique winner, ensuring master selection can complete even when other field-based rules cannot differentiate the records. merge-duplicates-hubspot-contacts-step-3-master-tab-last-resort-rules.png
Non-duplicate records are being merged together

There are a couple of things to look at that may be causing records to be misidentified as duplicates.

First, you may need a better unique identifier. Under Step 1, if you use only fields that can correctly contain the same values across multiple records, they aren't unique identifiers. In this case, you are likely to identify unrelated records as duplicates and may accidentally merge them.

merge-duplicates-intercom-step-1-name-only-646w.png

Unique identifiers are data unlikely to be shared by any other record unless they represent the same underlying entity. Common fields used for deduplication include phone numbers, email addresses, mailing addresses, and ID numbers.

Second, this may indicate the Comparison Rule under Step 1 is too broad. Try using the Exact Match comparison rule instead of the Similar Match rule. Similar Match looks for values that may be close, even with a one-character difference (e.g., a typo), broadening the search. 

Remember to always run your deduplication in Preview Mode to confirm it's working as expected before running it in Update Mode and applying the changes to your CRM records.

Insycle isn't finding any duplicates

Most of the time, when Insycle can't find duplicates, it's because your matching rules in Step 1 aren't set correctly. However, before making any changes, verify that the fields you're using for duplicate detection are properly synced between HubSpot and Insycle.

First, check field synchronization. 

Go to Settings > Fields and make sure the Sync toggle is enabled (yellow), or the Automation box is checked for all fields you're using in Step 1.

Then, analyze matching rules. 

To analyze the underlying data and better understand how to set up your rules in Step 1, a helpful exercise is to configure your matching filters to find exact matches for only First Name and Last Name. Or for companies, you could use company name.

step-1-fname-Lname-only.png

When you click Find, these rules can show you a broad overview of what duplicates are potentially in your database and what fields might be useful to include in your matching fields. These settings are intended for discovery purposes only and should not be used for a final merge operation, as many individuals may share the same first and last names without being duplicates. 

For more context, in Step 2, click the icon-gear-18x18.png gear button on the right side of the title bar. Here, you can add any field from your database as a column in the duplicate group review to better understand the data in these records. These will also appear in your CSV report.

merge-duplicates-step-2-gear-arrow-646w.png
It's taking a long time for Insycle to find duplicates

It can take Insycle a while to find and match duplicates when the fields used to identify them have very long values. The longer the values, the longer it takes Insycle to process the data and generate the results. This might come up when looking for matches based on long ID numbers, LinkedIn bio links, or other URLs with long strings attached (ex, https://www.linkedin.com/in/svadin%C3%ADr-n%C4%9Bmec-1234b31a3/).

You can speed this up by limiting how much of the value Insycle looks at.

If the beginning or ending portion of the values are all unique, you can limit the comparison to the first or last several characters using the Match Parts parameter under Step 1

merge-duplicates-linkedin-URL-step-1-match-parts-last-9-chars-646w.png

merge-duplicates-linkedin-bio-step-2-last-9-chars.png

Or use the Ignore Text (Substrings) parameter, then click the Terms button.

merge-duplicates-linkedin-URL-step-1-ignored-text-terms-button-646w.png

On the Ignored Text tab of the popup, add the common portion of the URL or text string.

merge-duplicates-linkedin-URL-step-1-ignored-text-popup-646w.png

Getting error: Cannot merge object...has more than 250 objects merged...

If you see the following error for a HubSpot record after you run an operation:

“Cannot merge object [ID] in portal [ID]. It already has more than 250 objects merged into it.”

This suggests that too many duplicates are trying to merge into a single record.

What’s Happening

HubSpot enforces a strict limit on merges. A contact, company, or deal cannot have more than 250 merged records associated with it. HubSpot tracks all previous merges using the read-only property called Merged Record IDs. When a record has already reached (or will reach) 250 merged items, HubSpot blocks any further merges. There is no way to clear or edit this field, or to bypass the limit in the HubSpot app.

Solution

As a workaround, you can switch to Insycle’s Synthetic Merge. In the Merge Duplicates module, go to Step 3 and select the Method tab. Switch the Merge API option from Native to Synthetic. If this is a template, don't forget to save. 

For more details, refer to this Native Merge vs. Synthetic Merge info.

merge-duplicates-hubspot-step-4-method-tab-synthetic-646w.png
Fields I need for matching or data retention are missing or not working

If you're having issues with your HubSpot properties missing or not working as expected during merge duplicate operations, it could be due to field inclusion settings or read-only fields.

Common symptoms:

  • Fields you want to use for duplicate matching in Step 1 don't appear in the field dropdown
  • Filter values are empty when you know the field contains data
  • Master selection rules in Step 3 aren't working as expected
  • Field retention rules in Step 3 aren't finding the data you expect
  • Duplicates aren't being identified when using certain fields for matching
  • A field appears in some dropdowns but not in the Fields tab under Step 3

Issue 1: Field Inclusion Settings

Fields must be included in your Insycle dataset to be available throughout the application.

To check and enable field inclusion:

  1. Navigate to Settings > Fields
  2. Select your database and object type from the top menu
  3. Use the search to find the field you need
  4. Verify that the Included toggle is enabled (yellow = on, grey = off), or the Automation box is checked
  5. If not, toggle the Included control to the 'On' position

  Note: Field inclusion changes typically take effect during the overnight data sync process. If you need immediate synchronization of newly included fields, contact Insycle support to trigger a full sync. You must have an Admin or Owner user role to manage field inclusion. 

Learn more about managing the HubSpot fields included in Incycle.


Issue 2: Read-Only Field Restrictions

If a field is included but still doesn't appear in the Fields tab under Step 3, it may be a read-only field.

Field rules in Step 3 can only update writable fields. Read-only fields are not shown in the Fields tab dropdown because HubSpot prevents these properties from being written back. Insycle excludes them from the field selection options to prevent errors.

Where you CAN use read-only fields:

  • Master tab (Step 3): Use read-only fields like "Last Activity Date" to make merge decisions without attempting to modify those properties
  • Step 1: Use for filtering and matching duplicates
  • Step 2: Review data in the Record Viewer
  • CSV reports: Include as columns for analysis

Where you CANNOT use read-only fields:

  • Fields tab (Step 3): Cannot create field retention rules for read-only properties

To identify which fields are read-only:

  1. Navigate to Data Management > Cleanse Data
  2. Search for a specific field by name, or click the Writable heading in the table to sort and review all writable or non-writable fields
  3. A checked box in the Writable column indicates the field is writable; an unchecked box means it is read-only
cleanse-data-salesforce-contacts-date-fields-writable-column-arrow-646px.png

For more help troubleshooting issues with Insycle, refer to our Troubleshooting Issues article.

Frequently Asked Questions

How do I ensure the merged record maintains an active owner?

Currently, neither HubSpot nor Salesforce provides an automated way to prioritize active owners during the merge process. You'd need to verify owner status manually for each merge operation.

However, Insycle's Merge Duplicates module includes an option to prioritize an active owner. 

First, you could add a Master rule under Step 3 to tell Insycle to select the record from each group with an active owner as the master record.

Add a rule with the following parameters:

  • Field: Record owner
  • Condition: active user

merge-duplicates-hubspot-contacts-step-4-record-tab-active-owner-646x247.png

Second, you could create a Field rule to retain the owner who is an active user.

Add a rule with the following parameters:

  • Field: Owner
  • Criteria: From record where value
  • Condition: active user

merge-duplicates-hubspot-contacts-step-4-fields-tab-active-owner.png

Why are my duplicate counts different between HubSpot and Insycle?

The discrepancy in duplicate numbers between HubSpot and Insycle is due to their fundamentally different approaches to identifying duplicates.

HubSpot's approach:

  • Uses AI models for duplicate detection
  • May consider a broader range of factors and patterns
  • Results can be less predictable and may change over time as the AI model evolves

hubspot-merge-duplicates-number-of-duplicate-contacts.png

Insycle's approach:

  • Uses a defined, deterministic method
  • Based on specific rules and criteria set by the user
  • Using templates, results are consistent and reproducible

merge-duplicates-hubspot-contacts-step-2-number-of-duplicates.png

Because of these different methodologies, the numbers will never be exactly the same between the two systems. However, you can make this difference work for you by using both systems together to create a more comprehensive duplicate detection strategy.

To better understand and leverage these differences:

  • Explore the properties of the duplicates found by each system
  • Look for patterns in the discrepancies
  • Experiment with your Insycle template settings to see how they affect the results

Learn more about Why Duplicate Counts Differ Between HubSpot and Insycle and the best scenarios to use the unique features of each or use both systems together.

My merged records are not being enrolled in a HubSpot Workflow. Is this intentional? How can I change this?

By default, when two contacts are merged in HubSpot, Workflows will not enroll merged contacts. However, merged contacts can enroll in the future if re-enrollment is enabled and they meet the enrollment triggers. 

In contact-based workflows, you can manage the enrollment of merged contacts, remove contacts that no longer meet enrollment criteria, and prevent enrollment of contacts in specific lists. To learn more, see HubSpot's workflow documentation.

I have a list of duplicates I need to merge. Can I deduplicate them using Insycle?

Yes. You can use an existing list of duplicates with Insycle to deduplicate it in bulk, following these steps:

  1. Prepare a CSV file with columns for the record IDs and a "Merge Master" column. In the "Merge Master" column, mark which record should be kept after merging.
  2. Create a custom field called "Merge Master" in your CRM.
  3. Use the Magical Import module to import your CSV file into the CRM, updating the "Merge Master" field for the relevant records.
  4. Go to the Merge Duplicates module and set up a filter to select records based on the "Merge Master" field.

Learn more about deduplicate records using a CSV.

Can I select which data is retained in my master record on a field-by-field basis?

Yes, Insycle allows you to select which field data to retain in the master record using the Fields tab in Step 3. See the Merge Duplicates module field data retention rules reference for more details.

merge-duplicates-hubspot-contacts-step-3-field-tab-donated-owner-phone-lifecycle-IDs-646w.png
Some of my HubSpot duplicates have attachments, will these be preserved?

Yes, if your HubSpot objects have attachments, the attachment will be merged into the master record. Note that there may be a short delay before the attachment appears in the merged record.

I used the “From master record (even empty)” retention rule. Why does HubSpot say Insycle deleted it?

When merging HubSpot contact records using the “From master record (even empty)” data retention rule, the property history in HubSpot shows that Insycle set the value to “empty.” This is a nuance of how HubSpot manages the history of empty values. You can verify that the master record value before the merge was indeed empty by reviewing the Activity Tracker report in Insycle.

My team needs to review and approve the master. Can I accommodate that with Insycle?

Yes, there are several ways to share details and get approval before merging duplicates.

You can manually approve master records and mark them in a CSV file, then use Insycle to bulk deduplicate into those master records. See the Customize Bulk Deduplication Using Exclusions and Pre-Defined Masters article to learn more.

Or, you can run the Merge Duplicates module in Preview Mode and then deliver the preview CSV that Insycle generates. The CSV report includes your entire merge operation down to individual duplicate groups, but does not update your live data. Then your team can approve the merge based on this report, before running Merge Duplicates in Update Mode.

Additionally, team members can review duplicates and manually select the master for each record under Step 3 by selecting Manual mode. Review the Manually Merge Duplicates article for more details.

merge-duplicates-hubspot-contacts-step-3-manual-646w.png

Do the field values I use to match need to be exactly the same?

No, matching fields do not need to match exactly. The Similar Match Comparison Rule in Step 1 acts as a fuzzy match, looking for values that may be close but differ by only one character (e.g., a typo), and broadens the search.

step-1-email-only.png

This search behaves like when Google shows results for a slightly different term or says, “Did you mean...” For example, if an Email of “huey@coahulldu.co” is found, it could include records with the values “hueyy@coahulldu.co" or "hue.y@coahulldu.co” as a match.

step-2-group-w-similar-match.png

You should be careful when using Similar Match as the looser criteria can incorrectly identify non-duplicates as duplicates. 

Review the Understanding Similar Matching best practices for more details.

Can Insycle help me deduplicate while syncing with Salesforce?

Yes, Insycle resolves numerous deduplication issues when Salesforce and HubSpot sync. See the Deduplicate Salesforce and HubSpot While Keeping the Sync Active article to learn more.

Are there any limits on the number of records that can be identified and merged with my paid subscription?

All plans include unlimited usage, unlimited users, and unlimited operations. During the free trial, there is a cap of 500 records updated, cleansed, or merged. See the pricing page for more details.

Additional Resources

Related Help Articles

Related Blog Posts