How to Merge Duplicate Users, Leads, and Companies
Duplicate data in Intercom poses serious problems for companies of any size.
Duplicate records inhibit your support teams from effectively segmenting and personalizing communications. Reps lack vital context, miss important information, and analysis and reporting are skewed. Ultimately, this means a worse experience for your customers.
Insycle's Merge Duplicates module helps you automatically detect redundant Intercom users, leads, and companies, giving you control over how records are merged and what field data is retained.
Key Use Cases
- Deduplicate Across Intercom Users and Leads
- Merge Duplicate Intercom Companies
- Bulk Merge Duplicate People
How It Works
The Merge Duplicates module makes it easy to identify duplicates and merge them in bulk.
Powerful matching options look at fields you specify to detect and group redundancies.
With duplicates identified, you set rules for determining the master record the duplicates will merge into—such as the first record created, record with the most email opens, last interacted with, or any other attribute. You can configure data retention rules that copy the most relevant field values into the permanent, master record.
These configurations can be saved, automated, and scheduled to run at regular intervals, putting your duplicate cleanup process on autopilot.
Supported Intercom Record Types
Insycle supports Merging Duplicates for the following Intercom record types:
- Users
- Leads
- Companies
You can select the record type at the top of the module screen.
Insycle <> Intercom Merge Logic
How Data Is Consolidated When Bulk Merging
When merging Lead<>User, Insycle uses the underlying Intercom merge API.
When merging Lead<>Lead or User<>User, Insycle performs a synthetic merge:
- Open conversations: Duplicate contacts will be detached from open conversations, and the master contact will be attached to those conversations.
-
Closed conversations: Closed conversations cannot be transferred directly in Intercom— doing so would cause them to reopen. Instead, they are preserved as notes in the master contact record, with one note created per closed conversation. This matches the way Intercom's native merge handles closed conversations when merging Lead
<>User records. (Notes are searchable in Intercom.) - Tickets: Collected from the duplicate records and converted into notes in the master.
- Tags: Assigned from duplicates to master.
- Companies: Assigned from duplicates to master.
- Notes: Copied from the duplicates and created in the master.
- Events: Copied from the duplicates and created in the master.
- Fields: Use Master Selection By Field to determine what data is retained in the master record on a field-by-field basis. By default, retained from the master. When a value is empty in the master, it picks a non-empty value from the most recently updated duplicate.
When merging Companies, Insycle performs a synthetic merge:
- Leads: Assigned from duplicates to master.
- Users: Assigned from duplicates to master.
- Tags: Assigned from duplicates to master.
- Fields: Use Master Selection By Field to determine what data is retained in the master record on a field-by-field basis. By default, retained from the master. When a value is empty in the master, it picks a non-empty value from the most recently updated duplicate.
Merge Process Summary
When merging duplicates, Insycle goes through the following steps for all Intercom record types:
- Select the master record according to the rules set in Step 3 on the Master tab.
- Determine field values to retain in the master record based on rules configured in Step 3 on the 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 step 2 (from Field rules).
- Adding the non-empty values identified in step 3 (using "fill in the blanks").
- Preserving 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.
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 Email Domain AND Name returns only results where both 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 Reference 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.
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, three records for the same person would appear as a single duplicate group containing three 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 fields as columns to provide more context when evaluating the matches by clicking the gear icon.
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
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.
Bulk or Manual Mode
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.
Most users should select Bulk mode and proceed.
Step 3 operates through two tabs that work together:
1) Master tab
On the Master tab, you define how all of the matching duplicate groups should be merged at scale. To do this, you need to create a series of rules that tell Insycle which record in each group should be selected as the master. The master is the record that will remain after the merge.
For example, if you had four records representing the same company, they would form a duplicate group of four records, which would be merged into a single master record. The other three records no longer exist.
For each duplicate group, Insycle will examine each Master rule to determine which records in the group meet the criteria. Rules are read in order, from top to bottom, and as soon as a record is the only one to meet a rule, it is selected as the master record. The subsequent rules are ignored.
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.
2) Fields tab
The Fields tab lets 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 field-by-field for any fields that need special handling.
For example, you might want to retain the earliest created "Company Name" while keeping the "Phone Number" that appears most frequently.
For each field you want to control, select the field and specify where its data should be sourced. This is merged into the master. Insycle evaluates your rules from top to bottom and stops at the first match for each field. This means rule order matters—place your most specific rules first, with broader fallback rules below.
The Criteria dropdown gives you various options for choosing the data to keep, and the Group Fields lets you keep values of multiple fields from the same record.
What happens to field data if I don’t create custom rules?
There is no need to create rules for every field in your CRM - Insycle automatically handles fields without specific rules using 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 handful of fields that require special handling rather than setting up rules for all your fields.
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.
Preview Merged Changes in Emailed CSV Report
Under Step 4, click the Review button and select Preview mode.
Click the Next button to go to the Notify screen, where you can select recipients for the email report and add additional context.
On the When tab, click the Run Now tab, select which records to apply the change to (if you have a lot of records, you might want to do a small batch to test), then click the Run Now button.
Insycle will generate a preview CSV and send it to your email. Open the CSV file from your email in a spreadsheet application and review the data.
There's a row for each record, which includes:
- The Result of the action
- A Message with details
- The Duplicate Group ID indicates which records will be merged together
- A record Status that identifies which were picked as master and which were identified as duplicates and merged into the master. See below for more details
- All fields used to identify the duplicates in Step 1
- The record ID, record name, or email, and Deeplink to the CRM record
- All fields selected for the Record and Fields rules in Step 3. Note that if a field is used on both tabs, it will only appear once in the CSV.
- Any additional fields added to the Layout tab in Step 2.
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.
- Error – If Insycle cannot determine which record the master is, an error message will appear here. See the Troubleshooting section below for more details.
If everything looks good, return to Insycle and move forward with applying the changes to Intercom.
Apply Changes to Your CRM Records
When you're satisfied with the results in your preview, you can apply the merge changes to your CRM.
Under Step 4, click the Review button again, and this time select Update mode.
On the When tab, you should use Run Now the first time you apply these changes to the CRM. If you have a large number of records, you may want to do a smaller batch to review the results in your CRM.
Configurations Reference
Duplicate Identification Rules (Step 1)
Step 1 controls which Salesforce records Insycle flags as potential duplicates. Each configured matching field acts as a filter — records must match all your specified criteria to be grouped together. For example, matching on Name AND Email Domain returns only results where both values are the same.
Core Matching Parameters
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 and leads:
- Email address
- Phone number
- Full name (first + last) combined with another identifier
- LinkedIn URL or other social profile
- Account ID or external system ID
For accounts:
- Website
- Account name combined with location or industry
- Tax ID or registration number
- External system ID (HubSpot ID, ERP system ID, etc.)
- Phone number or main office address
For other object types:
- Account ID
- Transaction or campaign ID
- 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.
Comparison Rule
The Comparison Rule determines how strictly field values must align to be considered a match.
- Exact Match looks for values that are identical with no differences between records. Use Exact Match for fields that should never vary if they represent the same entity — email addresses, domain names, ID numbers, and phone numbers (when formatted consistently) are all good candidates.
-
Similar Match searches for values that are close but differ by one character, such as typos, extra characters, or missing characters. This is often called "fuzzy matching" and helps find records with minor differences. The behavior is similar to how Google suggests alternative spellings when you search.
For example, if a Company Name of "Acme" is found, it could match records with values like "Akme," "Acm," or "Acma."
Similar Match uses looser criteria, casting a wider net for what constitutes a duplicate. It works best for text fields like names or company names, where minor variations are common. Use it carefully, and always review the results to ensure the identified duplicates are what you expect. Start with Exact Match for reliable duplicates, then layer in Similar Match for edge cases.
Note: ID fields only work with Exact Match, not Similar Match.
Ignored Elements
The Ignored parameter lets you exclude specific parts of a field value from the matching process — such as text, whitespace, or special characters. These elements will not be considered when comparing records.
Available Ignore Options:
- Symbols — Ignore punctuation and special characters. Useful when comparing phone numbers where formatting varies (e.g., (555) 123-4567 vs 5551234567).
- Whitespace — Ignore spaces, tabs, and line breaks. Useful when comparing phone numbers or formatted text with inconsistent spacing.
- Subdomain — Ignore the subdomain portion of URLs or email domains (www., app., mail., etc.). For example, www.acme.com and acme.com would match.
- Top-level domain — Ignore the domain extension (.com, .co.uk, .org, etc.). For example, acme.com and acme.net would match.
- URL path — Ignore everything after the domain in a URL (/about, /contact, /us/western-region, etc.). For example, acme.com/about and acme.com/contact would match.
-
Common Terms — Ignore business entity suffixes and common words that appear in company names. Insycle comes preloaded with terms such as Inc., LLC, Corporation, and Company. Click the Terms button to view and edit the full list on the Common Terms tab.
- Text (substrings) — Ignore specific text strings you define. Click the Terms button, select the Ignored Text tab, and enter the text to ignore. Separate multiple strings with a new line. For example, you might ignore "Customer -" or "Account #" if these prefixes are inconsistently applied.
Enabling Ignored Elements
After configuring which elements to ignore, remember to enable the setting by checking the corresponding box under Ignored (for example, Ignored Common Terms or Ignored Text (substrings)). The ignore rules won't apply unless this checkbox is selected.
Match Parts
Match Parts lets you compare only a specific portion of the field value rather than the entire value. This is useful when records contain the same core data but differ in formatting, prefixes, or suffixes.
Available Options
Entire Value — Compare the full field value (default behavior).
Word-based matching:
- First Word, Last Word
- First 2-5 Words, Last 2-5 Words
- Any 2-4 Words (matches if any consecutive words match)
Character-based matching:
- First 3-12 Characters
- Last 3-12 Characters
When to use Match Parts
Use Match Parts when you know that a specific portion of the field value is consistent across duplicates, but the full value varies. Common scenarios include:
- Phone numbers with inconsistent country codes — Use Last 10 Characters to match the core phone number while ignoring whether a country code is present (+1 555-123-4567 vs 555-123-4567)
- URLs with varying subdomains or paths — Use First 10-15 Characters to match based on the core domain
- Names with inconsistent prefixes or suffixes — Use First Word or Last Word to match on the primary name component
- IDs with prefixes — Use Last 8-12 Characters to match the core ID while ignoring a prefix that may vary
- Long field values that slow processing — When matching on fields with very long values (such as long ID numbers, LinkedIn profile URLs, or other URLs with query strings), Insycle takes longer to process the comparison. If the unique portion of the value is at the beginning or end, use Match Parts to limit the comparison to just the first or last several characters. For example, use Last 9 Characters to match LinkedIn profiles like https://www.linkedin.com/in/svadinir-nemec-1234b31a3/ based only on the unique identifier portion. Alternatively, use the Ignored Text (substrings) option to exclude the common URL prefix (https://www.linkedin.com/in/) from the comparison entirely.
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 Billing Address and Shipping Address fields for matching values. Or compare Mobile Phone, Business Phone, and Home Phone to find duplicates where the same number appears in different fields.
To configure Related Fields:
- On the Simple tab of Step 1, select the primary field you want to match on
- Click the Advanced tab
- Under Related Fields, select up to two fields that contain similar data
- 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.
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:
- On the Simple tab of Step 1, select the primary field you want to match on.
- Click the Conditions tab.
- 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.
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.
This approach works with any supported CRM, including HubSpot and Salesforce. No custom CRM fields are required.
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.
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.
Once uploaded, Insycle validates that the record IDs in the file exist in your CRM. Rows with invalid or missing record IDs will be skipped and will not appear in Step 2.
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
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.
Select Fields to Base Master Record Choice On
You can select any field from your CRM — whether writable or read-only — to base your master selection decision on. For each field, you'll set a condition that determines which record becomes the master.
Insycle reads rules in order from top to bottom. The first record that is the only one matching a rule becomes the master, and subsequent rules are ignored.
How Rule Ordering Works
Rule order matters. If your first rule is "Lifecycle Stage is Customer" and multiple records in the group are customers, Insycle moves to the next rule. If your second rule is "Email is work domain" and only one of those customer records has a work domain email, that record becomes the master — even if there are additional rules below.
Field Types You Can Use
- Writable fields — Any field you can edit in your CRM (Owner, Lifecycle Stage, Industry, etc.)
- Read-only fields — System fields like Email, Create Date, Last Modified Date, Record ID, engagement metrics
- Calculated fields — Number of associated records, email engagement counts, deal amounts
- System sync fields — External system IDs (Salesforce ID, ERP ID, etc.)
You can layer multiple rules for the same field to create fallback logic. For example, "Lead Source is Partner Referral" followed by "Lead Source is External Referral" — if no leads came from partner referrals, Insycle looks for external referrals.
Preventing Master Selection Failures
If none of your rules produce a unique match, Insycle cannot select a master, and the duplicate group will be skipped. To prevent this, add a catchall rule at the bottom of your list that applies to all records, such as "Create Date is earliest" or "Record ID is lowest." This ensures every duplicate group has a fallback option when more specific rules don't identify a clear winner.
Apply Conditions
Conditions define the logical criteria used to evaluate each record in a duplicate group to determine which one should become the master. When you define a condition, Insycle checks each record against your criteria (such as "Lifecycle Stage = Customer" or "Create Date is earliest") and selects the record that meets that condition. The available conditions vary based on the field type you've selected.
Standard conditions (text fields)
- Is / Is not — Match or exclude an exact value
- Contains / Does not contain — Match or exclude based on partial text
- Regex — Use a regular expression pattern for complex matching
- Exists / Doesn't exist — Filter based on whether the field has any value
Date field conditions
- Earliest / Latest — Select the record with the oldest or most recent date
Number field conditions
- Highest / Lowest — Select the record with the largest or smallest numeric value
Owner field conditions
- Active user — Select the record where the owner is currently an active user in your CRM
- Exists / Doesn't exist — Filter based on whether an owner is assigned
Email field conditions
- Not role-based (info@, etc.) — Exclude generic email addresses like info@, admin@, sales@
- Work domain (non-Gmail, etc.) — Select work email addresses, excluding common personal email providers
- Personal domain (Gmail, etc.) — Select personal email addresses from providers like Gmail, Yahoo, Outlook
- Exists / Doesn't exist — Filter based on whether an email address is present
Picklist and lookup field conditions
- Any of / Not any of — Select or exclude from multiple dropdown values at once
Most field types also support the Exists and Doesn't exist conditions to check whether the field contains any value.
Layering Conditions for the Same Field
You can create multiple rules for the same field to establish fallback logic. Insycle evaluates them in order and stops at the first one where a single record uniquely matches.
For example:
- Email is not role-based, such as hr@company.com or info@company.com
- Email is a work domain (a non-gmail.com, outlook.com, or other personal domain)
- Email exists
If no records in the group have an email that uses a name rather than department or other catchall, Insycle checks for an email that uses a work/private domain. If neither is found in any of the duplicates, select the record with an email address. This ensures you select the most qualified record available within each duplicate group.
This fallback pattern also works for other scenarios:
- Check for synced records first (HubSpot ID exists), then fall back to records with owners, then fall back to the oldest record
- Prioritize leads with closed status first, then those marked as working, and finally open leads
- Select the most engaged contact (highest email clicks), then most recently updated, then earliest created
Considerations When Picking a Master Record
The best master selection strategy depends on your record type and business priorities.
For Users and Leads:
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 (latest activity)
- Record with an owner assigned
- Most relevant and active email address
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 account strategies:
- Most associated contacts or opportunities
- Highest annual revenue or employee count
- Record synced with external systems (HubSpot, ERP)
- Record with active owner assigned
For records synced with external systems:
If you integrate with HubSpot, 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 synced system 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 Salesforce.
Core Configuration Options
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.
Criteria
The Criteria dropdown determines where the preserved value comes from and how it's handled during the merge. Select from the following options for choosing the data to keep:
Criteria marked with an asterisk (*) support the Group Fields feature. See the Group Fields tab for details.
From master record* — Use the value that exists in the master record. If the master field is blank, the value from the most recently updated duplicate will be used automatically. For example, you may want to keep the Owner or LinkedIn URL from the selected master.
From master record (even empty)* — If the field on the selected master record is blank, keep it blank. Don't automatically fill it in with a value from the most recently updated record.
This prevents unwanted data from being copied into the master when you specifically want the field to remain empty. This option also supports the Group Fields feature.
Example: If you're merging test records into production records and the test records have invalid data, use this to preserve the master's empty state rather than copying bad data forward.
Most frequent value — If the same value appears in multiple records within the duplicate group, use the one that appears most frequently.
Example: If three records have "Industry = Software" and one has "Industry = Technology," the master will be set to "Software."
From record where value* — Select data from one of the records in the duplicate group based on the field's value. The available options vary by field type.
- For number fields: highest, lowest
- For date fields: earliest, latest
- For text fields: exists, doesn't exist, specific value matches
Example: Keep the Employees count from the record with the highest number of employees.
From record based on other field value*— Look at a different field's value to decide which record's data to keep for this field. This lets you use one field as the decision criteria for selecting another field's value.
Example 1: Keep the Owner from the record where Industry contains "Software" or "Technology."
Example 2: Select the Account Name from the record with the earliest (oldest) Create Date.
Combine and append all values — Merge the values from the selected field across all records in the group. Values are concatenated, preserving data from each duplicate.
Example: If there is a Notes field, consolidate the notes from all duplicates into the master so no historical context is lost.
Rollup numbers— Aggregate numeric values from all records in the duplicate group. Available rollup types:
- Sum — Add all values together
- Average — Calculate the mean value
- Max — Keep only the largest value
- Min — Keep only the smallest value
Example: If duplicate contact records each have an "Amount Donated" field showing donations from different time periods, sum them and save the total to the master record.
Collect all values from other field — Select a destination field to copy and combine values into, then select what field the data should come from. This preserves data by moving it from one field location to another during the merge.
Example: Preserve the Owner values from all duplicates by collecting them into a custom "Previous Owners" field. Or collect Record IDs from all duplicates into a "Merged Record IDs" field for tracking purposes.
Select the destination field under "Field Name," then select which field the data should come from under "Other Field."
Collect non-master values from other field — Aggregate values from all duplicates except the master, excluding any values that match the master's value. This ensures you collect only unique values that differ from those already in the master.
Example: If you want a record of the Record IDs that were removed during the merge (excluding the master's ID), create a custom "Merged Record IDs" field in your CRM, then use this criteria to collect only the non-master IDs. This is helpful when you need to track which records were merged for cross-system cleanup or audit purposes.
Select the destination field under "Field Name," then select which field the data should come from under "Other Field."
Apply Condition
Conditions define the logical criteria that determine which values are retained during the merge. When you add a condition to a field, Insycle evaluates each record's value against your rule (e.g., "Country = United States" or "Email is work domain") and retains the value only if the condition is true. Not all Criteria options support conditions—when available, the Condition dropdown appears next to the Criteria you've selected.
Standard conditions
These are available across most field types:
- Is / Is not — Match or exclude an exact value. For example, retain the Country value only when it is "United States."
- Contains / Does not contain — Match or exclude based on whether the value includes specific text. For example, retain the Website value only when it contains "acme."
- Exists / Does not exist — Filter based on whether the field has any value at all. For example, retain the Phone field data only from a record where a phone number exists.
- Regex — Use a regular expression pattern for more precise matching. Useful for values that follow a known format, like ID numbers or postal codes.
Picklist and lookup conditions
For fields that use a dropdown or reference another record (such as owner fields):
- Any of / Not any of — Select or exclude multiple values at once without needing pipe separators. For example, retain the Lead Status only when it is one of the following: Converted, Working, or Open.
Field-type-specific conditions
Certain field types unlock additional condition options:
- Owner fields — Active user. Retains the value only from a record where the owner is currently an active user in your CRM. For example, use this with the "From record where value" Criteria to ensure the merged record ends up with a functioning owner assignment.
- Email fields — Not role-based (info@, etc.), Work domain (non-Gmail, etc.), Personal domain (Gmail, etc.). Filters based on the type of email address. For example, only keep the Secondary Email value if it uses a personal domain like 'outlook.com' or 'gmail.com' to ensure non-work contact information is preserved.
- Number fields — Available when using the Rollup numbers Criteria. Choose how to aggregate: sum, average, max, or min.
Using Conditions With Multiple Values
Several conditions support combining multiple values in a single rule using pipe-separated syntax.
To match against more than one value with Is, Is not, Contains, or Does not contain, separate each value with a pipe character ( | ).
Example: To retain the Country field when it contains either "United States" or "Canada," enter: "United States|Canada"
For picklist fields, use any of or not any of instead — these let you select multiple options from a list without needing pipe separators.
Be Careful with Multiple "Is Not" Rules on the Same Field
If you create two separate negative rules for the same field — for example, "Country is not UK" followed by "Country is not US" — they can work against each other. The second rule can unintentionally match values that the first rule was meant to exclude. A record with Country = UK will fail the first rule but pass the second ("is not US"), so UK could still end up being selected.
To avoid this, combine your exclusions into a single rule: Country is not any of UK|US
Keep Multiple Values Based on One Rule
The Group Fields option lets you keep values of multiple fields from the same record based on a single rule. When you select a field value based on a condition, you can also preserve other related fields — even if those other fields are empty.
Group Fields is available when using the following Criteria:
- From record where value
- From record based on other field value
- From master record
- From master record (even empty)
How It Works
Configure your primary field rule as normal, then click Group Fields and select additional fields to preserve from the same record. If the record that meets your primary condition has values in the grouped fields, those values are copied to the master. If the grouped fields are empty in that record, the blank values overwrite whatever was in the master.
Important: Group Fields will overwrite existing master values with blank values if the selected record has empty grouped fields. Use Group Fields only when you want to keep data from the same source record together, regardless of whether all fields are populated.
Example 1: Address fields
If a record has a Country value, you can group it with City, State, Street Address, and Postal Code to preserve the complete address from the same record. If any of the grouped address fields on that record are blank, those blank values will overwrite the master's existing address data.
Example 2: Record owner fields
Select the Contact Owner from the record with the earliest Create Date, then also save the Success Owner from the same record. If the Success Owner field on that record is blank, the master's Success Owner field will be blanked out as well.
Save, Automate, and Schedule
After you've reviewed the results in the CRM and are satisfied with how the operation runs, you can save your configuration as a template and set up automation so the merge operation runs on a set schedule. If you have several templates you'd like to run together automatically, you can create a Recipe.
By automating with a template, you'll save time and ensure your duplicates merge consistently on an ongoing basis.
Save Your Configuration as a Template
Return to the Template menu at the top of the page and click Copy to save your configurations as a new version of whatever template you started with. Then click the pencil to edit your new template name.
Set Up Automation
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 (and make sure to hit Enter after each address). You can also provide additional 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.
Bundle into a Recipe
When you have multiple templates that work reliably together — for example, separate templates for contacts, companies, and deals — you can combine them into a Recipe. A Recipe runs your templates in sequence, in the order you define, on a consistent schedule.
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.
If you've configured the Insycle Run ID property in Intercom, you can cross-reference these operations in your CRM records.
Advanced Techniques
Merge Duplicate People Across Leads and Users
If you're experiencing issues because the same person appears in Intercom as both a lead and a user, you can use the Merge Duplicates module to deduplicate leads and contacts together.
In the Merge Duplicates module, select the Users record type from the top menu.
Then, under Step 1, check the Include Leads checkbox.
To learn more, see Deduplicate Across Intercom Users and Leads.
Identify Duplicates with the Insycle Intercom Inbox App
Once installed, the Insycle Inbox app adds a widget to your Intercom inbox that lets you quickly check for duplicates in an open conversation.
To access the "Insycle Data Management" widget, open the conversation and click the Check for Duplicates button on the right-hand side of the screen.
Then, Insycle will compare the contact in your currently opened conversation against other contacts in your database, and give you the option to merge.
To learn more, see Deduplicate in Intercom Inbox with the Insycle App.
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 the records, you may need more granular control for picking records to include or exclude from the process.
To do this in bulk, you can create a CSV and use the Magical Import module.
In these cases, you can use CSV files to customize your bulk merging, designate master records, and exclude records from deduplication. Then you can import the CSV from the Magical Import and use the Merge Duplicates module for complete control over the final merge operation. Learn how to customize merging Duplicates in bulk using a CSV.
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 only for cases needing a careful, controlled process. Learn more about merging duplicates in Manual mode.
Insycle Run ID Property in Intercom
If you have set up the Insycle Run ID attribute in Intercom, every Insycle operation that updates a record will update the Run ID in the record. This can be used to look up process reports in the Activity Tracker or to get help from support.
When using an Insycle Recipe that includes templates for more than one object type, such as companies and leads, the same Run ID will appear in both records.
If the Insycle Run ID doesn't already exist in your Intercom database, add it as a custom attribute with the label "Insycle Run ID" to each object type as needed.
This object label is the only requirement for the integration to work properly. It's not dependent on the internal name or underlying API field name.
Tips for Bulk Merging Duplicates
- Begin with easy-to-find duplicates. Iterate through fields and rules you know will surface duplicates. Don’t expect to resolve all your duplicates by setting up and running this process once. You will need to run this process multiple times for different fields or nuanced variations.
- Save templates. Each time you get a Merge Duplicates process to run the way you want in your database, save it as a template. When you have a solid set of templates that reliably resolve most of your dupes, you can put them together as a Recipe that can run on a regular, automated schedule.
- Look for edge cases that fall outside your standard rules. These may be templates you run manually so you can make adjustments based on what you find.
- Do some experimentation. Use the Preview mode CSV report to analyze patterns in the duplicates. Add additional fields to the CSV by clicking the gear icon in Step 2 and including them in the Layout. You may learn what is causing the duplicates and learn how to avoid having them in the first place. You may also want to explore your data in the Grid Edit module to understand what you have so you can design templates that catch all potential variations.
Troubleshooting
If you're not seeing the results you expect when merging duplicates, consider these issues:
Insycle isn't finding any duplicates
Most of the time, when Insycle can't find duplicates, it is due to your matching rules in Step 1. It is important to analyze the underlying data to better understand how to set up your rules. A helpful exercise for contacts is to set up your matching filters to find exact matches on only First Name and Last Name. For companies, you can use Company Name.
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 just for discovery and should not be used for a final merge operation; many people can have the same first and last names and are not duplicates.
To get further context, on Step 2, click the layout 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.
"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).
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:
-
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.
-
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.
- 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.
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.
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.
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.
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.
For more help troubleshooting issues with Insycle, refer to our Troubleshooting Issues article.
Frequently Asked Questions
Does Insycle offer an Intercom Inbox app?
Yes, Insycle offers an Intercom Inbox app. To learn more, check out this article: Deduplicate in Intercom Inbox with the Insycle App.
What happens to conversations when duplicates get merged?
When merging Intercom leads with leads or users with users:
- Open conversations: Duplicate contacts will be detached from open conversations, and the master contact will be attached to those conversations.
- Closed conversations: Closed conversations cannot be transferred directly in Intercom. Instead, they are preserved as notes in the master contact record — one note per closed conversation. The original conversations are not moved or re-created as conversations in the master record. (Notes are searchable in Intercom.)
When merging leads with users, Insycle uses the underlying Intercom merge API, so conversations will be merged according to those rules.
Can Insycle deduplicate across leads and users?
Yes, Insycle can deduplicate across leads and users simultaneously. Please check out this article to learn more: Deduplicate Across Intercom Users and Leads.
How do I ensure that I am not merging non-duplicate records together?
There are two ways to ensure the records you are merging are indeed duplicates.
First, always run your deduplication templates in Preview Mode before running them in Update Mode. This produces a CSV file showing how your records would have been merged. Then you can ensure that your Merge Duplicates template is working as expected and not merging non-duplicate records together.
Additionally, to ensure a smooth merge, consider narrowing the matching settings in Step 1. Try the Exact Match Comparison Rule instead of Similar Match. Then make sure that you are using actual, uniquely identifying fields—first name, last name, email, and phone number are popular choices. The more tightly defined your filter is, the less likely you are to merge non-duplicate records.
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.
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.
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.
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.
Insycle is having trouble determining a master record. What could be causing this issue?
If the Message column of the CSV report displays this error:
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).
None of the records meet more of the rules than the others do.
There are a couple of things you can try to resolve this:
- On the Master tab in Step 3, experiment with reordering or adding additional fields that are likely to have unique values.
- At the bottom of the Master tab in Step 3, ensure By Priority is selected, not Absolute.
With By Priority, your master record only has to match one rule. Using Absolute, your master record would have to meet all of the rule criteria. In most cases, it is best to select By Priority.
If By Priority was used, then none of the records in the duplicate group meet any of the criteria on the list more than the others. In this case, you'll need to experiment, reordering or adding additional rules for fields likely to have unique values. - As a last resort, you can add a rule on the Master tab in Step 3 that says Record ID is lowest, or Create Date is earliest.
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.
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:
- 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.
- Create a custom field called "Merge Master" in your CRM.
- Use the Magical Import module to import your CSV file into the CRM, updating the "Merge Master" field for the relevant records.
- 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.
How many duplicates can I merge into one master record?
You can merge up to 100 duplicate records into a single master record.
By default, Insycle skips any duplicate group containing more than 5 records. If you have duplicate groups with more than 5 records, you may want to adjust the Exclusions setting at the bottom of the Master tab in Step 3. The Skip duplicate groups with more than X records per group setting can be increased up to 100 records per group to ensure all duplicates in large groups are processed.
This default limit is a precaution to prevent duplicate matching criteria that are too broad in Step 1 from accidentally merging many non-duplicate records. If you plan to set this number higher, it is a good idea to run Preview Mode first to ensure your deduplication template is operating as you intend.
Why can I only process 50 duplicate groups at a time?
Insycle displays 50 records on the module screen as a preview; this is not the full list. Insycle can process thousands of duplicate groups in a single operation. You could potentially deduplicate your entire database in a single step.
When using the Preview in Step 4, select the "All" option under When > Run Now to view all records in the Preview CSV report. When you run the operation in Update mode, all records will automatically be included.
Additional Resources
Related Help Articles
Related Blog Articles