How RPM Shop Sales Moved 79K CRM Records from Nutshell to HighLevel and Started Dialing from Day One
RPM Shop Sales migrated 79,315 records from Nutshell to HighLevel with ClonePartner. Contacts, companies, tasks, notes, and pipeline data transferred with owner assignments intact. The team confirmed satisfaction and started using HighLevel immediately after the full run.
Planning a migration?
Get a free 30-min call with our engineers. We'll review your setup and map out a custom migration plan — no obligation.
Schedule a free call- 1,500+ migrations completed
- Zero downtime guaranteed
- Transparent, fixed pricing
- Project success responsibility
- Post-migration support included
TL;DR
Customer: RPM Shop Sales (Automotive business brokerage, Texas, US)
The Move: Nutshell to HighLevel (GoHighLevel)
The Scope: 79,315 total records: 17,161 contacts, 16,438 companies, 29,473 notes, 15,184 activities, 565 files, 316 tasks, and 78 leads. Spanning ~2 years of CRM history.
The Roadblock: Nutshell's data model (accounts, people, leads, activities) does not map 1:1 to HighLevel (businesses, contacts, opportunities, notes). Owner/assignee fields needed manual mapping. HighLevel's API rejects duplicate contacts by email or phone, requiring deduplication logic.
The Outcome: Full migration completed within a week. Delta syncs ran for 30 days to capture new activity during the transition. Team started using HighLevel the same day the full run finished.
By the Numbers
- Total records migrated: 79,315
- Notes: 29,473
- Contacts: 17,161 (14,502 unique after HighLevel deduplication)
- Companies: 16,438
- Activities: 15,184
- Files: 565
- Tasks: 316
- Leads/Opportunities: 78
- Delta syncs: Multiple rounds over 30 days
The Challenge: A Brokerage Where the CRM Is the Business
RPM Shop Sales is a Texas-based brokerage that specializes exclusively in buying and selling auto repair shops. The team covers markets across Houston, San Antonio, Austin, Dallas, Corpus Christi, and surrounding areas. Their edge is a maintained database of every shop owner they have contacted, every buyer who has responded to a listing, and every deal in their pipeline. That database is not a tool that supports the business. It is the business.
The team was moving from Nutshell to HighLevel to take advantage of HighLevel's built-in dialer and automation capabilities. But the CRM data had to arrive ready to work. Tasks feed the dialer's activity tracking. Owner assignments determine whose call queue a contact lands in. If tasks are linked to the wrong contacts or owners are missing, the team cannot dial.
Three things made this migration more complex than a standard CRM move:
- Entity mapping mismatch. Nutshell organizes data as accounts, people, leads, and activities. HighLevel uses businesses, contacts, opportunities, and notes. These are not direct equivalents. Activities needed to be folded into notes. Leads needed to be mapped to opportunities with pipeline and stage configuration.
- Owner/assignee mapping. Every contact and company in Nutshell has an assigned user. That assignment needed to carry over to HighLevel so that each broker's contacts and tasks appeared in the right queue.
- HighLevel's built-in deduplication. The HighLevel API does not allow creating multiple contacts with the same email address or phone number. It returns the existing contact instead of creating a new one. Out of 17,161 source records, 14,502 resolved to unique contacts under those keys. The destination count is therefore a deduplicated count, and that was agreed before the load.
The ClonePartner Solution: Dependency-Ordered Loading with a 30-Day Delta Window
ClonePartner ran the migration in phases: a reviewed sample, the full production run, then a 30-day delta sync window to capture new activity during the transition.
-
Entity mapping and dependency order. The full Nutshell account was pulled into a staging database, with a gap-fill pass for companies that were referenced but not initially returned. HighLevel was then loaded in strict order: businesses first (from Nutshell accounts), then contacts linked to those businesses, then opportunities (from Nutshell leads with pipeline/stage configuration), then notes, tasks, and file attachments. Activities were folded into notes during the mapping step.
-
Owner and assignee mapping. Nutshell and HighLevel do not share user identifiers, so ownership is carried across by matching on email address. Backfill passes then confirm every contact, company and task in HighLevel against its source owner — ownership is what decides who works a record, so it is verified rather than assumed.
-
Task-to-parent verification. A task only means something if it sits on the right record. Every task's parent is checked against its source record after the load and re-synced until the two agree, which is the control that keeps a dialer queue pointing at the right contacts and companies.
-
Duplicate handling. When HighLevel's API flagged approximately 2,600 records as duplicates (same email or phone), ClonePartner reported the breakdown to the RPM team. Luke confirmed they should proceed with the 14,502 unique contacts and treat the returned duplicates as expected behavior.
-
Contact-to-business linking, in any order. Companies and contacts move in parallel batches for throughput, so either can land first. A polling loop links a contact to its business whenever the business arrives, so no relationship depends on the order the batches complete in.
-
30-day delta migration. After the full run was confirmed, ClonePartner ran multiple programmatic delta syncs over 30 days. Each delta pulled the latest new entities from Nutshell and pushed them to HighLevel, giving the RPM team a controlled window to transition without losing new data.
The Results: Dialing the Same Day
The full migration completed on a Sunday. By Tuesday, Luke confirmed satisfaction and requested the 30-day delta phase.
"We are pleased with the migration. We are ready to move on to Phase 5: Delta Migration for 30 days."
Luke Crane, RPM Shop Sales
When asked about the go-live timeline, Luke's response was three words:
"We plan on using immediately."
Luke Crane, RPM Shop Sales
The delta syncs ran through mid-April, with Luke's team setting the final cutoff date. After the last delta completed, the Nutshell-to-HighLevel migration was fully closed. Every contact, company, task, note, and opportunity was in HighLevel with correct owner assignments, ready for the dialer.
What Made This Migration Different
For sales teams planning a CRM switch where the database drives a dialer or automated outreach, three details from this project are worth noting:
-
Tasks are not just tasks. In a dialer-driven workflow, tasks control who gets called and when. A task linked to the wrong contact or missing its assignee breaks the calling queue. Task linkage and assignee are load-bearing, so both get verified explicitly rather than inferred from a successful write.
-
Deduplication is a feature, not a bug. HighLevel enforces uniqueness on email and phone, so a destination count will not match a source count and should not be expected to. Agreeing that up front — rather than fighting the behaviour — turns it into a consolidated database on day one.
-
Delta syncs buy you a transition window. Running a 30-day delta period meant the RPM team did not have to pick a single cutover date and hope nothing was missed. They continued working in Nutshell while HighLevel caught up, then set the final cutoff when they were ready.