Back to HubSpot in Excel
SheetXAI logo
HubSpot logo
HubSpot · Excel Guide

Deduplicate HubSpot Contacts by Merging Pairs From an Excel Workbook

The Scenario

You are a CRM admin. An enrichment tool just finished its run. The output is an Excel workbook with 90 rows in the Duplicates tab: column A is the primary contact to keep, column B is the duplicate to merge in.

The head of sales has set a deadline: clean by end of this sprint.

The slow version:

  • You open HubSpot's merge contacts tool and search for the first contact ID
  • You paste in the secondary ID and confirm the merge
  • At eight merges per hour, this takes eleven hours across two days
  • You finish two days after the sprint ends.

The fast version is one prompt.

The Easy Way: One Prompt in SheetXAI

SheetXAI reads the Duplicates tab and merges every pair in HubSpot, with status written back per row.

Open the SheetXAI sidebar and type:

For each row in the Duplicates tab, merge the HubSpot contact in column B into the primary contact in column A. Write "MERGED" to column C if successful, or the error message if the merge fails.

SheetXAI reads all 90 rows, calls HubSpot's merge API for each pair, and writes the result back into column C.

What You Get

A workbook with column C populated in the Duplicates tab and 90 fewer duplicate records in HubSpot:

  • "MERGED" — for every pair that combined successfully
  • Error message — inline, for any pair where the merge failed
  • A clean CRM — activity and notes consolidated on the primary record

The inline status is what makes the batch auditable. If a merge fails halfway through because an ID was deleted, column C tells you exactly which pairs completed and which did not.

What If the Data Is Not Quite Ready

Enrichment tool outputs are not always in the right format or completeness level.

When some contact IDs are no longer valid

The enrichment tool ran two weeks ago and some contacts have been deleted since.

For each row in the Duplicates tab, check whether both contact IDs in columns A and B still exist in HubSpot before merging. If either ID is missing, write "SKIPPED — ID NOT FOUND" to column C.

When you want to review before merging

You want to see the contact details for each pair before committing.

For each row in the Duplicates tab, fetch the name, email, create date, and last activity date for both contact IDs (columns A and B) and write them into columns D through K. Do not merge yet.

When you need to identify new duplicates in addition to merging the known ones

Beyond the 90 identified pairs, you want to flag additional potential duplicates.

Merge the pairs in the Duplicates tab as instructed. Then search HubSpot for contacts with more than one record sharing the same email domain as each company in column D. Write duplicate count and oldest contact ID to columns E and F for review.

When the full cleanup needs to happen in one operation

Merge the known pairs, update lifecycle stages on the surviving records, and flag newly identified potential duplicates.

For each row in the Duplicates tab, merge the contact in column B into the primary in column A. After merging, update the primary contact's lifecycle stage to column C if not blank. Write merge status to column D and lifecycle update status to column E.

The pattern: the enrichment workbook is the input. SheetXAI merges, flags, and updates in a single pass.

Try It

Get the 7-day free trial of SheetXAI and open any Excel workbook of HubSpot duplicate contact pairs, then ask it to run the merges. The HubSpot integration is included in every SheetXAI plan. For related workflows, see how to bulk-update HubSpot contact properties in Excel or the HubSpot in Excel overview.

Stop memorizing formulas.
Tell your spreadsheet what to do.

Join 4,000+ professionals saving hours every week with SheetXAI.

Learn more