HubSpot & RevOps

How to Clean a Messy HubSpot

A step-by-step guide to auditing and cleaning your HubSpot CRM: fix duplicate contacts, broken lifecycle stages, dead automations, and bad data without blowing everything up.

September 3, 2023

How to Clean Up a Messy HubSpot CRM Without Starting From Scratch

You set up HubSpot with good intentions. Contacts were imported, lifecycle stages were configured, a few automations were turned on. For a while it worked fine.

Then the team grew. A few CSVs were imported without a clear naming convention. Someone left and their deals stayed open. Marketing built workflows on top of lifecycle stages that sales had quietly stopped using. A new hire set up a duplicate pipeline because the existing one was too confusing to work with.

Now you have a CRM that technically has data in it but nobody fully trusts. Sales works around it. Marketing emails the wrong people. Reports show numbers that don't match what's actually happening in the business.

The tempting answer is to wipe everything and start from scratch. It's almost never the right one. The history in your CRM has real value - deal records, contact activity, customer data. What you need isn't a blank slate. You need a structured cleanup that removes the noise without destroying what's underneath it.

This guide walks you through exactly that, step by step.

TL;DR - Quick Answers for Skimmers

  • What does it mean to clean up a HubSpot CRM? Cleaning up a HubSpot CRM means fixing the structural problems that make the data unreliable: duplicate contact and company records, incorrectly assigned lifecycle stages, stale deals sitting in the pipeline, broken automations, and inconsistent property data. It does not mean deleting everything and starting over.

  • How long does a HubSpot CRM cleanup take? For a B2B SaaS company with 5,000 to 20,000 contacts, a structured cleanup takes four to six weeks. Larger or more complex databases take longer, especially if automations are deeply interconnected.

  • What are the steps to clean up HubSpot? Audit contacts and companies, merge duplicate records, redefine and reassign lifecycle stages, close or remove stale deals, review and fix automations, standardise property data, and archive what you no longer need. In that order.

  • Can you clean up HubSpot without losing data? Yes. The right approach is to export a full backup first, then clean in stages. Merging duplicates consolidates history rather than deleting it. Archiving keeps records accessible without cluttering active views.

Table of Contents

  1. Why HubSpot Gets Messy
  2. Signs Your HubSpot CRM Actually Needs a Cleanup
  3. Before You Start: Set a Baseline
  4. Step 1 - Audit Your Contact and Company Data
  5. Step 2 - Fix Duplicate Records
  6. Step 3 - Redefine and Reassign Lifecycle Stages
  7. Step 4 - Clean Up Your Deal Pipeline
  8. Step 5 - Review and Fix Your Automations
  9. Step 6 - Standardise Properties and Data Entry
  10. Step 7 - Archive What You Don't Need
  11. How to Keep HubSpot Clean Going Forward
  12. When to Get Help

1. Why HubSpot Gets Messy

HubSpot is easy to get started with. That's one of its biggest selling points. But easy to start means easy to set up without thinking through what happens six months later - and that's where most CRM problems begin.

Here's a pattern we see constantly. A founder imports a CSV of 3,000 contacts from a conference. A marketer sets up lifecycle stages based on HubSpot's defaults without defining what each one means internally. An SDR creates deals manually and everyone does it slightly differently. Someone builds a lead nurture workflow and then leaves the company. A year later nobody's sure what's running, what's accurate, or what's safe to touch.

The instinct at that point is to wipe everything and start clean. That's almost always the wrong call. The data underneath the mess has value - deal history, contact activity, customer records. A reckless cleanup destroys it. A structured one preserves what matters and removes what doesn't.

2. Signs Your HubSpot CRM Actually Needs a Cleanup

You probably already know something's off. Here are the specific signals that tell you the problem is structural:

