CRM data cleanup
with Claude Code & HubSpot MCP
Your HubSpot has 5,000 contacts. 40% of them are junk.
Here's how to clean up, without CSV export, without a VA, without sacrificing your weekend.
Duplicates, missing emails, deals without close dates. Everyone knows the problem, no one wants to tackle it. With Claude Code you clean your CRM in hours, not weeks.
The 5 diseases of every B2B CRM
Every CRM older than a year shows the same symptoms:
Same contact, three different spellings. "Max Mustermann" and "Mustermann, Max" and "m.mustermann@firma.de" without a name. Three records, one human being.
Contacts without email. Deals without close date. Companies without domain. Every record with gaps is a record that cannot be reached.
Former contacts who moved on long ago. Companies that merged or shut down. Lifecycle stages that haven't been updated since 2023.
Contacts without an associated company. Deals without associated contacts. Activities floating in nowhere.
47 custom properties, 12 of which are actively used. The rest is legacy from an ex-employee who "tried something out".
The result: you make decisions based on data you can't trust. Your reports lie. Your outbound hits the wrong people.
The solution: Claude Code + HubSpot MCP server. Direct CRM access, no CSV detour.
Why MCP instead of CSV export?
The classic way: export as CSV, then Excel, then hours of manual cleanup, then re-import, then hope nothing breaks.
With the HubSpot MCP server: Claude Code accesses your CRM directly. It reads contacts, companies, deals, activities, and can update records directly too.
The HubSpot MCP server is an official connector, you need:
- HubSpot account (works with the free CRM too)
- Claude Code or Claude Desktop
- Activate the HubSpot connector (OAuth, 2 clicks)
No local deployment, no Docker, no API token fiddling. The official connector runs remote and is connected instantly.
The cleanup workflow, 6 steps
Audit, where does your CRM stand?
Before you clean up, you need the current state. Claude analyses your entire CRM and produces a data quality report.
What Claude checks:
- Total number of contacts, companies, deals
- Contacts without an email address (not reachable)
- Contacts without an associated company (missing association)
- Companies without a domain (not identifiable)
- Deals without close date or with no stage update for >90 days
- Suspected duplicates (same domain, similar names, same email)
- Custom properties that are never populated
Identify duplicates
Claude searches for duplicates on multiple levels:
Same email address across different records
Multiple contacts with the same company domain but different spellings
Similar names (Levenshtein distance), same phone number, etc.
Enrich missing data
Contacts without email? Companies without industry? Claude can:
- Derive missing company domains from email addresses (max@cegtec.de, cegtec.de)
- Establish company associations based on email domains
- Set missing lifecycle stages based on deal status
- Fill empty properties with defaults (e.g. lead source = "Unknown" instead of empty)
Clean up stale records
Claude identifies records that should be archived or updated:
- Contacts with no activity at all for >12 months
- Deals in "Open" for >6 months without a stage change
- Companies without associated contacts and without deal history
- Bounced email addresses (if HubSpot email tracking is active)
Clean up properties
Custom properties no one uses any more:
- Claude lists all custom properties with fill rate
- Properties with <5% fill rate, candidates for deletion
- Properties with identical content, merge them
- Standardise naming conventions
Automation for the future
Cleaning up once isn't enough, your CRM gets dirty again immediately. So:
Claude Code vs. you
- Data quality audit (minutes instead of days)
- Duplicate identification (including fuzzy matching)
- Bulk updates (missing associations, lifecycle stages, tags)
- Property analysis (fill rate, unused fields)
- Standardisation (formatting, naming, categorisation)
- Which duplicates actually get merged
- Which records get archived vs. kept
- Which properties may be deleted
- Which rules apply going forward
Rule of thumb: Claude does the analysis and prep. You make the decisions. No autopilot on destructive actions.
Typical results
Frequently asked questions
"Does this work with Salesforce / Pipedrive / other CRMs too?"
The principle is identical, audit, duplicates, enrichment, archiving, automation. The MCP connector varies. This guide focuses on HubSpot because it's the most widely used MCP server in the CRM space.
"Can Claude delete data?"
The HubSpot MCP connector is primarily designed for reading and updating. For bulk deletes you typically need the HubSpot API directly, which is a built-in safety mechanism. We generally recommend: archive instead of delete.
"Do I need HubSpot Pro/Enterprise?"
No, the MCP connector also works with the free HubSpot CRM. Some features (workflows, custom properties, advanced lists) require paid plans.
"Is this GDPR compliant?"
The HubSpot MCP connector uses OAuth and the official API, your data is not used for AI training (depending on Anthropic plan). Even so: review internally whether your data protection policy allows the use of AI tools on CRM data. When in doubt: involve your data protection officer.
"What if Claude breaks something?"
HubSpot has an audit log, every change is traceable and revertible. That's why we recommend: tag first, collect into a list, change after review. Never bulk-delete directly.
Don't want to clean up yourself?
We do CRM cleanups for B2B companies in the DACH region. Audit, cleanup, automation, so your CRM finally tells the truth.
Book a free intro callReady for outbound?
Clean CRM data is the foundation for any outbound. Read our guide on the €150 outbound stack.
The €150 outbound stack