CRM migration

Migrate from openCRX to Nutshell

Field-level mapping, validation, and rollback between openCRX and Nutshell. We move data and schema; workflows are rebuilt natively in Nutshell.

openCRX logo

openCRX

Source

Nutshell

Destination

Nutshell logo

Compatibility

60%

6 of 10

objects map 1:1 between openCRX and Nutshell.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

openCRX logo

openCRX

What's pushing teams away

  • The user interface is unintuitive and the learning curve is steep, making day-to-day usage challenging for non-technical teams without dedicated administrator resources.
  • Comprehensive formal documentation is lacking, forcing teams to reverse-engineer behaviour from UML models, Javadoc, and community forum posts.
  • No official commercial support channel exists; users must rely on community resources or internal expertise when production issues arise.
  • Pre-built integrations with popular third-party tools are minimal, requiring custom development effort to connect openCRX to modern SaaS stacks.

Choosing

Nutshell logo

Nutshell

What's pulling them in

  • Lowest cost entry point among mid-market CRMs—Foundation plan starts at $13/user/month, making it accessible for teams validating CRM fit before committing.
  • Integrated sales automation and email sequencing on Pro plans without requiring a separate email marketing platform, per verified Capterra reviews.
  • Consistently praised for intuitive interface and fast onboarding, with case studies reporting 100% team adoption rates within initial deployment periods.
  • Strong customer support responsiveness cited across G2 reviews, with dedicated support tiers available on Enterprise plans.
  • Native integrations with WhatsApp, Facebook Messenger, Instagram, and Slack reduce reliance on third-party middleware for common communication channels.

Object mapping

How openCRX objects map to Nutshell

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)

maps to

Nutshell

Person

1:1
Fully supported

openCRX 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)

maps to

Nutshell

Company

1:1
Fully supported

openCRX 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

maps to

Nutshell

Deal

1:1
Fully supported

openCRX 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

maps to

Nutshell

Deal (with Quote metadata)

lossy
Fully supported

openCRX 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

maps to

Nutshell

Deal (with Order metadata)

lossy
Fully supported

openCRX 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

maps to

Nutshell

Deal (with Invoice metadata)

lossy
Fully supported

openCRX 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

maps to

Nutshell

Product

1:1
Fully supported

openCRX 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)

maps to

Nutshell

Activity

1:1
Fully supported

openCRX 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)

maps to

Nutshell

Custom Fields

lossy
Mapping required

openCRX 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

maps to

Nutshell

Attachment

1:1
Fully supported

openCRX 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.

Gotchas + challenges

What specifically takes care here

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 logo

openCRX gotchas

High

No public REST API with documented rate limits

Medium

WebDAV client quirks block document access on Windows

Medium

"Too many open files" on Linux blocks installation and export

Low

Workflow Processes are segment-scoped and non-portable

Nutshell logo

Nutshell gotchas

High

Contact tier limits enforced on import

Medium

No bulk API endpoint requires paginated extraction

Medium

Email sequences not exportable via API

Medium

Foundation plan disables key sales features