Signal What it usually means
Pipeline reports don't match what sales is seeing Deals are sitting in wrong stages, lifecycle data is off
Marketing is emailing churned customers Lifecycle stages or suppression lists are broken
Sales ignores HubSpot and tracks deals in a spreadsheet They don't trust the data
Thousands of contacts with no owner or activity Bad import hygiene, no clear ownership rules
Automations sending emails nobody intended Workflows built on outdated logic, never reviewed
Attribution reports show nothing useful Deal sources and contact origins not captured consistently

If two or more of those are true, you're not dealing with surface-level hygiene. You're dealing with a structural problem that's actively costing you pipeline visibility.

3. Before You Start: Set a Baseline

The worst thing you can do is start deleting before you know what you have.

Checklist before you touch anything:

  1. Export a full contact and company database backup (Contacts > Export, select all properties)
  2. Export all deals with associated contact and company IDs
  3. Write down what your CRM is supposed to do - lifecycle stage definitions, required properties, pipeline stages - even roughly
  4. Brief your sales team on what's changing and why
  5. Confirm that only one person has admin access and is making changes during the cleanup

The documentation step feels like overhead. It isn't. You can't clean something against an undefined standard. Even a rough one-page doc covering what each lifecycle stage should mean will save you multiple arguments and a week of rework later.

4. Step 1 - Audit Your Contact and Company Data

Before fixing anything, map the problem. In HubSpot, use filters to pull the following segments and note the numbers.

Contact audit - pull these lists:

Filter What you're looking for
Lifecycle stage = none Contacts that were never properly classified
Contact owner = none Records nobody is responsible for
No email address Unusable for any outreach
Last activity date > 12 months ago Stale contacts clogging the database
Original source = Offline / Import Batch imports with likely inconsistent data

Do the same for Company records. Specifically look for:

  • Companies with zero associated contacts
  • Companies with duplicate or near-duplicate names ("Acme", "Acme Inc", "Acme Inc.")
  • Companies missing key properties like industry, country, or company size

You are not making decisions yet. You are sizing the problem. Once you have the numbers, the decision for each segment is one of three things: enrich and keep, move to a suppression list, or delete.

To give you a sense of scale: a SaaS company we worked with had 11,000 contacts in HubSpot. The audit revealed that 4,200 had no lifecycle stage, 1,800 had no email address, and 600 were duplicates. More than half the database needed attention before any campaign should have been running against it.

5. Step 2 - Fix Duplicate Records

Duplicates do more damage than most people realise. A contact entered twice means split conversation history, double-counted activity in reports, and the same person potentially receiving two separate email sequences from your team.

How to find and merge duplicates in HubSpot:

  • Go to Contacts > Actions > Manage Duplicates
  • HubSpot surfaces pairs it has identified as likely matches - work through these first
  • For each pair, review which record has more complete data and merge into that one
  • Merging consolidates activity history - you do not lose data
  • Repeat the same process at Companies > Actions > Manage Duplicates

Manual checks to run after the automated tool:

  • Search for the same email address with different capitalisation
  • Search for the same company name with and without "Inc", "Ltd", "Limited"
  • Search for the same person with a personal and a work email on separate records

Two things to know before you start merging. The record you merge into keeps its HubSpot ID - if you are connected to Salesforce or another tool that references that ID, be deliberate about which record you keep. And merging cannot be undone, so if you are genuinely unsure whether two records are the same person, tag them for manual review rather than merging immediately.

6. Step 3 - Redefine and Reassign Lifecycle Stages

Lifecycle stages are the backbone of your CRM. If they are wrong, everything built on top of them - reports, automations, lead scoring, sales handoff processes - is also wrong.

HubSpot's default stages are: Subscriber, Lead, Marketing Qualified Lead, Sales Qualified Lead, Opportunity, Customer, Evangelist, Other.

Most companies either use these defaults without defining what each one means for their specific business, or they customised them at some point in ways that no longer match how deals actually move. Both lead to the same problem: lifecycle data that nobody trusts.

Before you reassign anything, write a one-sentence definition for each stage you use:

