CRM migration

Migrate from OpenCRM to Nutshell

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

OpenCRM logo

OpenCRM

Source

Nutshell

Destination

Nutshell logo

Compatibility

75%

6 of 8

objects map 1:1 between OpenCRM and Nutshell.

Complexity

CModerate

Timeline

2-3 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

OpenCRM and Nutshell occupy a similar mid-market sweet spot for small-to-midsize sales teams, but the two platforms differ materially in their data architecture and export constraints. OpenCRM stores relationships through foreign-key linking between Contacts and Companies and requires a specific import ordering sequence; Nutshell enforces its own field types and restricts API access to its Enterprise tier. We resolve the Contact-to-Company lookup by exporting Companies first, staging Contacts with their parent reference, then loading Deals last. We flag any orphaned records before committing the import and deliver a written stage-mapping table for your admin to confirm before the Deal pipeline lands in the correct Nutshell pipeline stage. Workflows, automations, and sequences do not migrate as code; we provide an inventory for your team to rebuild in Nutshell's automation layer post-migration.

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

OpenCRM logo

OpenCRM

What's pushing teams away

  • User interface looks and feels dated compared to modern CRM tools, with clunky navigation, hard-to-find menus, and a visual design that frustrates teams accustomed to contemporary UX.
  • Bugs and performance issues reported by some users including software freezing and unexpected behavior, particularly under heavy use or with large datasets.
  • Limited public API documentation and no developer community presence, making custom integrations and programmatic data access harder to implement without vendor involvement.
  • Smaller market share and review volume compared to major CRM platforms, meaning fewer community resources, third-party integrations, and migration guides are available online.

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 OpenCRM objects map to Nutshell

Each row shows how a OpenCRM 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.

OpenCRM

Company

maps to

Nutshell

Account

1:1
Fully supported

OpenCRM Company records map directly to Nutshell Account. We export Companies from OpenCRM via the UI-based CSV export first, since Contacts reference Company as a parent entity. The OpenCRM record ID is retained as an external reference column for deduplication during import. Account Name, Website, Industry, Phone, and Address fields map 1:1; any custom fields on Companies are created as matching Nutshell custom fields before import.

OpenCRM

Contact

maps to

Nutshell

Person

1:1
Fully supported

OpenCRM Contact records map to Nutshell People (the Nutshell term for individual contact records). We stage Contacts after Companies and resolve the parent Account reference by matching the OpenCRM Company name or external ID to the Nutshell Account created in the prior phase. Name, Email, Phone, Title, and Address fields map directly; custom Contact fields are created in Nutshell and mapped field-by-field during staging. We flag any Contact without a valid parent Company for customer review before the import commits.

OpenCRM

Deal

maps to

Nutshell

Account (Deal field)

1:1
Fully supported

OpenCRM Deals map to Nutshell Deals, which are attached to Accounts rather than to People. We resolve the parent Account by matching the OpenCRM Deal's linked Company name or external ID. Deal name, value, expected close date, and owner assignment migrate directly. The pipeline stage name requires a customer-confirmed mapping table because OpenCRM stage names are tenant-defined and rarely align 1:1 with Nutshell's stage values.

OpenCRM

Pipeline Stages

maps to

Nutshell

Pipeline Stages

lossy
Mapping required

OpenCRM allows full customisation of pipeline stage names per workflow, making direct stage mapping necessary. We produce a stage-mapping table during scoping, present it to the customer for confirmation, and apply the mapping during the Deal import. Without this step, Deals land in the wrong pipeline stage and the customer's forecast visibility is distorted post-migration.

OpenCRM

Activities (Calls, Meetings, Tasks)

maps to

Nutshell

Activities

1:1
Fully supported

Activity records (calls, meetings, tasks) from OpenCRM migrate to Nutshell as Activity records on the relevant Account or Person. Date and time formats are normalised to UTC before import. Owner names are matched to Nutshell users by email address. We note that Nutshell does not support searching by custom fields via API (Stack Overflow, 2015), so any custom activity metadata should be stored in standard Nutshell fields or as a custom field at migration time rather than relied upon for post-migration deduplication.

OpenCRM

Notes

maps to

Nutshell

Notes

1:1
Mapping required