Pair-specific challenges

  • openCRX has no public REST API with documented rate limits

    openCRX exposes data through JMX and internal application-layer APIs but does not publish a public REST API. Every export therefore requires either direct read-only database access (coordinated with the customer's DBA) or application-layer export scripting scoped to the customer's specific openCRX version and segment configuration. We include the database access coordination as part of the scoping runbook. Any API-based migration attempt that relies on REST endpoints will fail; teams must accept that the export phase is bespoke to their deployment before migration can proceed.

  • Contract hierarchy collapses to single Deal in Nutshell

    openCRX models Quotes, Sales Orders, and Invoices as separate contract subclasses with independent lifecycle stages. Nutshell has a single Deal object with a flat pipeline and no standard Quote, Sales Order, or Invoice object. We collapse all three contract types into Nutshell Deals with structured metadata fields preserving the original contract type and line items. This means that openCRX's quote-to-order-to-invoice transformation workflow has no direct Nutshell equivalent; the customer must rebuild this business logic manually or adopt a separate quoting or accounting tool post-migration.

  • WebDAV attachment exports fail on Windows export clients

    openCRX groupware uses WebDAV for document storage, and Microsoft's WebDAV client implementation on Windows is known to cause connection failures and silent file access errors. During migration, if attachments are stored via WebDAV, we run the export on a Linux or macOS client or use a compatible third-party WebDAV client (such as BitKinex). We verify attachment accessibility during the scoping phase and flag any inaccessible attachment sets in the handoff document with recommended retrieval steps.

  • openCRX multi-segment deployments require per-segment record splitting

    openCRX uses segments as independent organisational units, each with its own account space, workflows, and configurations. If the source openCRX instance uses multiple segments, we need to split records by segment and reassign them in Nutshell's flat organisational model. Segment-scoped workflow definitions and alert topics are not portable; we document each segment's workflow definitions separately for the customer to rebuild in Nutshell. This significantly increases scoping time and can push migrations into the longer timeline band.

Migration approach

Six steps for a successful openCRX to Nutshell data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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

Context on both ends of the pair

openCRX logo

openCRX

Source

Strengths

  • Zero licensing cost with full source code, UML models, and Javadoc published under a BSD licence.
  • Enterprise-grade data model covering the full sales cycle from Lead through Invoice with full position-level detail.
  • Built on standard J2EE 6 Web Profile and Apache TomEE, running on any OS with Java VM support.
  • Multi-currency, multi-language, and multi-entity capabilities designed for global enterprise deployments.
  • Role-based security with system-wide audit trail meets requirements for regulated industry deployments.

Weaknesses

  • Self-hosting responsibility means no vendor-managed uptime, backups, or security patching.
  • No official commercial support; production issues require community resources or internal Java expertise.
  • Steeper operational burden compared to SaaS CRMs, requiring dedicated server administration.
  • Scarce pre-built third-party integrations; most connectors require custom development.
Nutshell logo

Nutshell

Destination

Strengths

  • Simple, intuitive interface with minimal learning curve for sales teams new to CRM
  • Per-seat pricing is transparent and predictable, with annual billing reducing monthly cost
  • Full data export tool available for all account data including backups
  • Open JSON-RPC API allows programmatic access to all core objects
  • Native multichannel engagement (email, SMS, WhatsApp) without third-party add-ons for communication

Weaknesses

  • Reporting and analytics are considered weak, requiring manual Excel exports for detailed analysis
  • No bulk API endpoint—migration requires paginated API reads that must be rate-limited carefully
  • JSON-RPC API is less common than REST, requiring custom integration code compared to standard REST CRMs
  • Add-on costs (Forms, Nutshell IQ, Email Marketing) are per-company charges that stack on top of per-seat pricing
  • Feature restrictions on entry-level plans mean teams often need mid-tier to get basic automation

Complexity grading

How hard is this migration?

Standard CRM migration. 1 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across openCRX and Nutshell.

  • Object compatibility

    B

    1 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    openCRX: Not publicly documented.

  • Data volume sensitivity

    B

    openCRX doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your openCRX to Nutshell migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about openCRX to Nutshell data migrations

Answers to the questions buyers ask most during openCRX to Nutshell migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your openCRX to Nutshell migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations land between three and five weeks for accounts under 10,000 Contacts and 2,000 Deals with a single openCRX segment and no complex custom fields. Migrations with multiple openCRX segments, large engagement histories, extensive DataBinding PropertySet custom fields, or complex contract hierarchy distributions (high volumes of Quotes, Sales Orders, and Invoices) move to six to ten weeks because of per-segment record splitting, the custom field provisioning scope, and the attachment extraction work. The openCRX export coordination step is included in the scoping timeline and does not extend it as a separate phase.

Adjacent paths

Related migrations to explore

Ready when you are

Move from openCRX.
Land in Nutshell, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day