CRM migration
Field-level mapping, validation, and rollback between Oncourse CRM and Nutshell. We move data and schema; workflows are rebuilt natively in Nutshell.
Oncourse CRM
Source
Nutshell
Destination
Compatibility
5 of 8
objects map 1:1 between Oncourse CRM and Nutshell.
Complexity
BStandard
Timeline
2-3 weeks
Overview
Moving from Oncourse CRM to Nutshell is a schema-normalization migration. Oncourse CRM stores organization names as a Contact property rather than a distinct Account object, so we extract every organization value, deduplicate it, and create Nutshell Company records before importing any Contact. This ensures the People-to-Company lookup relationship is satisfied at import time rather than patched afterward. Oncourse CRM also records activity history as freeform Notes rather than structured activity records, which means we cannot reconstruct a native Nutshell activity timeline from the source data; we preserve the note content as Note records attached to the appropriate Contact or Deal. Deals, Pipeline Stages, and Tasks migrate 1:1, with stage names mapped directly. Custom fields on Contacts, Leads, and Deals are exposed via Oncourse DSL export and map to equivalent Nutshell custom properties with type preservation. Workflows, automations, and attachment files do not migrate; we deliver a written inventory of any active workflows requiring manual 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 Oncourse CRM 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.
Oncourse CRM
Lead
Nutshell
Lead
1:1Oncourse CRM Lead records (distinct from Contacts, with source and status properties) map directly to Nutshell Lead. We preserve lead source, lead status, and any custom field values during import. The Nutshell Lead object serves as the top-level unqualified prospect record, distinct from People which represent known contacts.
Oncourse CRM
Contact
Nutshell
People
1:1Oncourse CRM Contact records map to Nutshell People. Standard fields (name, email, phone, address) map without transformation. Organization values stored in Oncourse CRM's organization Contact property are held during import and used to create Nutshell Company records before People insertion.
Oncourse CRM
Company (extracted from Contact)
Nutshell
Company
1:manyOncourse CRM does not have a distinct Account object; organization names live as a property on Contact. We extract every unique organization value, deduplicate (normalizing for case and whitespace), and create Nutshell Company records. Each People record is then linked to its Company via the People-Company lookup at insert time. This resolves the flat-to-normalized schema gap that would otherwise leave Nutshell People unassociated with any Company.
Oncourse CRM
Deal
Nutshell
Deal
1:1Oncourse CRM Deal records map directly to Nutshell Deal. We preserve deal name, monetary value, stage, and owner assignment. Closed-Lost and Closed-Won statuses migrate as the applicable Nutshell pipeline stage. Owner assignment maps from Oncourse CRM owner to Nutshell user by email match.
Oncourse CRM
Pipeline Stage
Nutshell
Pipeline Stage
lossyOncourse CRM pipeline stages are per-account and customizable. We extract the customer's active stage names during scoping and create matching Nutshell pipeline stages before Deal import. Stage probability percentages are mapped if present in Oncourse CRM. If Nutshell does not have an equivalent stage name, we create it in the destination before migration begins.
Oncourse CRM
Task
Nutshell
Task
1:1Oncourse CRM tasks associated with Deals map to Nutshell Tasks linked to the corresponding Deal. Task subject, status (open/closed), due date, and owner assignment migrate directly. We resolve the parent Deal reference at migration time using deal name as the dedupe key.
Oncourse CRM
Note (activity history)
Nutshell
Note
1:1Oncourse CRM records activity history as freeform Notes rather than structured Call/Email/Meeting records. These migrate as Nutshell Note records attached to the relevant People or Deal. This is a data-shape limitation: Nutshell will display the note content, but the native activity timeline (Calls, Emails, Meetings) cannot be reconstructed from Oncourse CRM source data. We flag this gap in the scoping document and recommend manual activity logging post-migration if a structured timeline is required.
Oncourse CRM
Custom Fields
Nutshell
Custom Fields
lossyOncourse CRM custom fields on Contacts, Leads, and Deals are exposed via DSL export. We map each to a Nutshell custom property of equivalent data type (text, number, date, dropdown). Custom field names and API identifiers are preserved where possible. Nutshell's custom field UI handles field creation before data import begins.
| Oncourse CRM | Nutshell | Compatibility | |
|---|---|---|---|
| Lead | Lead1:1 | Fully supported | |
| Contact | People1:1 | Fully supported | |
| Company (extracted from Contact) | Company1:many | Fully supported | |
| Deal | Deal1:1 | Fully supported | |
| Pipeline Stage | Pipeline Stagelossy | Fully supported | |
| Task | Task1:1 | Fully supported | |
| Note (activity history) | Note1:1 | Fully supported | |
| Custom Fields | Custom Fieldslossy | 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.
Oncourse CRM gotchas
Attachments are not exportable via the standard import/export tooling
Activity history lives in notes, not structured records
Pipeline stages are tenant-defined free text
Voice and SMS allowances cap at 400 each on Standard
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
Source data extraction and scoping
We audit the Oncourse CRM account for record counts (Leads, Contacts, Deals, Tasks, Notes), custom field definitions, pipeline stage names, and owner assignments. We use the Oncourse DSL export or CSV export tooling to extract records and validate schema coverage. The scoping output is a written migration scope document with record counts, field mapping, and any data shape limitations (noted above) requiring customer decisions before migration begins.
Organization deduplication and Company pre-creation
We extract every unique organization value from the Oncourse CRM Contact organization field, normalize (trim whitespace, normalize case, collapse punctuation variants), deduplicate, and create Nutshell Company records before any People import. This step resolves the flat-to-normalized schema gap. The customer reviews the deduplication output and approves merge decisions before Company records are created.
Nutshell schema setup
We configure Nutshell pipeline stages to match the Oncourse CRM stage names, create any missing stages, and set probability percentages. We create custom fields in Nutshell matching the Oncourse CRM custom field definitions (with type mapping for text, number, date, and dropdown). If the customer requires specific Nutshell page layouts or field visibility settings, we configure these before record import.
Record import in dependency order
We import in dependency order: Nutshell Companies (created in step 2), then Leads (1:1), then People with Company lookup resolved, then Deals with OwnerId and CompanyId resolved, then Tasks linked to Deals, then Notes attached to People or Deals. Each phase emits a row-count reconciliation report. Owner mapping uses email match; any unmatched owner goes to a reconciliation queue for admin resolution before the Deals phase.
Cutover, validation, and workflow handoff
We freeze Oncourse CRM writes during cutover, run a delta migration for any records modified during the migration window, then mark Nutshell as the system of record. We deliver a written inventory of any active Oncourse CRM workflows or configurations requiring rebuild in Nutshell. We do not rebuild workflows as Nutshell automations inside the migration scope; that is a separate admin task. A one-week hypercare window covers reconciliation issues raised by the sales team post-go-live.
Platform deep dives
Oncourse CRM
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 Oncourse CRM 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
Oncourse CRM: Not publicly documented.
Data volume sensitivity
Oncourse CRM 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 Oncourse CRM to Nutshell migration scoping. Not seeing yours? Book a call.
Walk through your Oncourse CRM 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 Oncourse CRM
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.