Notes attached to OpenCRM Contacts, Companies, or Deals migrate to Nutshell as Notes linked to the equivalent Person, Account, or Deal record. We resolve parent linkage by matching the OpenCRM record's external ID or name to the Nutshell destination record. We run a post-import audit to verify note-parent linkage and flag any notes where the parent record was not found.

OpenCRM

Custom Fields

maps to

Nutshell

Custom Fields

lossy
Mapping required

OpenCRM custom fields on Contacts, Companies, and Deals require discovery per-tenant during scoping. We create matching Nutshell custom fields (Text, Long Text, Currency, Date, or other types as appropriate) before any data import begins. Nutshell supports custom fields for People, Companies, and Leads. Field names and data types are mapped individually; no automated type conversion is applied without customer review.

OpenCRM

Owner

maps to

Nutshell

User

1:1
Fully supported

OpenCRM Owner records are matched to Nutshell Users by email address. Owners without a matching Nutshell user are held in a reconciliation queue; the customer's admin provisions the missing users before record import resumes. Owner assignment on Deals and Contacts resolves to the matched Nutshell User ID during import.

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.

OpenCRM logo

OpenCRM gotchas

High

Bulk import without CRM ID or ExternalID creates duplicate records

Medium

Import ordering dependency: Companies before Contacts

Medium

No documented public REST API for programmatic export

Low

Pipeline stage names are tenant-defined and require manual mapping

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

  • Nutshell REST API requires Enterprise tier at $79/user/month

    Nutshell locks its REST API behind the Enterprise plan, with no add-on or workaround for lower tiers. Teams planning to use the API for post-migration automation, integrations, or ongoing sync will face a significant per-seat cost increase. We confirm the customer's intended Nutshell tier before migration design begins and flag any API-dependent use cases that are incompatible with Foundation, Growth, or Pro tiers. If API access is required but Enterprise pricing is not viable, we plan the migration around Nutshell's CSV import workflow with no API dependency.

  • No bulk REST export from OpenCRM; CSV extraction is the only documented path

    OpenCRM does not publish a public bulk REST or GraphQL endpoint for automated data extraction. The UI-based CSV export is the only documented method for obtaining a full-column export of Contacts, Companies, and Deals. We work around this by selecting all columns in the OpenCRM list view export, staging the resulting CSV files, parsing and normalising field names and date formats, then transforming to the Nutshell import format. This approach is reliable for records up to approximately 50,000 rows but requires manual column selection in the OpenCRM UI for each object type before export.

  • Custom field search not supported in Nutshell API

    Nutshell's API does not support searching records by custom field values (confirmed via Nutshell support and Stack Overflow, 2015). This matters during migration because we cannot use a custom field as a matching key for upsert operations via API. If the customer's OpenCRM instance uses custom fields as the primary deduplication or matching mechanism, we must fall back to standard field matching (email for People, name for Accounts) and flag any remaining duplicates for manual resolution post-import.

  • Import ordering: Companies before Contacts before Deals

    OpenCRM enforces a foreign-key relationship between Contacts and Companies. Contacts imported before their parent Company are linked to an unresolvable or incorrect parent, breaking group-level visibility and reporting. We sequence the migration as Companies first, then Contacts (with parent Account resolved), then Deals. Any Contact records where the parent Company does not exist in the destination are flagged in a pre-commit reconciliation report and held from import until the customer confirms the correct parent or elects to create a placeholder Account.

  • OpenCRM ExternalID upsert constraint

    OpenCRM's import mechanism requires either the native OpenCRM record ID or a pre-mapped ExternalID to perform update operations on existing records. Running an update import without one of these identifiers creates new orphaned records rather than updating existing ones. We export the OpenCRM record ID column alongside data during the scoping phase and use it as the matching key for any subsequent update imports, preventing duplicate record creation during delta or corrective migration passes.

Migration approach

