CRM migration
Field-level mapping, validation, and rollback between openCRX and Nutshell. We move data and schema; workflows are rebuilt natively in Nutshell.
openCRX
Source
Nutshell
Destination
Compatibility
6 of 10
objects map 1:1 between openCRX and Nutshell.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from openCRX to Nutshell is a shift from an enterprise-class, self-hosted CRM with a rich contract hierarchy to a cloud-based SMB sales CRM with a simpler data model. openCRX has no published public REST API, so every export requires DBA-coordinated database access or application-layer scripting against the specific deployment version. We handle that access constraint directly in the migration runbook. openCRX's Accounts (Contact and LegalEntity subclasses), Opportunities, Quotes, Sales Orders, and Invoices all inherit from abstract contract classes; Nutshell uses People, Companies, and Deals with a flat pipeline structure. We map each openCRX contract subtype into a corresponding Nutshell Deal with the original contract type preserved as a read-only text field, and we carry forward all product, pricing, and line-item detail as structured notes. Custom fields added via openCRX DataBinding PropertySet migrate as Nutshell custom fields where the type is supported, or as text fields otherwise. Workflow Processes, Alert Topics, and segment-scoped configurations do not migrate; we deliver a written inventory of these for your admin 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 openCRX 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.
openCRX
Account (Contact subclass)
Nutshell
Person
1:1openCRX Contact (individual account subclass) maps to Nutshell Person. We extract first name, last name, email, phone, postal address, and any assigned user from the Contact object. openCRX's extensive Contact attribute set (notes, ratings, user-defined features) is mapped to Nutshell standard fields and custom fields where the type is supported. openCRX segment assignments are not carried; Nutshell uses a flat user-assignment model instead.
openCRX
Account (LegalEntity subclass)
Nutshell
Company
1:1openCRX LegalEntity (organisation account subclass) maps to Nutshell Company. Company name, website, industry, and address fields migrate directly. The openCRX postal address and phone number complex objects map to Nutshell's address and phone fields. openCRX's multi-address support (billing, shipping, office) collapses to a single Nutshell Company address; secondary addresses are documented as note text.
openCRX
Opportunity
Nutshell
Deal
1:1openCRX Opportunities inherit from abstract contract classes and map directly to Nutshell Deals. The openCRX opportunity rating, estimated value, probability, expected close date, and assigned owner migrate as standard Nutshell Deal fields. openCRX stage values map to Nutshell pipeline stages, with a custom text field capturing the original openCRX contract status for audit. Parent Account lookup resolves at migration time via the LegalEntity-to-Company mapping.
openCRX
Quote
Nutshell
Deal (with Quote metadata)
lossyopenCRX Quotes inherit from the same contract hierarchy as Opportunities and map to Nutshell Deals with a custom field capturing original quote metadata (quote number, validity period, and line items as structured text). Quote line items from openCRX contract positions are appended as a formatted note block on the target Nutshell Deal. This approach preserves full quote detail without creating a separate Quote object, which Nutshell does not expose as a standard API object.
openCRX
Sales Order
Nutshell
Deal (with Order metadata)
lossyopenCRX Sales Orders inherit from the contract hierarchy and map to Nutshell Deals using the same collapsing strategy as Quotes. Order number, status, shipping address, and order line items are captured as structured text in a custom field on the target Deal. openCRX's order-to-quote transformation logic (which converts a Quote to a Sales Order in openCRX) is documented as a note in the migration handoff so that Nutshell admins can manually reproduce the workflow if needed.
openCRX
Invoice
Nutshell
Deal (with Invoice metadata)
lossyopenCRX Invoices are terminal contract objects in the sales process chain and map to Nutshell Deals using the same collapsing approach. Invoice number, date, payment terms, and line items are captured in a custom field on the Deal. openCRX's invoice payment status and billing address migrate as structured note text. Customers needing separate invoice records in Nutshell use an AppExchange partner app or manage invoicing in a dedicated accounting tool post-migration.
openCRX
Product and Price List
Nutshell
Product
1:1openCRX Products map to Nutshell Products with name, SKU (product code), and description migrating directly. Multi-currency price lists from openCRX collapse to a single USD price in Nutshell (or the customer's chosen base currency); the original multi-currency price context is preserved as a text note on the Product. openCRX bundle products and design-to-order configurations are documented as a product structure note.
openCRX
Activity (Call, Email, Meeting, Task)
Nutshell
Activity
1:1openCRX Activities with rich attributes (time tracking, activity trackers, custom feature definitions) map to Nutshell Activities. Call, email, meeting, and task subtypes are preserved through Nutshell's activity type field. openCRX Activity Tracker grouping is documented as note text on the parent Contact or Deal in Nutshell. We set Activity timestamps to the original openCRX created date to preserve the historical timeline ordering.
openCRX
User-Defined Attributes (DataBinding PropertySet)
Nutshell
Custom Fields
lossyopenCRX custom fields added via DataBinding PropertySet are feature definitions stored in the UI customising layer and bound to CrxObject at runtime. We identify all active custom fields during scoping, map their openCRX attribute types to Nutshell custom field types (Text, Number, Date, Currency, Picklist, Boolean), and create corresponding Nutshell custom fields on the appropriate object before migration. openCRX attributes that use unsupported Nutshell field types migrate as Text. The full custom field inventory is included in the migration handoff document.
openCRX
Attachment
Nutshell
Attachment
1:1openCRX binary attachments linked to Contacts, Accounts, or Opportunities are extracted from the storage layer (WebDAV-accessible on Linux or macOS export clients) and re-attached to the corresponding migrated Nutshell records via Nutshell's attachment API. We verify attachment accessibility during scoping since WebDAV exports on Windows can silently fail due to Microsoft's WebDAV client quirks documented in openCRX's groupware services guide. Any attachments that cannot be accessed through a compatible client are listed in the handoff with a note on the export method required.
| openCRX | Nutshell | Compatibility | |
|---|---|---|---|
| Account (Contact subclass) | Person1:1 | Fully supported | |
| Account (LegalEntity subclass) | Company1:1 | Fully supported | |
| Opportunity | Deal1:1 | Fully supported | |
| Quote | Deal (with Quote metadata)lossy | Fully supported | |
| Sales Order | Deal (with Order metadata)lossy | Fully supported | |
| Invoice | Deal (with Invoice metadata)lossy | Fully supported | |
| Product and Price List | Product1:1 | Fully supported | |
| Activity (Call, Email, Meeting, Task) | Activity1:1 | Fully supported | |
| User-Defined Attributes (DataBinding PropertySet) | Custom Fieldslossy | Mapping required | |
| Attachment | Attachment1: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.
openCRX gotchas
No public REST API with documented rate limits
WebDAV client quirks block document access on Windows
"Too many open files" on Linux blocks installation and export
Workflow Processes are segment-scoped and non-portable
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 export method selection
We audit the openCRX instance: version, segment count, data volumes per segment, active DataBinding PropertySet custom fields, contract type distribution (Opportunities vs Quotes vs Sales Orders vs Invoices), and attachment storage method (WebDAV or internal file system). We also identify the openCRX database type (PostgreSQL, Oracle, or DB2) and confirm whether the customer can provide a read-only database account or prefers application-layer export scripting. This output is a written migration scope document that defines the export method, record counts per object, and any segment-split requirements.
Export coordination and data extraction
We coordinate the data export with the customer's DBA or technical contact. For database exports, we provide a read-only SQL query set scoped to the openCRX schema that extracts Account, Contact, Opportunity, Quote, Sales Order, Invoice, Activity, and Product records in normalised form. For application-layer exports, we provide an export script template for the customer's specific openCRX version. We validate record counts after extraction and confirm that all cross-object relationships (Account-to-Contact, Opportunity-to-Account, Activity-to-Contact) are preserved as foreign-key columns in the export before any transformation begins.
Nutshell schema design and custom field provisioning
We design the Nutshell destination schema based on the export analysis. This includes provisioning all identified custom fields on Person, Company, and Deal objects via Nutshell's custom field API. We define the pipeline and stage structure in Nutshell to accommodate the openCRX opportunity and contract stage values, with a custom text field on Deal capturing the original openCRX contract subtype. We validate that all required Nutshell custom fields can be created within Nutshell's field type constraints before any data transformation.
Sandbox migration and reconciliation
We run a full migration into a Nutshell test account using production-like data volume. The customer reconciles record counts, spot-checks 25-50 records against the openCRX source, and confirms that the contract hierarchy collapsing strategy produces a workable Nutshell Deal structure. Any field mapping corrections, custom field type adjustments, or stage label changes happen here. The customer signs off on the sandbox migration before production migration is scheduled.
Production migration in dependency order
We run production migration in dependency order: Companies (from openCRX LegalEntity), People (from openCRX Contact), Products, Deals (with contract subtype metadata and structured line-item notes), Activities (calls, emails, meetings, tasks with original timestamps preserved), custom field values, and attachments (via Nutshell's attachment API using a Linux or macOS export client). Each phase emits a row-count reconciliation report. The openCRX instance remains writable during migration so that the customer can continue using it until cutover.
Cutover, validation, and Workflow handoff
We freeze openCRX writes during the cutover window, run a final delta migration of any records modified during the migration period, then mark Nutshell as the system of record. We deliver the contract hierarchy summary document (how each openCRX Quote, Sales Order, and Invoice maps to a Nutshell Deal), the custom field inventory, the openCRX workflow definitions list for rebuild, and the attachment access log. We support a three-day hypercare window to resolve reconciliation issues. We do not rebuild openCRX Workflow Processes or Alert Topics in Nutshell; these are documented for the customer's admin to rebuild as Nutshell automation rules or follow-up actions.
Platform deep dives
openCRX
Source
Strengths
Weaknesses
Nutshell
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 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 openCRX and Nutshell.
Object compatibility
1 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
openCRX: Not publicly documented.
Data volume sensitivity
openCRX 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 openCRX to Nutshell migration scoping. Not seeing yours? Book a call.
Walk through your openCRX 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 openCRX
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.