CRM migration
Field-level mapping, validation, and rollback between Nutshell and HighLevel. We move data and schema; workflows are rebuilt natively in HighLevel.
Nutshell
Source
HighLevel
Destination
Compatibility
5 of 8
objects map 1:1 between Nutshell and HighLevel.
Complexity
BStandard
Timeline
2-3 weeks
Try the reverse
Overview
Moving from Nutshell to GoHighLevel is a data-model translation problem, not a simple record copy. Nutshell uses a B2B account-centric model where Companies contain People and Leads exist as separate records. GoHighLevel is contact-centric with Opportunities inside Pipelines and Companies treated as loose groupings rather than hierarchical parents. A naive CSV export from Nutshell flattens the Company-to-Person relationship, orphans activity histories, and gives you zero pipeline logic on the GoHighLevel side. We use Nutshell's JSON-RPC API with paginated extraction to pull the full relational structure, then map Companies to GHL Company objects, People to Contacts, and Leads into the same Contact object using a lifecycle-status flag. Pipeline stages and deal stages are recreated as GoHighLevel Opportunities with matching probability weights. We do not migrate email sequences, Nutshell IQ enrichment data, or binary file attachments—these require manual rebuild or separate tooling. We deliver a written inventory of all Nutshell automation configurations for your admin to rebuild as GoHighLevel workflows post-migration.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Source platform
Nutshell platform overview
Scorecard, SWOT, gotchas, and pricing for Nutshell.
Destination platform
HighLevel platform overview
Scorecard, SWOT, gotchas, and pricing for HighLevel.
Data migration guide
The complete GoHighLevel migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Source platform guide
Nutshell migration guide
Understand the data you're exporting from Nutshell before mapping it.
Destination checklist
GoHighLevel migration checklist
Pre- and post-cutover tasks for moving onto HighLevel.
Source checklist
Nutshell migration checklist
Exit checklist for unwinding your Nutshell setup cleanly.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Nutshell object lands in HighLevel, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Nutshell
People
HighLevel
Contact
1:1Nutshell People records map directly to GoHighLevel Contacts. The contact's name, email, phone, address, and standard fields transfer as typed fields in GHL. Nutshell's company_id reference resolves to a GHL Company object lookup at migration time. Any Person-level custom fields from Nutshell are recreated as Contact custom properties in GHL. The migration uses Nutshell's JSON-RPC contacts API with paginated cursor-based extraction and inserts into GHL via the Contacts REST endpoint, batched to avoid rate-limit violations.
Nutshell
Companies
HighLevel
Company
1:1Nutshell Company records map to GoHighLevel Company objects. Unlike Nutshell's hierarchical model where People attach directly to Companies, GHL Companies function as a loose grouping mechanism that Contacts reference rather than a strict parent. Company-level custom fields migrate as GHL Company custom properties. The GHL Company is created before any Contact import so that the Company lookup reference is satisfied at Contact insert time.
Nutshell
Leads
HighLevel
Contact (status-flagged)
1:manyNutshell Leads are distinct records separate from People, with their own custom fields and lifecycle. GoHighLevel has no separate Lead object, so we merge Nutshell Leads into the GHL Contact object using a custom field nut_source__c set to Lead for origin tracking. We also create a lifecycle_status custom picklist on the GHL Contact to preserve the Nutshell Lead stage (New, Contacted, Qualified, Unqualified) so the customer can segment in GHL without a separate Lead management workflow. The original Nutshell Lead ID is preserved in nut_original_id__c for audit.
Nutshell
Deals
HighLevel
Opportunity
1:1Nutshell Deals map to GoHighLevel Opportunities inside Pipelines. The deal name, amount, expected close date, owner, and associated People and Companies transfer. In GHL, the Opportunity is placed inside the appropriate Pipeline and assigned to a stage that mirrors the Nutshell pipeline and stage definition. We preserve deal stage probabilities by configuring matching stage weights in GHL Pipeline setup. Closed-won and closed-lost reasons from Nutshell custom fields become GHL Opportunity custom fields.
Nutshell
Pipeline
HighLevel
Pipeline
lossyNutshell's multiple pipelines (each with configurable stages) map to GoHighLevel Pipelines. We extract pipeline definitions including stage names, stage order, and win/loss status, then recreate them as GHL Pipelines with equivalent stage definitions. Stage probability percentages transfer as GHL stage weights. Note that GHL Pipelines are simpler than Nutshell's pipeline automation triggers; automation logic is documented separately for rebuild.
Nutshell
Activities (calls, emails, meetings, tasks)
HighLevel
Notes and Tasks
1:1Nutshell Activities tied to People or Companies migrate to GHL Notes attached to the corresponding Contact or Company. Call logs, meeting summaries, and task records transfer with timestamps preserved. Email content from Nutshell's activity log becomes a Note on the Contact with email metadata (sender, recipient, date) in the Note body. We maintain activity timeline ordering by setting the Note creation date to the original Nutshell activity timestamp so the customer sees the chronological history in GHL.
Nutshell
Custom Fields (People, Companies, Leads)
HighLevel
Custom Properties (Contact, Company)
lossyWe enumerate all Nutshell custom field definitions across People, Companies, and Leads during discovery. Each custom field is recreated in GHL with the equivalent field type (text, number, date, picklist, checkbox, phone, email, URL) before data import begins. Field-level constraints and picklist options are preserved. Custom field API names from Nutshell are mapped to GHL custom property keys, with nut_ prefixed to avoid naming conflicts with GHL reserved fields.
Nutshell
Tags
HighLevel
Tags
1:1Nutshell uses a tag-based taxonomy for categorizing People and Companies. Tags are exported from Nutshell and mapped to GHL Tags. Nutshell tag hierarchy, if any exists, is flattened during transfer since GHL tags are a flat list. We use GHL's tag management API to create missing tags before Contact and Company import, then apply tags via the contact tagging endpoint during the data load phase.
| Nutshell | HighLevel | Compatibility | |
|---|---|---|---|
| People | Contact1:1 | Fully supported | |
| Companies | Company1:1 | Fully supported | |
| Leads | Contact (status-flagged)1:many | Mapping required | |
| Deals | Opportunity1:1 | Fully supported | |
| Pipeline | Pipelinelossy | Fully supported | |
| Activities (calls, emails, meetings, tasks) | Notes and Tasks1:1 | Fully supported | |
| Custom Fields (People, Companies, Leads) | Custom Properties (Contact, Company)lossy | Fully supported | |
| Tags | Tags1:1 | Mapping required |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
Nutshell gotchas
Contact tier limits enforced on import
No bulk API endpoint requires paginated extraction
Email sequences not exportable via API
Foundation plan disables key sales features
HighLevel gotchas
Sub-account architecture creates isolated data silos per client
Usage-based telecom and AI costs are not in the subscription price
Workflows have no native equivalent in most destination CRMs
API rate limits cap bulk migration throughput at 100 requests per 10 seconds per sub-account
White-label configuration and branding assets do not export via API
Pair-specific challenges
Migration approach
Discovery and data audit
We audit the Nutshell account via the JSON-RPC API, extracting record counts across People, Companies, Leads, Deals, Activities, Tags, and Custom Fields. We enumerate all pipeline definitions (stage names, probabilities, order) and all active email sequence configurations (names, step counts, trigger types) for the rebuild inventory. We identify any Nutshell add-on usage (Nutshell IQ, Forms, Email Marketing) that will not transfer and flag these as manual or separate-tool migration. The discovery output is a written migration scope including the data model map, pipeline reconstruction plan, and a list of items that will require manual rebuild post-migration.
Schema design and hierarchy resolution
We design the GoHighLevel destination schema before any data moves. This includes creating GHL Company objects and Contact custom properties to match Nutshell custom field definitions, configuring Pipelines with stages and probability weights that mirror Nutshell pipeline logic, and defining the Lead-to-Contact merge strategy using a nut_source__c flag on the Contact object. We resolve the Company lookup dependency order: Companies insert first, then People with resolved company_id references, then Leads as flagged Contacts, then Deals as Opportunities inside Pipelines.
Paginated extraction from Nutshell JSON-RPC API
We extract all Nutshell objects using paginated JSON-RPC requests with cursor-based pagination. We implement rate-limit handling with exponential backoff and batch records into chunks of 200-500 per request to avoid triggering Nutshell's API limits. The extraction runs against the production Nutshell account. Activity history is extracted as a separate pass linked to the parent People and Company records by ID so that timeline ordering is preserved. All extraction output is validated against source record counts before the transform phase begins.
Transform and load into GoHighLevel
We run the transform phase using the resolved hierarchy map: Companies are created in GHL first, then People are inserted as Contacts with the GHL Company ID resolved from the original Nutshell company_id, then Leads are inserted as Contacts with nut_source__c set to Lead and the original Nutshell Lead stage preserved in a lifecycle_status custom field. Deals are inserted as Opportunities inside the configured Pipelines. Activities are loaded as Notes attached to the corresponding Contact or Company. Tags are applied via GHL's tag management API after Contact insert. Each phase emits a row-count reconciliation report comparing source count to destination count before the next phase starts.
Cutover and automation rebuild handoff
We freeze Nutshell writes during cutover, run a delta migration of any records modified during the migration window, then enable GoHighLevel as the system of record. We deliver the written automation inventory documenting every Nutshell email sequence with its trigger conditions, step count, and timing, mapped to a recommended GoHighLevel Workflow equivalent. We do not rebuild Nutshell sequences as GoHighLevel workflows inside the migration scope; that is a separate engagement. We support a three-day hypercare window where we resolve any record-count discrepancies or mapping errors surfaced by the customer's team.
Platform deep dives
Nutshell
Source
Strengths
Weaknesses
HighLevel
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 2 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Nutshell and HighLevel.
Object compatibility
2 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
Nutshell: Not publicly documented in summary form..
Data volume sensitivity
Nutshell exposes a bulk API — large-volume migrations stream efficiently.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Nutshell to HighLevel migration scoping. Not seeing yours? Book a call.
Walk through your Nutshell to HighLevel migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Nutshell
Other ways to arrive at HighLevel
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.