CCCleanupCRM
PricingPartnersAboutBlog
Book Audit
← Back to blog
CRM cleanupHubSpotdata governancededuplicationRevOps

The 7-Step CRM Cleanup Sequence (And Why Order of Operations Matters)

April 20, 2026·7 min read·By Kamesh Venkat

The most common mistake in CRM cleanup isn't bad data. It's doing the right things in the wrong order.

Teams that jump straight into deduplicating contacts — because that's where the visible pain is — often end up doing portions of that work twice. Not because they did it wrong, but because the ground shifted under them when they ran the company cleanup afterward.

Order of operations is strategy. Here's the sequence we follow on every engagement, and the reason each step comes where it does.

What is the correct order for CRM cleanup?

The correct order for CRM cleanup is: (1) pause integrations creating new records, (2) resolve company duplicates, (3) deduplicate contacts, (4) validate email addresses, (5) build segments, (6) build workflows and automation, (7) clean up ghost records. Doing these out of sequence — especially deduplicating contacts before resolving companies — creates rework and broken associations.


Step 1 — Pause anything creating new records

Before touching a single record, answer this question: is anything still adding to the CRM right now?

Integrations, enrichment tools, form syncs, Clay workflows — these run continuously in the background. If they're active during cleanup, you're mopping a floor with a leaky pipe overhead.

What to do:

  • Audit every connected app in HubSpot's integration settings
  • Pause workflows that auto-create or auto-update records
  • Get confirmation from the team that no bulk imports are scheduled
  • Set a "cleanup window" start and end date

This step takes 30 minutes. Skipping it can add days of re-work.


Step 2 — Resolve company duplicates before touching contacts

This is the counter-intuitive step that most teams get wrong.

Contacts live inside companies. Every contact association points to a company record ID. If you deduplicate contacts first, you produce clean merged contacts whose company associations point to records that are about to disappear in the company cleanup pass. You'll need a second contact pass to fix it.

The scale of the problem

In large CRMs, the company record problem is often worse than expected:

  • A significant portion of company records often have no contacts attached at all — ghost records from unchecked integrations or bulk imports running for years
  • Of the duplicates that do have contacts attached, the association risk is concentrated in a small percentage of clusters

The rule of thumb:

  • 90–97% of duplicate company volume is safe to bulk delete (no contacts, no deals attached)
  • The remaining 3–10% — records with live contacts — must be merged, not deleted, so associations carry over to the winning record automatically

HubSpot API vs. the Duplicate Manager

For large volumes, both merging and deletion are best handled via the HubSpot API rather than the UI. The native Duplicate Manager works for small batches but has two critical limitations:

  1. No bulk action — you approve pairs one at a time
  2. It only shows its own suggested pairs, not the clusters you've identified yourself

The API's merge endpoint (POST /crm/v3/objects/companies/merge) processes records programmatically. Bulk deletes can be batched efficiently — just respect the rate limits.

HubSpot API rate limit: 100 calls per 10 seconds. For 50,000+ deletions, build in throttling or you'll hit 429 errors mid-run.


Step 3 — Deduplicate contacts

Now that company records are stable, you can merge contacts safely.

The key nuance most tools miss: not every matching record is a duplicate. A person with two roles at the same organisation isn't a duplicate — merging them destroys real relationship data. Tools like Insycle or Dedupely help, but they need human rules behind them.

Dedup by identity, not just name match. The merge criteria should combine:

  • Email address (exact match)
  • Phone number (normalised)
  • Company association (now reliable since Step 2)
  • LinkedIn URL if available

Merge into the record with the richer activity history. Set the primary email to the most recently validated address.


Step 4 — Validate email addresses

Validate after dedup, not before.

Verifying addresses on contacts that later get merged wastes credits — and may leave the surviving record with an unvalidated primary email from the wrong source record.

Run validation against your final clean contact list using ZeroBounce, NeverBounce, or Debounce.

Email deliverability benchmarks

| Deliverability rate | Status | Action | |---|---|---| | 95%+ | Healthy | Safe to run campaigns | | 85–94% | Caution | Segment before sending | | 80–84% | At risk | Suppress unknowns immediately | | Below 80% | Critical | Stop all sends — domain reputation at risk |

Target: 95% or above. Below 80% means you're actively damaging your sending domain's reputation with every campaign. Recovery takes months.


Step 5 — Build segments

Lists built before cleanup are wrong the moment they're published. They include deleted contacts, miss merged ones, and filter on lifecycle stages that haven't been corrected yet.

Build segments after the data is clean. Then HubSpot's active lists stay accurate automatically — because the underlying record quality supports them.

The segments that matter most after a cleanup:

  • Lifecycle stage lists (Lead / MQL / SQL / Customer / Churned)
  • Engagement cohorts (last activity within 30/60/90 days)
  • Enrichment targets (contacts missing key fields)
  • Re-engagement candidates (valid email, no activity in 6+ months)

Step 6 — Build workflows and automation

