CRM migration
Field-level mapping, validation, and rollback between UPilot and Nutshell. We move data and schema; workflows are rebuilt natively in Nutshell.
UPilot
Source
Nutshell
Destination
Compatibility
6 of 8
objects map 1:1 between UPilot and Nutshell.
Complexity
BStandard
Timeline
2-3 weeks
Overview
Moving from UPilot to Nutshell is a sideways shift in complexity rather than an upgrade or downgrade. Both are SMB-focused CRMs, but UPilot consolidates Sales, Marketing, and Support in one workspace while Nutshell focuses on the sales pipeline and contact management with a lighter feature set. We extract UPilot data via its CSV export functionality (no public bulk API exists), map custom fields carefully because Nutshell handles custom fields through its API using a customFields dictionary rather than a dedicated custom field management UI, and import into Nutshell's standard objects. Pipeline stages, deal values, and task associations migrate as configuration plus data. We do not migrate automations, marketing features, or support ticket threading semantics; we deliver a written inventory of these for the customer to rebuild in Nutshell.
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.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a UPilot object lands in Nutshell, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
UPilot
Contact
Nutshell
People
1:1UPilot Contact records map directly to Nutshell People. Standard fields (name, email, phone, company association) migrate 1:1. UPilot's 360-degree contact view embeds task context alongside contact records; in Nutshell, task relationships link via People-Activity associations rather than embedded display. We preserve task associations as linked Activity records rather than embedding, requiring the destination team to adjust workflow expectations for viewing task context.
UPilot
Company
Nutshell
Company
1:1UPilot Company records map to Nutshell Company records. The one-to-many relationship with Contacts (People in Nutshell) is preserved via the People-Company link field. We use company name or domain as the dedupe key during import. Nutshell's Company object does not support nested hierarchies; parent-company structures in UPilot flatten to separate Company records.
UPilot
Deal
Nutshell
Deal
1:1UPilot Deals map to Nutshell Deals with deal value, stage, expected close date, and associated contacts (People) preserved. Multiple contacts per deal with role assignments migrate as linked People records. We map UPilot's pipeline stage names to Nutshell's stage names and configure the stage probability settings during migration.
UPilot
Pipeline
Nutshell
Pipeline (configuration)
lossyUPilot organizes Deals into colored pipeline views with customizable stages. We map the pipeline structure and stage history to Nutshell's pipeline configuration. Nutshell supports pipeline customization including stage names, colors, and probability percentages. Stage history (dates of stage transitions) migrates as Activity records or custom fields if the customer requires that level of audit trail.
UPilot
Task
Nutshell
Task / Activity
1:1UPilot Tasks migrate to Nutshell Activities (Tasks). Task status, priority, due date, and description transfer. Task associations with Contacts (People) and Deals migrate as linked Activity records. Note that UPilot's inline task editing in pipeline view has no direct Nutshell equivalent; tasks display in a separate Activity feed in Nutshell rather than embedded in pipeline rows.
UPilot
Custom Fields
Nutshell
Custom Fields
lossyUPilot custom fields on Contacts, Companies, and Deals require field-level mapping to Nutshell's custom fields. Nutshell creates custom fields for Companies, People, and Leads but handles them via the API customFields dictionary rather than a dedicated UI for all field types. We create the custom field definitions in Nutshell first, then map UPilot field values using the field name as the key in the customFields object. Nutshell supports Text (225 char max), Long Text, Currency, and Date field types for custom fields.
UPilot
Support Tickets
Nutshell
Cases
1:1UPilot Support Tickets migrate to Nutshell Cases if the destination includes Nutshell's optional support functionality. Ticket pipeline becomes Case pipeline, ticket stages become Case status values, and conversation threads migrate as Activity records linked to the Case. Note that UPilot's email and live chat integration semantics differ from Nutshell's; threading may not preserve exactly as displayed in UPilot.
UPilot
Owner
Nutshell
User
1:1UPilot Owners (users) map to Nutshell Users. We resolve owners by email match. Any UPilot Owner without a matching Nutshell User goes to a reconciliation queue for the customer to provision before record import resumes. Owner assignment on Deals and Tasks migrates once the User mapping is validated.
| UPilot | Nutshell | Compatibility | |
|---|---|---|---|
| Contact | People1:1 | Fully supported | |
| Company | Company1:1 | Fully supported | |
| Deal | Deal1:1 | Fully supported | |
| Pipeline | Pipeline (configuration)lossy | Fully supported | |
| Task | Task / Activity1:1 | Fully supported | |
| Custom Fields | Custom Fieldslossy | Mapping required | |
| Support Tickets | Cases1:1 | Mapping required | |
| Owner | User1:1 | Fully supported |
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.
UPilot gotchas
Per-feature pricing model complicates scope estimation
No publicly documented bulk export API
Two-way email sync state during migration
Task context attached to 360-degree contact view
Hidden onboarding and migration fees
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
Pair-specific challenges
Migration approach
Discovery and UPilot module audit
We audit the source UPilot account across all activated modules (Sales, Marketing, Support), custom fields on each object, pipeline count and stage configuration, task volume and association patterns, and export capability validation. We use UPilot's built-in CSV export to extract sample data and confirm field coverage. We also identify any records with incomplete required fields that need cleansing before import. The discovery output is a written migration scope specifying which objects and modules are in scope for migration.
Nutshell custom field creation via API
We create all required Nutshell custom fields before any data import using the Nutshell API. For each UPilot custom field, we identify the equivalent Nutshell field type (Text, Long Text, Currency, Date) and create the field definition using the Nutshell customFields API endpoint. We validate that the custom field was created successfully by querying it back before proceeding to data import. This step must complete before record import begins because Nutshell rejects imports that reference customFields keys that do not exist.
Sandbox migration and reconciliation
We run a full migration into Nutshell's test environment using production-like data volume. The customer reconciles record counts (People in, Companies in, Deals in, Activities in), spot-checks 20-30 random records against the UPilot source, and validates custom field values populated correctly. Any mapping corrections happen here. We specifically validate that task associations (which are embedded in UPilot's 360-degree contact view) appear correctly as linked Activities in Nutshell.
Owner reconciliation and User provisioning
We extract every distinct UPilot Owner referenced on Deal, Task, and Contact records and match by email against the Nutshell destination User table. Owners without a matching Nutshell User go to a reconciliation queue. The customer provisions any missing Users in Nutshell before production migration begins. Migration cannot proceed past this step because User assignment is required on Deals and Tasks.
Production migration in dependency order
We run production migration in record-dependency order: Companies (from UPilot Companies), People (with Company link resolved), Deals (with People associations and OwnerId resolved), Activities (Tasks linked to People and Deals via the Bulk API or batched REST calls). Custom fields populate during each phase using the customFields dictionary approach. Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and automation rebuild handoff
We freeze UPilot writes during cutover, run a final delta migration of any records modified during the migration window, then enable Nutshell as the system of record. We deliver a written inventory of UPilot features requiring rebuild in Nutshell: marketing automation, support ticket workflows, pipeline automation rules, and any email sync configuration. We do not rebuild these in Nutshell scope. We support a three-day hypercare window where we resolve any reconciliation issues raised by the customer's team after live use begins.
Platform deep dives
UPilot
Source
Strengths
Weaknesses
Nutshell
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 UPilot and Nutshell.
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
UPilot: Not publicly documented.
Data volume sensitivity
UPilot doesn't expose a bulk API — REST + parallelization used for high-volume runs.
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 UPilot to Nutshell migration scoping. Not seeing yours? Book a call.
Walk through your UPilot to Nutshell migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave UPilot
Other ways to arrive at Nutshell
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.