Six steps for a successful OpenCRM to Nutshell data migration

  1. Scoping and data audit

    We audit the OpenCRM tenant for record counts across Contacts, Companies, Deals, Activities, Notes, and custom fields. We confirm the customer's target Nutshell tier and flag whether Enterprise-level API access is required for post-migration workflows. We identify the set of OpenCRM columns to include in the CSV export for each object and document the stage-name set for the Deal pipeline. The scoping output is a written migration scope, a stage-mapping table for customer confirmation, and a custom-field discovery list for Nutshell field creation.

  2. CSV export and data staging

    We guide the customer through the OpenCRM UI CSV export process for each object type, selecting all relevant columns including the OpenCRM record ID. We stage the exported CSV files in a secure staging environment, parse and normalise field names, convert date formats to UTC, and deduplicate based on the OpenCRM record ID. Any data quality issues — missing required fields, malformed emails, orphaned records — are flagged in a pre-import audit report for the customer to address or acknowledge before transformation begins.

  3. Nutshell field and pipeline preparation

    We create all required Nutshell custom fields (matching the OpenCRM custom field names and types identified during scoping), configure the Deal pipeline with the customer-confirmed stage names, and set up any required Nutshell users to match OpenCRM owners. If the customer is on a non-Enterprise Nutshell tier, we design the migration to use CSV import only, with no API dependency. This step is completed in the customer's live Nutshell environment before any data is loaded.

  4. Companies import with reconciliation

    We import OpenCRM Companies into Nutshell as Accounts using the resolved external ID as the matching key. We run a row-count reconciliation and spot-check 20-30 records against the source. Accounts without a valid name or with duplicate entries are flagged for the customer's admin to resolve before the Contact import begins. This phase must complete before Contacts are loaded because Account records are the parent reference for Contact linkage.

  5. Contacts import with parent resolution

    We import OpenCRM Contacts into Nutshell as People, resolving each Contact's parent Company to the corresponding Nutshell Account using the OpenCRM Company name or external ID. Contacts without a matching Account are held in a reconciliation queue; the customer confirms whether to create a placeholder Account, merge into an existing Account, or exclude the record. Once the queue is resolved, we commit the Contact import and run a second reconciliation pass to verify the Account-Person linkage.

  6. Deals, activities, and notes import

    We import OpenCRM Deals into Nutshell using the stage-mapping table confirmed in step one. Owner assignment resolves by email matching to the Nutshell User table. Activities (calls, meetings, tasks) and Notes are imported after Deals, linked to their parent Account or Person record via the resolved ID. Each phase emits a row-count report; any phase where reconciliation falls below 95 percent is held for review before the next phase begins.

  7. Cutover, validation, and automation inventory handoff

    We freeze OpenCRM writes at cutover, run a final delta migration of any records modified during the migration window, then mark Nutshell as the system of record. We deliver a written inventory of OpenCRM workflows, automations, and any active sequences for the customer's admin to rebuild in Nutshell's automation layer. We do not rebuild automations or workflows as part of the standard migration scope. A post-import validation report is delivered covering record counts, linkage verification, and any known gaps in the migration output.

Platform deep dives

Context on both ends of the pair

OpenCRM logo

OpenCRM

Source

Strengths

  • All features available at every subscription tier with no feature paywalls or upgrade gates.
  • Per-user flat-rate pricing independent of contact database size.
  • Bundled consultancy, training, and support services included as standard.
  • Built on the proven VtigerCRM open-source codebase with over 5 million downloads since 2004.
  • Web-based deployment with automatic updates and no self-hosting complexity.

Weaknesses

  • Dated user interface and navigation UX compared to modern CRM competitors.
  • Limited public API documentation and developer ecosystem.
  • Small market share with fewer third-party integrations than major platforms.
  • Reported bugs and performance issues under heavy or complex usage.
  • Sparse community resources and migration guides available online.
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?

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

C

Overall complexity

Moderate migration

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

  • Object compatibility

    C

    4 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

    OpenCRM: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

Estimate your OpenCRM 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 OpenCRM to Nutshell data migrations

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

Can't find your answer?

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

Book a free 30 minute consultation

Most migrations complete in two to three weeks for accounts under 10,000 Contacts and 2,000 Deals with no custom objects or complex stage structures. Migrations exceeding 25,000 total records, including custom fields requiring per-field mapping, or with large orphaned-record queues requiring manual resolution move to three to five weeks. The Nutshell Import2 connector can accelerate the sample migration phase, but the full migration timeline is driven by the data audit, CSV export, and reconciliation work in OpenCRM.

Adjacent paths

Related migrations to explore

Ready when you are

Move from OpenCRM.
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