CRM data foundation
Duplicates are a symptom. The disease is uncontrolled record creation.
Every merge tool can collapse two records. The hard part is deciding what a match is, which values survive, and closing every path that keeps creating new copies. That is the work, and it decides whether your CRM stays clean after month two.
Part of one fixed build: $7,500, 21 days, $2,500 back if it isn't running as scoped. Pricing details
Ask yourself
Three questions that usually expose it.
- Which system is the source of truth for account ownership, and is that written anywhere?
- When two records disagree on a value, who decides which one is right today?
- How many processes can create a company record without a human looking at it?
Failure modes
What breaks, and why.
| Failure | What you see | Root cause |
|---|---|---|
| Merges that lose the truth | Records are merged with default rules, so a stale owner or old lifecycle value survives over the correct one. | No survivorship policy per field: recency, source priority and 'never overwrite' fields were never defined. |
| Company duplicates that domain matching misses | Subsidiaries, regional domains, rebrands and free-mail signups create parallel accounts. | Domain is treated as the only key. Real account identity needs a hierarchy: parent, child and alias domains. |
| The clean-up that comes back | Six weeks after a big dedupe, the duplicate count climbs again. | The cleanup fixed records but not creation paths: forms, imports, enrichment writes, integrations and manual entry each create records with their own logic. |
| Fields that mean five things | 'Industry' holds free text, picklist values and enrichment output side by side. | No data contract: which system owns each field, its allowed values, and who may overwrite it. |
First 48 hours
What I check before changing anything.
- Record creation by source over the last 90 days (form, import, integration, API, manual)
- Duplicate clusters by match key: email, normalized domain, normalized name plus geography
- Which duplicates touch open deals or active customers (fixed first)
- Field fill rates and value variance on the 20 fields reports and routing depend on
- Every integration or enrichment process with write access, and which fields it overwrites
- Ownership conflicts: duplicates assigned to different owners
Decisions we make with you
Tradeoffs, written down.
Match key strictness
Strict keys miss real duplicates; fuzzy keys merge different companies. We set confidence tiers: auto-merge high confidence, queue the middle for human review, ignore the rest.
Survivorship per field
Owner and stage follow business rules, contact data follows recency, source fields are never overwritten. Decided in writing before any merge.
Prevent vs. cure
Blocking duplicates at entry frustrates reps; allowing and flagging them creates backlog. We choose per creation path.
A team believes it has a duplicate problem. The audit shows most new duplicates come from one list import routine that creates companies without a domain. Fixing that one path, plus a match rule on normalized company name and country, matters more than any bulk merge.
Want this checked on your own CRM first? Get a free one-page teardown, no call needed.
FAQ
Common questions.
Can a merge be undone if we get it wrong?
Treat it as no. A merge can't be cleanly reversed, which is why nothing is merged until you've signed off the match and survivorship rules, and why we run a reviewed sample first. A full export of every affected object is taken before each batch, so any value can be restored.
Who decides which value survives when two records disagree?
You do, once, in writing. I propose a rule per field (business rule for owner and stage, recency for contact data, never-overwrite for source fields) and the edge cases go to a review queue instead of being forced.
What happens to records that are only maybe duplicates?
They're not auto-merged. Only high-confidence matches merge automatically; the middle tier goes to a review queue with both records side by side, and low-confidence pairs are left alone.
Will this break the integrations or enrichment writing to our CRM?
Not without warning. Before anything changes, I map every process with write access and the fields it touches. Changes to field ownership are agreed with whoever owns that integration, and tested before they go live.
How much of my team's time does the cleanup need?
About an hour a week from one person who knows how you sell, plus quick sign-offs on the rules. Reps keep working normally throughout.
Connected problems
The build fixes these as one system.
HubSpot
Most HubSpot problems come from a handful of platform behaviours nobody designed for.
Salesforce
Salesforce gives you every control. Most orgs have them configured against each other.
Pipeline reporting
If two people can define 'pipeline' differently, your dashboard is an opinion.
Signal-based pipeline
Lead quality is a model, not a list.
Find out which creation path is producing your duplicates.
Book 20 minutes and bring the CRM up on screen. I reply within 1 business day.
Book a 20-min call