Why CRM data decays, and how to keep HubSpot clean
The four kinds of bad CRM data, what they cost your team, and a cleanup order that holds over time.
By Quentin Tristan3 min read
A CRM is accurate on the day each record is created, and a little less every day after. People change jobs, companies change websites, deals stop moving and nobody updates them. This slow drift is called data decay. You can't stop it, but you can measure it and keep it under control.
Where bad data comes from
Most of the problems in a HubSpot portal fall into four families.
- Missing data. A form that only asks for an email, a contact added in a hurry from a phone, an import that left half the columns unmapped. The record exists but can't be segmented, routed or reported on.
- Outdated data. The contact left the company, the phone number changed, the company moved to a new domain. The value is there, and it's wrong.
- Duplicated data. The same person or company exists twice, with the history split between the copies. See how to find and merge duplicate contacts in HubSpot.
- Orphaned data. A deal with no contact, a company with no one attached, a contact with no owner. Nobody is responsible for these records, so nobody keeps them up to date.
What it costs you
Decay rarely breaks anything at once. It shows up as small failures that are easy to blame on something else:
- Lists and segments miss people. A campaign by industry skips every company whose industry is empty.
- Leads wait. A contact without an owner doesn't land in anyone's queue.
- Reports drift. Revenue by source, pipeline by close month and win rates are only as good as the amounts, sources and close dates behind them.
- Outreach bounces. Sequences go to addresses that no longer exist, or reach the same person twice from two records.
- The team stops trusting the CRM and goes back to spreadsheets, which makes the CRM decay faster.
Measure before you clean
Start with a short list of checks that matter for your team, and count how many records fail each one. The HubSpot data audit checklist lists the 40 checks Forgeo runs on contacts, companies and deals. A few to start with:
- contacts and companies without an owner;
- companies without a website or domain;
- open deals without a close date, an amount or a next activity;
- deals without an associated contact;
- contacts with no activity for more than twelve months.
Write the numbers down. They're your baseline, and the only way to know later whether the cleanup worked.
Clean in the right order
- Merge duplicates first. Otherwise you fill and fix two copies of the same record, and the merge decides which values survive anyway.
- Fill what the CRM already knows. A domain can be read from the website, a first and last name from an email like firstname.lastname@, a value from the associated company or from a twin record. These fixes are safe and fast.
- Enrich from outside sources. For what's left, a LinkedIn profile or company page gives you job titles, industries, sizes and locations.
- Archive what is really dead. Deleting is final: export or review before you delete, and keep anything tied to a customer or an open deal.
Keep it clean
A one-off cleanup decays like everything else. A few habits slow it down:
- Require the properties that matter. In HubSpot, a pipeline stage can make a property required, so a deal can't move forward without, for example, a close date or an amount (HubSpot: set up and customize pipelines).
- Ask for the right fields in forms, and map every import column to an existing property.
- Give every record an owner, by rule rather than by memory.
- Re-run the audit regularly and compare the numbers with your baseline.
How Forgeo helps
Forgeo syncs your HubSpot contacts, companies and deals, and runs a full audit after each sync: 40 checks and a data quality score for each object. It then proposes values for empty fields from what your CRM already holds (twin records, associations, email domains) and never overwrites a value that exists. Nothing is written to HubSpot until you approve it, and every batch of field updates can be undone.