Folding an Acquired Book Into Yours: Accounts, Then Contacts
You can run a two-book CRM consolidation in the correct order and record a defensible merge, link, or keep-separate verdict for every overlapping account and contact.
You acquired a company and now you own two customer books that overlap. This guide is for the RevOps or sales-ops person answerable for how the merge was done: it carries one consolidation start to finish, with the real order of operations, the match keys that hold, the verdict you record for every overlap, and the wrong turns that mint duplicates or orphan history. Follow along on your own case and you will finish with one deduplicated book and a defensible merge, link, or keep-separate decision recorded for every account and contact.
Most published teardowns resolve a single tangled person or one corporate family in isolation. A real acquisition is two full books colliding at once, where account merges and contact re-parenting fight each other for order. That collision is the whole problem, so that is what this document works through.
The one rule that dictates everything: load in dependency order
Merge accounts first, then contacts, then open deals, then activities. Anything else creates orphans you relink by hand.
The reason is not taste. Contacts, deals, and activities all carry a pointer to an account ID. If you merge a contact while its parent account is still duplicated, the surviving account ID does not exist yet, so the pointer has nowhere valid to land. Merge a contact before its account and the record count can look perfectly right while open deals and activity history silently detach. This is a foreign-key rule wearing a process costume.
Dependency order for a two-book merge
- AccountsResolve every overlap to a surviving account ID first
- ContactsRe-parent to surviving accounts, then dedupe
- Open dealsReattach to surviving accounts, one owner each
- ActivitiesReattach history to the master records
Sources agree on this order. They differ only on one thing: whether "agree definitions and map objects" is its own gate before dedup, or folded into prep. I treat it as a hard gate. If the two teams disagree on what a "customer" record means or what "active" counts as, no merge downstream can be trusted, because you are deduplicating against a definition that is not shared.
The worked case: two books, and where the counts land
Here is the case I carry through the rest of the guide. I acquired a smaller company. My book has roughly 4,200 accounts; theirs has roughly 1,800. The overlap - shared customers appearing in both systems - is where the value and the danger both concentrate.
Post-acquisition duplicate rates of 10 to 30 percent are common without an active data-quality program, and up to 40 percent with no cleanup at all. Take the conservative end. If even 12 percent of the combined 6,000 accounts are overlaps or internal duplicates, that is around 720 account records needing a verdict, before I touch a single contact.
The reason overlaps are dangerous is counterintuitive: name matching fails hardest exactly where value concentrates. My largest shared customer appears in my book as one legal name and in theirs under a different billing entity. That account is the single most important record in the merge and the one exact-name matching gets wrong. So the accounts most worth getting right are precisely the ones a naive match mishandles.
The accounts most worth getting right are the ones exact-name matching gets wrong.
Before any dedup, I cut history scope. I hold a 24-month window of closed activity and archive anything older that exists only for compliance. Every extension of that window adds reconciliation work with no reporting benefit, and history nobody reads still has to reattach cleanly.
Match keys that hold, and where name matching lies
Tie identity to a stable ID: account ID, billing customer ID, contract ID, or tenant ID. Domain and tax ID or DUNS are strong secondary checks. Company name is never a primary key.
Name fails on subsidiaries billed under different names. One system lists "Gorman Manufacturing Corp," another "Gorman Company, Inc.," and a third "Gorman Manufacturing Company, LTD." Two unrelated companies can also share a name, so name-based matching can pull separate accounts together and skew every downstream report. A domain is a good second check. DUNS encodes corporate family trees, but each legal entity gets its own number, so a parent and a subsidiary carry distinct DUNS - useful for structure, not for proving two records are the same entity.
Here is what each key proves, and what it looks like when it lies.
| Match key | What it proves | How it lies |
|---|---|---|
| Billing / contract / tenant ID | Same paying entity under one agreement | Missing on records that never billed |
| Email (contacts) | Same person, high confidence | Shared inbox or role alias hides two people |
| Domain (companies) | Same web presence | Subsidiaries share a parent domain |
| Tax ID / DUNS | Distinct legal entity | Parent and subsidiary get different DUNS |
| Company name | Weak tiebreaker only | Two unrelated firms share a name |
Pull billing addresses and tax identification numbers alongside company names before you decide anything. That gives you a mathematical basis for merging accounts instead of relying on a sales rep's intuition about whether two names are "the same."
The verdict every overlap needs: merge, link, or keep separate
Merge only when the legal entity and the contract stay the same. Link or keep records separate for acquisitions, spin-offs, or unclear-domain cases. Delay entirely when ownership of transactions is unclear.
The merge-versus-link distinction turns on motion. Ask: are these true duplicates for how I sell, or different parts of the same organization I want to manage separately? If they are duplicates for my motion, merge. If they represent meaningful structure, associate them. The keep-separate and delay cases are where discipline pays: preserve both records, restrict further duplicate creation, and get the right accounting or tax review before changing historical data when an audit is active, a dispute is open, or a prior tax filing could be affected.
The merge / link / keep-separate call
In my case, that largest shared customer under two billing names turned out to be one legal entity on one master contract. Verdict: merge. A second pairing looked identical by name but resolved to a parent and a newly spun-out subsidiary with distinct tax IDs. Verdict: link, not merge. Recording both verdicts, with the key that decided them, is what makes the merge defensible later when finance asks why two records became one.
Run it: the eight-step procedure
Run these in order. The order is the point; skipping the definition gate or reversing accounts and contacts is how the whole thing unwinds.
Two-book consolidation, start to finish
- Agree definitions and object mapBoth commercial leads and RevOps fix stage names, exit criteria, and what a customer record is, in one meeting, signed. Nothing downstream starts until this is signed.
- Back up and stageExport both books plus activities to immutable storage and build a sandbox. Confirm the backup restores and the staging copy exists.
- Normalize and assign keysLowercase emails, phones to E.164, strip name punctuation, attach account ID, billing ID, contract ID, domain, tax ID or DUNS. Every record carries a match key.
- Deduplicate accountsPass 1 exact identity-key matches, Pass 2 constrained fuzzy inside a shared hard key, AE reviews named accounts. Every overlap has a recorded verdict.
- Re-parent and deduplicate contactsOnly after accounts settle, set field-level survivorship, merge contacts, point them at surviving accounts. No orphans.
- Reconcile open pipelineTranslate stages, reattach open deals to surviving accounts, resolve two-reps-one-account conflicts. Each deal has one owner and one account.
- Validate the full datasetFull-dataset check against target rules with one go/no-go owner. Verify counts and relationships. Acceptance criteria met.
- Cutover and monitorFreeze source, load in dependency order, re-enable integrations, monitor 4 to 6 weeks. First trusted consolidated report renders.
Two passes inside step 4 deserve detail. Pass 1 is mechanical: exact matches on identity keys - same email across contacts, same normalized domain across companies, same account plus normalized name across open deals. These are high-confidence and usually the bulk of the problem. Do not move to Pass 2 until every Pass 1 match is queued. Pass 2 is constrained fuzzy matching, run only inside a shared hard key so a fuzzy name match can never join two records that lack a common domain, billing ID, or tax ID.
For contacts in step 5, set field-level survivorship first: decide, per field, which source wins - most-recent-wins for activity dates, but authoritative-source-wins for anything tied to a contract. Never let recency auto-merge overwrite an enterprise account's contract record.
Where native tooling runs out, and who should own this
Native Salesforce dedup has hard ceilings that a post-acquisition duplicate load will trip. Know them before you plan build-versus-buy, because hitting them mid-cutover is how a plan slips.
An org can hold only 5 active duplicate rules per object and just 1 active matching rule per object (up to 5 across rules). Native merge caps at 3 records at once and cannot be automated. A matching rule refuses to activate if it flags roughly more than 2 percent of records, raisable to about 5 percent via Support but not removable. Carry a 10 to 30 percent duplicate rate into that and the platform's own guardrails block you - which is the documented reason teams reach for third-party dedup tooling.
| Native Salesforce limit | Value |
|---|---|
| Active duplicate rules per object | 5 |
| Active matching rules per object | 1 (up to 5 across rules) |
| Records mergeable at once | 3 |
| Matching-rule activation flag ceiling | ~2% of records (raise to ~5%) |
| Duplicate record items job cap | 1,000,000 |
Standard duplicate rules also do not retroactively find existing duplicates; you need Duplicate Jobs for the backlog a merge creates, and those stop accepting new jobs once completed items reach one million.
Who runs this matters as much as which tool. Migration-ready operators are scarce. In Refolk's index of professional profiles, only 114 of 1,082 US Revenue Operations Managers pair Salesforce with data-migration skill - roughly a tenth of the pool. That is why a two-book merge usually needs a named internal owner or an external specialist rather than whoever happens to run the CRM.
Where you have to find that person, describing the skill in plain English beats keyword filtering. Refolk lets you ask for exactly this profile - a RevOps operator who has run a post-acquisition consolidation - and get named people back across LinkedIn and the open web, instead of guessing from titles alone.
| Market | RevOps Managers in Refolk's index | Depth vs UK |
|---|---|---|
| United States | 1,082 | 5.0x |
| United Kingdom | 215 | 1.0x |
If your merge sits in the UK, the pool is roughly a fifth the size of the US market, which is worth knowing before you assume you can staff the role internally on short notice.
How this goes wrong: the failure modes to check for
Most merges fail on a small set of repeatable errors. Each has a false positive that looks like success and a specific check that catches it. This is the section to keep open during the work.
| Failure mode | What it looks like | Check |
|---|---|---|
| Name-key merge collapses two real companies | "Acme Ltd" and "Acme Inc" become one | Require a stable ID; name is a tiebreaker only |
| Contact merged before its account | Counts look right, deals silently orphaned | Freeze contact merges until accounts resolve |
| Subsidiary merged into parent | One record for two legal entities | Pull billing address and tax ID; link, do not merge |
| Sample validation passes, cutover fails | Pilot clean, full load breaks | Validate the full dataset against target rules |
| Salesforce rule will not activate | Read as a bug, not a threshold | Add State/postal to narrow, or clean test data |
| Counts reconcile, relationships do not | Totals match, owners and stages wrong | Validate associations, owners, stages, consent flags |
| Recency auto-merge on enterprise accounts | Authoritative contract record overwritten | Reserve recency merges for transactional books |
| History over-scoped | All email history balloons the load | Hold 24 months; archive compliance-only history |
Two of these deserve extra weight because they masquerade as success.
The sample-versus-full fight is a survivorship-bias fight, not a matter of opinion. A pilot that moves 5 to 10 percent of records into a sandbox validates the common case, which is exactly what you want for debugging your field mapping fast. But acquisition cutovers fail on rare exceptions that a random sample structurally misses. Testing a sample gives a false sense of security. So sample to debug, then validate 100 percent against target rules before go-live, and run a full-volume test because a sample also hides scale problems.
The counts-reconcile-but-relationships-do-not failure is the quiet killer. Do not stop at row counts. After every merge, verify that ticket links, account ownership, case history, stages, and consent flags all reattached to the master record. Totals can match perfectly while the relationships underneath are wrong, and that is the version of "done" that ships broken reporting to leadership.
Before you call it done: the acceptance checklist
Before cutover, one owner holds a single go/no-go decision against this list. If any item fails, the load is not ready, regardless of how clean the row counts look.
Consolidation acceptance criteria
- The signed definitions and object-map document exists and both commercial leads approved it
- A restorable backup of both source books plus activities is in immutable storage
- Every record carries a normalized match key with at least one stable ID
- Every overlapping account has a recorded merge, link, or keep-separate verdict with the deciding key noted
- No account merge relied on company name without a corroborating stable ID
- Contacts point only to surviving accounts, with zero orphaned deals or activities
- Each open deal has exactly one owner and one surviving account
- The full dataset, not a sample, passed validation against target rules
- Related objects - ticket links, ownership, stages, consent flags - reattached to master records
- History is scoped to the agreed 24-month window; compliance-only history is archived outside the CRM
Keeping it clean after cutover
Freeze the source, load in dependency order, re-enable integrations, then watch closely. The strongest published estimate for a clean two-company merger with moderate integration complexity is 90 days to a foundational consolidation: unified stage definitions, deduplicated data, a stable sync, and basic pipeline reporting. Do not trust the numbers before then.
Combined book narrowing to a trusted report
- 6,000Combined raw records
My 4,200 plus their 1,800 accounts
- 720Overlaps flagged for verdict
~12% at the conservative duplicate rate
- 720Verdicts recorded
Every overlap merged, linked, or kept separate
- 6,000Records passing full validation
Counts and relationships both verified
Keep a monitoring window of 4 to 6 weeks post-go-live. That is when re-parenting errors and broken integration syncs surface, and catching them inside the window is far cheaper than after the book has been sold against for a quarter. Watch for new duplicate creation specifically: a merge cleans the past, but without a duplicate-prevention rule in place, the same overlap regrows.
To keep the work current, re-check three things on a cadence. First, your platform's dedup limits, since vendor thresholds and sync-matching behavior change - confirm the current ceiling rather than trusting a remembered number. Second, your duplicate rate, which tells you whether prevention is holding. Third, the standing keep-separate and delayed records: revisit any that were parked pending an audit, dispute, or tax review, because those verdicts were deferrals, not decisions, and each one still owes you a final call.
Questions practitioners ask
Why merge accounts before contacts instead of the other way round?
Because contacts, deals, and activities all point at account IDs. If you merge a contact while its parent account is still duplicated, the surviving account ID is not yet known, so those pointers break and the child records orphan. Accounts-first is a foreign-key rule, not a style preference. Load in dependency order: accounts, then contacts, then deals, then activities.
What field should I match accounts on if not company name?
Tie identity to a stable ID such as a CRM account ID, billing customer ID, contract ID, or tenant ID, with domain and tax ID or DUNS as secondary checks. Company name is not stable enough: two unrelated firms can share a name, and one customer can appear as Gorman Manufacturing Corp, Gorman Company Inc, and Gorman Manufacturing Company LTD across systems. Use name only as a tiebreaker inside a shared hard key.
When do I merge two records versus link them versus keep them separate?
Merge only when the legal entity and contract stay the same. Link or keep separate for acquisitions, spin-offs, and unclear-domain cases, or when a subsidiary is billed under a different legal name. Delay the decision entirely when ownership of transactions is unclear, an audit is active, a dispute is open, or a prior tax filing could be affected, and get accounting or tax review before touching historical data.
How much history should I actually migrate?
The strongest cited default is a 24-month window of closed activity. Migrate active-account attachments only, archive the rest, and hold history required purely for compliance or audit outside the new CRM rather than loading it. Every extension of the window adds reconciliation work with no reporting benefit, so decide the window before dedup and do not reopen it mid-project.
Should I validate a sample or the full dataset before cutover?
Do both, in order. Move a 5 to 10 percent pilot sample into a sandbox to debug your mapping quickly, then validate the full dataset against target rules before the acquisition cutover. A random sample structurally misses the rare exceptions that break M&A loads, so it gives a false sense of security if it is your only check. Run a full-volume test to surface scale problems too.
How long until I have a trusted consolidated pipeline report?
For a clean two-company merger with moderate integration complexity, plan on about 90 days to reach a foundational consolidation: unified stage definitions, deduplicated data, a stable sync or migration, and basic pipeline reporting. After go-live, keep a close monitoring window of 4 to 6 weeks before you trust the numbers. Beyond these two figures, timing is not established publicly and depends on your integration complexity.
Try it on the search you came here for
Stop building boolean strings. Just describe the person.
Type one sentence. I plan the search, read GitHub, public LinkedIn and Crunchbase records, and the open web as it is right now, and hand back a ranked list with the reason next to every name.
01Describe them
One plain sentence. Role, city, stack, stage, whatever matters to you.
02I read the web live
GitHub, public LinkedIn and Crunchbase records, the open web. Not a database that went stale last quarter.
03You read the shortlist
Ranked, with the reasoning under every name. Open a profile, ask a follow-up, narrow it down.
- Staff backend engineers in NYC who shipped Rust in production
- Series A fintechs in SF under 50 people, growing headcount this year
- Maintainers of fast-growing Rust web frameworks on GitHub
- No boolean, no filters, no seat to buy. One box.
- Read at search time, so a profile updated yesterday counts today.
- Every step visible as it runs, every name with its reason.
500 free credits on sign-up. No card, no demo call. See real searches.