Lifecycle Stage Example Definition
Lead Any contact who has engaged with content or filled a form but hasn't been reviewed by sales
MQL A contact who fits ICP criteria and has taken a high-intent action (demo request, pricing page visit, content download)
SQL An MQL that an SDR has reviewed and confirmed as worth pursuing - a deal has been created
Opportunity An SQL with an active deal in the pipeline and a scheduled next step
Customer A contact associated with a closed-won deal

Once you have definitions, pull a report of all contacts by lifecycle stage and look for obvious mismatches:

  • Customers sitting as leads or MQLs
  • SQLs with no deal attached
  • MQLs with no activity in the last 90 days that should be moved back to Lead or suppressed
  • Opportunities with no associated deal or close date

Fix these in batches using HubSpot's bulk edit. Select the filtered list, click Edit, update the lifecycle stage. Do not do this one record at a time - at any meaningful scale, that approach will take days.

7. Step 4 - Clean Up Your Deal Pipeline

Go to your deal pipeline and look at every deal with no activity in the last 30 days. For each one, you need a decision: still active, stalled and needs follow-up, or dead.

Deals sitting in a pipeline without activity are not harmless. A sales team that has 40 open deals when 25 of them are effectively dead is not managing a pipeline - they are managing a wishlist. And any forecast built on that data is fiction.

A simple triage framework:

Last Activity Action
0 to 30 days Leave open, no action needed
30 to 60 days Flag for rep to review and update close date
60 to 90 days Rep must provide a reason to keep open or close as lost
90+ days with no reason Close as lost, add a reason in the closed lost reason field

Also review the pipeline stages themselves. If you have eight stages but deals only ever move through four of them, remove the ones nobody uses. A SaaS company we spoke to had a stage called "Legal Review" that hadn't had a deal in it for two years. It was creating confusion in reports and making the pipeline look more complex than it was.

Checklist for pipeline cleanup:

  • Pull all deals sorted by last activity date
  • Work through 30-60-90 day triage with the sales team
  • Close out dead deals with a closed lost reason (this data is useful later for win/loss analysis)
  • Remove or rename unused pipeline stages
  • Confirm every open deal has a close date and a next step logged

8. Step 5 - Review and Fix Your Automations

Automations are where CRM messes compound the fastest. A workflow built on bad data will execute on bad data at scale - and often silently, with no visible error to alert you.

Go to Automations > Workflows and sort by last updated date. Pull up every workflow that hasn't been reviewed in more than six months.

For each workflow, ask:

  • Is this workflow still turned on? Should it be?
  • Is the enrolment trigger still accurate given how lifecycle stages have changed?
  • Is there a suppression list preventing customers or churned contacts from entering?
  • Are the internal notification emails going to people who still work here?
  • Is there a duplicate workflow doing the same thing that was built at a different time?

Common automation problems to look for specifically:

Problem What to do
Nurture sequence emailing customers Add a suppression list: Lifecycle Stage = Customer
Workflow enrolling on a lifecycle stage you just redefined Update the trigger to match the new definition
Internal notification going to a former employee's email Update to current owner or a team inbox
Two workflows with overlapping triggers Consolidate into one or add suppression logic to prevent double enrolment
Workflow with no unenrolment criteria Add an exit condition so contacts don't stay in indefinitely

Do not delete workflows immediately. Turn them off first, leave them inactive for 30 days, and confirm nothing breaks before you archive them.

9. Step 6 - Standardise Properties and Data Entry

Inconsistent data entry is one of the most persistent sources of CRM mess because it compounds quietly over time. Nobody notices until the data is so inconsistent that filters stop working and reports become meaningless.

Common examples: "United Kingdom", "UK", "England", and "GB" all sitting in the same Country field. Job titles entered as free text with 40 variations of "Head of Marketing". Deal sizes entered as exact numbers by some reps and vague ranges by others.