Automation is a multiplier. Clean data plus automation means the CRM runs itself. Dirty data plus automation means the mess moves faster.

Build workflows only after the data is right. Lead routing, lifecycle assignment, re-engagement sequences, AI scoring triggers — all of these depend on the underlying data being correct when they fire.

This includes your AI tools. HubSpot Breeze, Clay enrichment rules, and Apollo sequences all consume CRM data as input. Running them before this step means you're training your AI tools on garbage — and confident, inaccurate outputs are worse than no output at all.


Step 7 — Clean up ghost records last

Ghost records — no contacts, no deals, no activity, no owner — are the lowest urgency item. They matter (they slow search, inflate counts, muddy reports), but they're not causing daily operational pain.

Tackle them after the live working set is solid — so that any borderline record that might be salvageable has been caught in earlier passes before it gets deleted.

What to delete:

  • Company records with no contacts, no deals, no activity in 24+ months
  • Contact records with invalid emails, no owner, no activity — after validation confirms no deliverable address exists
  • Deal records in terminal stages with no close date, no activity, no contact

The common thread

Every step in this sequence exists to prevent rework in a later step:

  • Pausing integrations prevents new noise entering during cleanup
  • Company merges before contact dedup prevents broken associations
  • Email validation after dedup prevents wasted credits on contacts about to be merged
  • Segments after validation prevents unreliable lists built on uncleaned data
  • Workflows after segments prevents automation running on bad data
  • Ghost cleanup last prevents premature deletion of records still in flux

CRM cleanup done right is a one-pass operation. The sequence is what makes it one pass.


Frequently asked questions

Should you delete or archive duplicate company records in HubSpot?

Records with no contacts or deals attached can be deleted permanently. Records with live contacts must be merged — never deleted — so contact associations, deal history, and activity carry over to the surviving record via HubSpot's merge API.

Can HubSpot's built-in Duplicate Manager handle large-scale cleanup?

No. HubSpot's Duplicate Manager surfaces its own suggested pairs one at a time with no bulk merge option. For cleanups involving hundreds or thousands of duplicate clusters, the HubSpot API (POST /crm/v3/objects/companies/merge) is the only practical path.

What is the HubSpot API rate limit for merges and deletions?

HubSpot allows 100 API calls per 10 seconds. For large batch operations — 10,000+ records — throttle your requests accordingly to avoid 429 rate-limit errors mid-run. For very large volumes, consider batching overnight or across multiple days.

What email deliverability rate should you target after CRM cleanup?

Target 95% or above. Below 80% deliverability means a significant portion of every campaign is bouncing or going to spam, which damages your sending domain's reputation over time. Recovery from domain reputation damage typically takes 3–6 months of careful sending behaviour.

How long does a full CRM cleanup take?

For a SMB with 10,000–50,000 contacts: the seven-step sequence typically takes 3–5 days of focused execution time, assuming Steps 1–2 (pausing integrations and company cleanup) are planned in advance. Larger databases or those with complex integration environments can take 1–3 weeks.

Do I need to involve my sales team during cleanup?

Yes — specifically for Steps 2 and 3. Company merge decisions that affect accounts your sales team actively works require their input on which record is the "winner." Contact decisions affecting active deals or open sequences need sales approval before merge. The technical execution can be done without them, but the business logic decisions should not.


Ready to clean your CRM the right way?

If you're about to run a cleanup — or you've already tried and hit the "rework" problem — we can help you do it once, in the right order, with documentation your team can follow going forward.

Book a free 20-minute architecture review →

Or reach out directly at kamesh@cleanupcrm.com

Ready to fix your CRM foundation?

Book a free 20-minute architecture review. We'll map your current stack and identify the biggest data governance gaps.

Book a Free Architecture Audit →

Related posts

April 25, 2026·6 min read

Why your Clay enrichments keep failing (it's not Clay's fault)

Clay enrichment failures are almost always a CRM data problem, not a Clay problem. Here's exactly why — and how to fix the foundation.

Read Why your Clay enrichments keep failing (it's not Clay's fault) →
CCCleanupCRM

CRM cleanup services for B2B sales and RevOps teams. We clean the data and fix the system behind it.

Book a CRM Cleanup Audit →

Services

  • CRM Cleanup
  • CRM Data Cleanup Services
  • CRM Consolidation
  • CRM Database Cleanup Consultants
  • CRM Data Cleansing
  • CRM Deduplication
  • CRM Data Enrichment
  • CRM Integrations
  • CRM Implementation
  • Fractional RevOps
  • GTM Implementation

Solutions

  • Before AI Sales Rollout
  • Before CRM Migration
  • Before Outbound Campaigns
  • For B2B SaaS

Resources

  • CRM Cleanup Checklist
  • CRM Cleanup Cost
  • CRM Data Hygiene Guide
  • CRM Data Quality Audit

Company

  • About
  • Pricing
  • Partners
  • Blog
  • Privacy
  • Terms
© 2026 CleanupCRM. All rights reserved.
PrivacyTermsPartners