Skip to content
SolutionArg

Data

The HubSpot Data Cleanup Checklist (Before Your Next Report Lies to You)

A step-by-step HubSpot data cleanup checklist: duplicates, properties, lifecycle stages, associations and integrations, with the plan limits that apply.

By SolutionArg6 min read

TL;DR

  • Clean in this order: duplicates → properties → lifecycle stages → associations → integrations → prevention.
  • HubSpot automatically deduplicates contacts by email and companies by domain on all plans (HubSpot KB).
  • The duplicates manager needs a Professional or Enterprise subscription (up to 10,000 pairs). Bulk management needs Data Hub Professional (30,000 pairs) or Enterprise (100,000) (HubSpot KB).
  • Most "dirty data" is created by integrations and forms. Fix the source, or the mess comes back next month.

Why reports start lying

A pipeline report says revenue is up 20%, but half the deals are duplicates created by a sync. A lifecycle funnel shows hundreds of "Leads" who are long-time customers. A segment misses half your buyers because "Industry" has 14 spellings of "Manufacturing".

None of this is a reporting problem. It's a data problem. Fix it in a fixed order, because each step makes the next one easier.

Before you start

  • Export a backup of contacts, companies and deals.
  • Freeze changes to integrations and imports during the cleanup window.
  • List every system that writes to HubSpot: forms, imports, Make/n8n scenarios, native integrations and custom code.
  • Agree on owners. Who decides what "Industry" values are allowed? Who approves merges?

Step 1 — Duplicates

What HubSpot already does for you (all plans)

According to HubSpot's KB (source):

  • Contacts are deduplicated by email address. Manual creation with an existing email is blocked; form submissions and imports with an existing email update the existing contact.
  • Companies are deduplicated by company domain name.
  • Record IDs can be used to deduplicate contacts, companies, deals, tickets, products, admin-activated objects and custom objects. For imports, include the Record ID or a custom property that requires unique values.

What you need a paid tier for

The duplicates manager (source):

  • Professional or Enterprise: review and resolve individual duplicates, with up to 10,000 duplicate pairs shown.
  • Data Hub Professional: bulk management, with up to 30,000 pairs. Data Hub Enterprise: up to 100,000 pairs.
  • HubSpot compares records as they're created, and checks once daily if no records were created that day.
  • By default, contacts are matched on first name, last name, email, IP country, phone, zip code and company name. Companies are matched on domain, name, country/region, phone and industry. You can also create custom rules.
  • To use it you need Data quality tools access plus the right edit permissions, or Super Admin.

Checklist

  • Review duplicate pairs, contacts first, then companies.
  • Decide merge rules before merging (which record "wins").
  • For deals and custom objects, find duplicates by the source system ID and merge or archive.
  • Note which integration created each duplicate, because that's your prevention list.

Step 2 — Properties

Custom properties count against CRM data limits, which depend on your subscription (HubSpot KB — CRM data limits).

  • Export the property list for contacts, companies and deals.
  • Flag properties with no values or no recent updates. Ask the owner before you delete anything.
  • Find near-duplicates ("Industry", "industry_2", "Company Industry").
  • Convert free-text fields used for segmentation into dropdowns with controlled values.
  • Standardise existing values (bulk edit or a re-import keyed on Record ID).
  • Document each property: purpose, owner, which system writes to it.

Step 3 — Lifecycle stages

  • Write a one-line definition of each stage your team uses.
  • Check which forms set a lifecycle stage. HubSpot forms can update lifecycle stage on submission, but can't move a record backwards. A stage set on a form overrides the default lifecycle stage in your settings (HubSpot KB — forms).
  • Find impossible combinations (for example, "Customer" with no closed-won deal) and fix them in a controlled list.
  • Make sure only one mechanism moves each stage: a form, a workflow or an integration, never all three.

Step 4 — Associations

Unassociated records break reporting: deals without companies, contacts without companies, tickets without contacts.

  • Build saved views for deals with no associated company and contacts with no company.
  • Fix in bulk where a rule exists (for example, email domain → company domain).
  • If you need to describe how records relate (billing contact, decision maker), consider association labels on Professional or Enterprise (HubSpot KB — CRM data limits).
  • For API-driven fixes, use the associations API (HubSpot Developers).

Step 5 — Integrations (the usual culprit)

For each system that writes to HubSpot, check:

  • Does it store the source system's ID in a unique property? Without one, every retry risks a duplicate.
  • Does it create or upsert? HubSpot's batch upsert creates missing records and updates existing ones, keyed on a unique identifier property (HubSpot Developers).
  • Which properties does it own? Two tools writing the same field means flip-flopping values.
  • What happens on failure? Are errors logged and alerted, or silently dropped?

My rule for integrations: no sync goes live without a unique source ID property and an upsert-style write. It's the cheapest duplicate prevention there is.

Step 6 — Prevention

  • Forms: use dropdowns, not free text, for anything you segment on. Use hidden fields to capture UTMs and source data (HubSpot KB — hidden fields).
  • Imports: require a Record ID or unique property column for updates.
  • Permissions: limit who can create properties.
  • Monthly review: duplicates manager queue, new properties, integration error logs.
  • Quarterly: re-run this checklist, lightly.

How long does it take?

It depends on record volume, the number of integrations and how many properties nobody owns. A small portal with one or two integrations can often get through Steps 1–4 quickly. A portal with years of imports and several syncs needs a scoped audit first.

When I build a CRM structure from scratch (pipelines, deal stages, lead flow, qualification workflows), I design for Steps 2–6 on day one. Prevention is far cheaper than cleanup.

Sources

FAQ

Does HubSpot remove duplicates automatically? On all plans, it deduplicates contacts by email address and companies by domain name. Other duplicates need the duplicates manager or Record ID-based imports.

Which plan do I need to merge duplicates in bulk? Data Hub Professional (up to 30,000 pairs) or Enterprise (up to 100,000 pairs).

Can a form move a customer back to "Lead"? No. HubSpot forms can't move a record's lifecycle stage backwards.

How often should I clean HubSpot data? Do a light monthly review of duplicates, new properties and integration errors, and a fuller pass quarterly.

Let's find the manual work hiding in your HubSpot.

30 minutes. You show me how things work today; I'll tell you what I'd fix first and roughly what it takes — no pitch deck.

Almost always reply within 24 hours