Why does a CRM fill up with duplicate records and unused seats, and how do you clean that up?
Summary
Duplicates get in through doors the automatic checks leave open, such as companies created through HubSpot's API, and seats keep billing after the person using them has gone. HubSpot and Salesforce each block some duplicates automatically, but reviewing the ones that got through in bulk is a Professional-tier feature at HubSpot. Seats are the more expensive leak, because on HubSpot a seat you take away from a departed user keeps billing until you delete it, and the total can only drop at your next renewal.
The seat that outlives the employee
HubSpot's seat documentation spells out the sequence. Removing a seat from a user leaves it unassigned, and you keep paying for it. You have to delete the unassigned seat to change billing, that change applies from the next billing period, and the current invoice stays as it is. On top of that, the total number of purchased seats can't be reduced until the renewal date, and never below the subscription's minimum commitment. Buy ten seats on an annual plan, lose three people in month four, and you are billed for ten until renewal.
Salesforce doesn't let you delete a user at all. You deactivate the account so the person can no longer log in. When a user can't be deactivated right away, for example because they are selected in a custom hierarchy field, you can freeze the account to block logins while you finish the steps.
Duplicates the CRM catches by itself
- HubSpot deduplicates contacts by email address and companies by domain name, so the same email coming in twice through a form stays one contact.
- Companies created through the HubSpot API are not deduplicated by domain name, which is how integrations quietly create the second and third copy of a company.
- Salesforce ships four standard duplicate rules, for accounts, person accounts, contacts, and leads. The account rule is on by default, and in orgs created in Summer '17 or later the contact rule also catches leads that duplicate contacts.
- Salesforce's duplicate and matching rules are available in Essentials, Professional, Enterprise, Performance, Unlimited, and Developer editions.
Cleaning up what slipped through
Merging two records by hand works on every HubSpot plan, including the free tools. A merge can't be undone, and a record that has been part of 250 or more merges can't be merged again. The duplicates manager, which lists likely pairs for review, needs a Professional or Enterprise subscription and shows up to 10,000 pairs. Bulk handling and custom duplicate rules need Data Hub Professional or Enterprise, which raise the list to 30,000 and 100,000 pairs respectively. For contacts, HubSpot matches on first name, last name, email, IP country, phone number, zip code, and company name.
In Salesforce, an admin can let sales reps merge duplicate leads, accounts, and contacts themselves, so the cleanup doesn't have to wait for the admin.
Sources
- https://knowledge.hubspot.com/account-management/manage-seats
- https://knowledge.hubspot.com/records/deduplication-of-records
- https://knowledge.hubspot.com/records/merge-records
- https://knowledge.hubspot.com/records/manage-duplicate-records
- https://help.salesforce.com/s/articleView?id=platform.deactivating_users.htm&language=en_US&type=5
- https://help.salesforce.com/s/articleView?id=sf.users_freeze.htm&type=5
- https://help.salesforce.com/s/articleView?id=sf.managing_duplicates_overview.htm&type=5
- https://help.salesforce.com/s/articleView?id=sf.duplicate_rules_standard_rules.htm&type=5
Related on this site
- What's inside a CRM database, and which limits will you hit when you move your data in?
- How should you set up deal stages so the pipeline forecast means something?
- What the seat price leaves out
- Does a ten-person company need to pay for a CRM at all?
Written by Kaz (pen name). Published September 27, 2026. The figures above come from the vendor and review-site pages listed under Sources. We have not used these products. Corrections: contact form.