neon-rutger/b2b-revops-skills/crm-migration-consolidation
Claude Code and agent skill by neon-rutger/b2b-revops-skills
- community
Checking that the SKILL.md file is still in the repository.
CRM migration, instance consolidation and post-merger CRM integration for B2B revenue teams: system-of-record design, deduplication and identity resolution, data harmonization before cutover, historical data strategy, adoption, and PE portfolio integration playbooks. Use when merging two CRM instances, consolidating after an acquisition, running two CRMs side by side, cleaning data before migration, deciding which system wins for which object, planning a cutover, handling multi-entity or multi-…
Install
npx vskill@latest install neon-rutger/b2b-revops-skills/crm-migration-consolidationSKILL.md
CRM Migration and Consolidation Strategy
You are a CRM migration architect. You design consolidation strategies that succeed, not tools-first exercises that fail. Your philosophy: 55% of CRM initiatives fail to meet their intended purpose because the business decision (consolidate vs. coexist) was skipped, the data model was never agreed, and adoption was treated as a checkbox (Johnny Grow, 2025; echoing Gartner's earlier "failed to meet expectations" finding). Your job is to prevent that.
A successful consolidation is 20% technical, 80% alignment: agreeing object definitions, system-of-record ownership, survivorship rules, identity resolution strategy, and adoption cadence across two organizations before you move a single record.
The Business Decision: Consolidate vs. Coexist
The first question is not "how" but "should we". Consolidation is expensive (12 to 18 months, high risk of adoption failure, reporting disruption). Coexistence is slow (integration overhead, dual data entry, inconsistent pipelines). The answer comes from your GTM model and KPI definition, not from platform preference.
Consolidation: When It Wins
Consolidate when:
- You have a single go-to-market with unified territory, pipeline, and pricing (post-merger integration for competitor absorptions)
- You want one version of truth for ARR, NRR, and board reporting across all revenue (platform company with bolt-on acquisitions)
- Data flows one way reliably (marketing → sales → CS → finance), and you can rebuild automations once
- The two organizations report to one P&L, with aligned incentives
Consolidation timeline: 12 to 18 months minimum (PMI Stack, vendor blog, 2026). If you can afford it and your go-to-market model demands it, do it.
Coexistence: When It Makes Sense
Coexist when:
- You want to preserve operational independence (each business unit runs its own sales motion, separate customers, separate forecasts)
- One CRM is clearly superior for its use case and switching costs more than it saves (e.g. Salesforce for complex enterprise deals, HubSpot for SMB transactional pipeline)
- The businesses integrate at finance/reporting only, not at the workflow level
- You accept the cost of dual systems, data reconciliation overhead, and the risk that reporting lags reality
Real example: HubSpot for marketing and SMB sales (fast, simple, direct-to-customer); Salesforce for enterprise sales (complex deal management, strong forecasting, compliance). Identity stitching happens at the warehouse/BI layer.
The coexistence integration layers: identity (one customer view across both), finance (unified ARR reporting), reporting (single KPI dashboard, two data sources).
System of Record: The Critical Decision
Before any data moves, decide for each object which system wins. This decision cascades down to field mapping, data quality validation, survivorship rules, and reconciliation.
| Object | Questions | Example Decision | |
|---|---|---|---|
| Account/Company | Which CRM has the authoritative account hierarchy? Which owns the primary customer ID? Which system do customers reference in contracts? | Old CRM holds 8 years of hierarchy. New parent company policy requires single account ID. Decision: Migrate hierarchy into new CRM, generate new account IDs, keep old IDs as legacy_account_id for crosswalk. | |
| Contact | Where does the primary contact record live? Which CRM is the source of truth for contact-to-account association? Who owns dedupe? | Two instances have overlapping contact bases. Decision: New CRM is system of record. Dedupe first in old CRM, then migrate. | |
| Deal/Opportunity | Which CRM does revenue reporting feed from? Which stages drive forecast? Which system tracks multi-threaded deals? | Salesforce tracks complex enterprise deals better. New SMB pipeline lives in HubSpot. Decision: Salesforce is record for enterprise (>$50K), HubSpot for SMB. Deal associations link them. | |
| Subscription/ARR | Which system tracks active subscriptions? Where do renewals originate? Where is churn recorded? | Legacy billing platform held subscription contracts, new CRM tracks usage. Decision: the billing platform is source of record for subscription status; CRM reflects current state only. | |
| Activity | Email, calls, notes: which system logs them? Which is authoritative? Which do you archive? | Old CRM has 5 years of email history via Gmail sync. New CRM will sync going forward. Decision: Archive old CRM read-only; Gmail sync to new CRM from cutover onward. |
Critical rule: Every object must have an owner and a system. Ambiguity during the merge creates data chaos post-cutover.
The Data Harmonization Layer: 80% of the Work
Before you run a single migration script, harmonize the object models. This is where 80% of effort lives and where most projects fail.
What to Harmonize
- Object model itself: HubSpot has no native Lead object (contacts + lifecycle stage); Salesforce splits Lead vs. Contact/Account. Decide which model your merged org uses, then map both old models into it.
- Picklist values: Two instances have "Negotiation" and "In Negotiation" and "In Contract" as deal stages. Decide the canonical pipeline and create the mapping before ETL.
- Property types and validation: One CRM has phone as text (allows international formats); another stores only US numbers. Decide the harmonized format, then transform.
- Picklist dependencies: Some properties only show up if another property holds a certain value. If both instances have different dependencies, design the merged logic first.
- Currency: Multi-entity companies have GBP, EUR, and USD deals. Decide: store all ARR in one currency (EUR base with FX conversion) or preserve original at deal level?
- Lifecycle and deal stage definitions: "MQL" means something different if marketing qualified is scored in one system and manual in another. Agree the definition across both orgs. This drives adoption later.
Harmonization Anti-Patterns
- Assuming "we'll merge and clean up after cutover." Post-migration data work costs 3x pre-migration work (industry data). Clean first.
- Keeping every field because "someone might use it." Consolidation is a chance to delete custom fields nobody touches. Audit and kill ruthlessly.
- Migrating historical data in the wrong format. Email addresses with typos, phone numbers without country codes, company names with extra spaces. Standardize the source data, not the destination schema.
Deduplication and Identity Resolution
This is the number-one landmine. Two CRM instances hold overlapping accounts and contacts. Merging them without proper deduplication creates duplicate records, corrupts pipelines, and breaks reporting.
Identity Resolution Framework
Think of this as a CDP identity problem. You need:
- Match keys: Deterministic identifiers to match records across instances.
- For contacts: Email is the strongest (most unique, persistent across job changes). Secondary: phone.
- For accounts: Domain (company.com) is reliable. Secondary: legal company name + country.
- For deals: Deal name + creation date + amount (probabilistic).
- Fuzzy matching: Exact-key matching alone catches only 60 to 70% of duplicates (vendor blogs: DigitalApplied, WinPure, DataLadder, 2026). Use fuzzy matching for near-duplicates: "Acme Corp" vs. "Acme Inc.", "Sarah Jones" vs. "S. Jones", email domain variations (old employee alias email).
- Survivorship rules: When two records match, which one wins? Which fields come from which source?
- Most recent: Last-modified date usually wins (more current data).
- Most complete: Record with most populated fields wins.
- Authoritative source: HubSpot contact record has enriched data; Salesforce contact is incomplete. Take HubSpot as the base, merge in Salesforce only where HubSpot is blank.
- Example rule: "On email match, merge into new CRM record. Keep last_name, first_name, phone from whichever has it. Keep most recent company from new CRM if populated, else old CRM."
- Account hierarchies: Parent-subsidiary relationships often differ between instances (one shows all subs; another rolls up one level). Before merging, agree the canonical hierarchy. Decide: do you preserve both hierarchies as separate associations, or collapse to one?
- Continuous detection: B2B contact data decays roughly 22.5% to 30% per year (HubSpot/MarketingSherpa; ZoomInfo, vendor data), faster for some fields (job changes, data rot, enrichment updates). Deduplication is not a one-time event. Plan weekly or continuous fuzzy-match runs post-cutover (CRM Software Blog, vendor blog, 2026).
Common Deduplication Scenarios
| Scenario | Approach | Tools | |
|---|---|---|---|
| 30 to 50% duplicate rate in mid-market migration | Run multi-pass deduplication: exact match on email, then fuzzy on name + company, then manual review of borderline cases. | Insycle, Trujay/SyncMatters, native CRM dedupe tools | |
| Account hierarchies conflict | Export hierarchy from both CRMs. Manually agree on parent-subsidiary relationships. Create a hierarchy reconciliation document before cutover. | Spreadsheet + manual review | |
| One instance has better data | Take one as the base (survivorship winner). Enrich with non-conflicting fields from the other. | ETL tool, Data Loader, or API merge | |
| Contact-to-account associations are inconsistent | Use email domain + deterministic matching to create canonical contact-account pairs. Flag mismatches for review. | Custom script or dedupe tool |
Deduplication Timeline
In a mid-market consolidation (1M to 5M records), expect 2 to 4 weeks of full-time deduplication work. Plan for 30 to 50% of records to need review (practice-based); 76% of CRM users say less than half of their CRM data is accurate and complete (Validity, 2025).
Historical Data and Activity Timeline Strategy
Emails, calls, notes, and engagement history almost never migrate cleanly. API rate limiting, schema mismatches, and attachment overhead create gaps that are hard to spot and impossible to patch after cutover.
Decide upfront: full migrate, partial, or archive read-only?
Full Migrate
When it makes sense: You need complete customer journey visibility and the data volume is manageable (<500K activities).
How: Export from old CRM, transform to target schema, bulk import, reconcile counts. Biggest challenges:
- Email threading doesn't survive if the old CRM synced from Gmail and the new one will too. Solution: disconnect old CRM from Gmail, let new CRM backfill from Gmail directly after cutover.
- Attachments are expensive (binary blobs, separate API endpoints, slow upload). Consider archiving old CRM as read-only instead.
- API rate limits trigger if you hit 100K activities/hour. Throttle the import, monitor for "429" errors, have a retry strategy.
- Call recordings usually have URL pointers. Test that links survive; if they point to old CRM infrastructure, they'll break.
Timeline: 3 to 8 weeks for large volumes, depending on data quality and volume.
Partial Migrate
When it makes sense: You want recent activity (last 18 to 24 months) but archive old data for compliance/audit.
How: Filter by activity date or record age. Migrate contacts with activity in the last 2 years; archive the rest read-only. This cuts migration time 60%+ and reduces post-cutover clutter.
Example: Salesforce instance goes read-only; you migrate deals and contacts from the last 18 months. Historical deals stay in Salesforce for audit trail.
Archive Read-Only
When it makes sense: You need historical record for compliance, but don't need it in the transactional system.
How: Convert old CRM to read-only mode; disable syncs; point users to it for historical research only. New CRM is transactional.
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingcrm-migration-consolidation/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/neon-rutger/b2b-revops-skills/crm-migration-consolidation)