Checklist for property standardisation:

  • Go to Settings > Properties and audit all custom properties
  • For each property, check: is it being used? Is it filled in consistently? Does it need to be a dropdown instead of free text?
  • Convert your most important free-text fields to dropdowns with a fixed option list - at minimum: Industry, Country, Job Function, Lead Source, Closed Lost Reason
  • Run a bulk edit on historical data for the highest-priority fields to standardise existing values
  • Add required fields to your deal creation form and contact import template so future entries can't skip them

For a B2B SaaS company, the five properties worth getting right above everything else are: Industry, Company Size, Job Title (or Job Function as a dropdown), Lead Source, and Lifecycle Stage. If those five are clean and consistent, your segmentation and reporting become dramatically more useful overnight.

10. Step 7 - Archive What You Don't Need

Once you have cleaned the data you are keeping, deal with what you are not.

Suppression list - who belongs here:

  • Churned customers you are not actively re-engaging
  • Disqualified leads that don't fit ICP and never will
  • Competitors and partners who should never receive marketing emails
  • Anyone who unsubscribed or marked emails as spam

A suppression list keeps records in the database for reference without putting them in active contact pools. This matters for reporting - you may want to look back at a churned customer's history - but they should not be receiving nurture sequences.

Who to actually delete:

  • Contacts with no email, no activity, no associated deals or companies, and no identifiable source
  • These are ghost records from old imports with no value
  • HubSpot charges by contact tier on some plans, so removing ghost records can reduce your bill directly

For company records:

  • Archive any company with no associated contacts and no deal history
  • These are usually import artifacts - company names that came in on a CSV but were never actually engaged

11. How to Keep HubSpot Clean Going Forward

A cleanup is wasted if the same mess rebuilds in the next six months. Three things prevent that.

Monthly hygiene review (should take under an hour):

  • Check for new duplicates using the Manage Duplicates tool
  • Review deals with no activity in the last 30 days
  • Spot-check lifecycle stage accuracy on a sample of recent contacts
  • Confirm automations are running as intended - look at workflow enrolment numbers for anything that looks off

Document decisions, not just outputs. What do lifecycle stages mean? What are the rules for closing deals as lost? What properties are required on a new contact? Put this somewhere the whole team can access. Decisions that live only in someone's head don't survive team changes - and every time someone new joins and has to figure it out themselves, the CRM drifts a little further from the standard.

Gate your entries. Use forms and integrations rather than manual imports wherever possible. Every manual CSV import is a potential data quality problem. Where manual imports are unavoidable, create an import template with required fields and a standard format for the most important properties.

12. When to Get Help

A CRM cleanup is manageable internally if the database is under 20,000 contacts, the workflow library is limited, and someone on the team has the time and HubSpot depth to work through it systematically.

It is worth bringing in outside help when:

  • The database is large and data quality is deeply inconsistent across multiple object types
  • Automations are complex enough that changing one thing risks breaking another
  • The cleanup needs to happen at the same time as a change in go-to-market motion - new ICP definition, new pipeline stages, new lifecycle logic - and you need someone who can hold the technical and strategic layer simultaneously
  • There is simply no internal resource with the HubSpot knowledge to make the right calls without significant trial and error

A well-run HubSpot cleanup for a mid-size B2B SaaS CRM takes four to six weeks. The output is a database your sales team trusts, automations that run on accurate logic, and reports that reflect what's actually happening in your pipeline. That last part - having data you can actually make decisions from - is what makes the work worth doing.

About MendMartech We work with lean B2B SaaS teams on GTM strategy, demand generation, positioning, and RevOps. HubSpot cleanup and rebuild is one of the most common starting points for our engagements. If your CRM is holding your pipeline visibility back, book a free 30-minute strategy call and we will tell you exactly where the gaps are.

Neha Tanwer

Growth Expert

Helps B2B Founders close the gap between present day MarTech and the GTM operations that haven't caught up yet

© All rights reserved.