Refolk
TeardownProcess, data, and compliance

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.

15 min readLast reviewed September 17, 2026Read as Markdown

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

  1. Accounts
    Resolve every overlap to a surviving account ID first
  2. Contacts
    Re-parent to surviving accounts, then dedupe
  3. Open deals
    Reattach to surviving accounts, one owner each
  4. Activities
    Reattach history to the master records
Each object points at the one before it, so the parent must resolve before the child can reattach.

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.

10-30%
Typical CRM duplication rate without an active data-quality program
It rises to 40% with no cleanup, so a two-book merge starts with hundreds of overlaps to adjudicate.

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 keyWhat it provesHow it lies
Billing / contract / tenant IDSame paying entity under one agreementMissing on records that never billed
Email (contacts)Same person, high confidenceShared inbox or role alias hides two people
Domain (companies)Same web presenceSubsidiaries share a parent domain
Tax ID / DUNSDistinct legal entityParent and subsidiary get different DUNS
Company nameWeak tiebreaker onlyTwo 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."

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

Same contractContract differs
Different entity, contract differs
Keep separate; associate only if related structure
Same entity, contract differs
Link and reconcile contracts before merging
Different entity, same contract
Delay; get accounting review, likely link
Same entity, same contract
Merge, with related objects reattached
Different legal entitySame legal entity
Same legal entity and contract sends you toward merge; anything else pulls you toward link or delay.

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

  1. Agree definitions and object map
    Both 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.
  2. Back up and stage
    Export both books plus activities to immutable storage and build a sandbox. Confirm the backup restores and the staging copy exists.
  3. Normalize and assign keys
    Lowercase 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.
  4. Deduplicate accounts
    Pass 1 exact identity-key matches, Pass 2 constrained fuzzy inside a shared hard key, AE reviews named accounts. Every overlap has a recorded verdict.
  5. Re-parent and deduplicate contacts
    Only after accounts settle, set field-level survivorship, merge contacts, point them at surviving accounts. No orphans.
  6. Reconcile open pipeline
    Translate stages, reattach open deals to surviving accounts, resolve two-reps-one-account conflicts. Each deal has one owner and one account.
  7. Validate the full dataset
    Full-dataset check against target rules with one go/no-go owner. Verify counts and relationships. Acceptance criteria met.
  8. Cutover and monitor
    Freeze 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 limitValue
Active duplicate rules per object5
Active matching rules per object1 (up to 5 across rules)
Records mergeable at once3
Matching-rule activation flag ceiling~2% of records (raise to ~5%)
Duplicate record items job cap1,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.

114
US ops managers in Refolk's index listing both Salesforce and data-migration skills
Against 1,082 US RevOps Managers, that is about 10.5%, so the person who can run this merge is rarer than the org chart implies.

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.

MarketRevOps Managers in Refolk's indexDepth vs UK
United States1,0825.0x
United Kingdom2151.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 modeWhat it looks likeCheck
Name-key merge collapses two real companies"Acme Ltd" and "Acme Inc" become oneRequire a stable ID; name is a tiebreaker only
Contact merged before its accountCounts look right, deals silently orphanedFreeze contact merges until accounts resolve
Subsidiary merged into parentOne record for two legal entitiesPull billing address and tax ID; link, do not merge
Sample validation passes, cutover failsPilot clean, full load breaksValidate the full dataset against target rules
Salesforce rule will not activateRead as a bug, not a thresholdAdd State/postal to narrow, or clean test data
Counts reconcile, relationships do notTotals match, owners and stages wrongValidate associations, owners, stages, consent flags
Recency auto-merge on enterprise accountsAuthoritative contract record overwrittenReserve recency merges for transactional books
History over-scopedAll email history balloons the loadHold 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

  1. Combined raw records
    6,000

    My 4,200 plus their 1,800 accounts

  2. Overlaps flagged for verdict
    720

    ~12% at the conservative duplicate rate

  3. Verdicts recorded
    720

    Every overlap merged, linked, or kept separate

  4. Records passing full validation
    6,000

    Counts and relationships both verified

Volumes from the worked two-book case, narrowing as overlaps resolve and validation gates hold.

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.

  1. 01Describe them

    One plain sentence. Role, city, stack, stage, whatever matters to you.

  2. 02I read the web live

    GitHub, public LinkedIn and Crunchbase records, the open web. Not a database that went stale last quarter.

  3. 03You read the shortlist

    Ranked, with the reasoning under every name. Open a profile, ask a follow-up, narrow it down.

  • 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.

Read next