CRM migration

Migrate from erxes to Nutshell

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

erxes logo

erxes

Source

Nutshell

Destination

Nutshell logo

Compatibility

78%

7 of 9

objects map 1:1 between erxes and Nutshell.

Complexity

BStandard

Timeline

2-3 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from erxes to Nutshell is a structural migration from a self-hosted, plugin-based experience operating system to a managed SaaS CRM built for SMB sales teams. erxes organizes data around Contacts, Companies, Deals in Pipelines, and Tasks with a GraphQL API that requires programmatic pagination for bulk export, since no native bulk export UI exists in the Community edition. Nutshell uses a straightforward People, Companies, and Deals model with a REST API, Import2 wizard, and custom fields available on People, Companies, and Leads. We handle the schema translation between erxes plugin modules and Nutshell's standard CRM objects, resolve owner mappings by email match, and validate erxes custom field values against Nutshell's type enforcement before import. Automation workflows, plugin-specific configurations, and Channel credentials do not migrate; we deliver a written inventory of these for the customer's admin to rebuild in Nutshell or document as non-recoverable.

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

erxes logo

erxes

What's pushing teams away

  • Steep learning curve for non-technical teams who expect a point-and-click CRM without touching code or GraphQL
  • Limited enterprise-grade documentation and support outside the paid Enterprise tier leaves self-hosted teams troubleshooting alone
  • Plugin ecosystem lacks the third-party integrations available on established platforms, requiring custom development for niche tools
  • Mobile app has stability issues according to App Store reviews, with login failures reported by multiple users
  • Performance and stability can degrade with large datasets when running on underpowered self-hosted infrastructure

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

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

erxes

Contact

maps to

Nutshell

Person

1:1
Fully supported

erxes Contacts map directly to Nutshell People. The primary fields (name, email, phone) translate to standard Nutshell Person fields. We extract custom field values from erxes and validate each against the target field type in Nutshell before insert; any value that violates Nutshell's type enforcement (for example, a text string in a date-typed field) is flagged and either remapped to a text custom field or logged for manual resolution. Owner assignment migrates by email match against Nutshell Users.

erxes

Company

maps to

Nutshell

Company

1:1
Fully supported

erxes Company records map 1:1 to Nutshell Company records. The companyId reference in erxes Links field preserves the association to the related Person. We map industry, size, and website fields to their Nutshell equivalents and transfer custom field values with the same type-validation logic applied to Person records.

erxes

Deal

maps to

Nutshell

Deal

1:1
Fully supported

erxes Deals map to Nutshell Deals with stage, amount, and responsible user preserved. The key translation is erxes pipeline stage to Nutshell pipeline stage; we confirm the target Nutshell pipeline has matching stage values configured before migration, or we flag a stage-mapping gap that requires Nutshell admin configuration before the Deal import phase begins.

erxes

Pipeline

maps to

Nutshell

Pipeline

lossy
Fully supported

Each erxes Pipeline maps to a Nutshell Pipeline with stage translation. We verify that the destination Nutshell account has pipelines configured with the corresponding stage names and probabilities. If erxes uses multiple pipelines to segment business lines, we create parallel Nutshell pipelines and map Deal records accordingly. Stage IDs are translated to destination stage identifiers during import.

erxes

Task

maps to

Nutshell

Task

1:1
Fully supported

erxes Tasks migrate to Nutshell Tasks with title, description, due date, status, and assigned user preserved. User assignment resolves via email match to the Nutshell User table. Tasks organized into Teams and Cycles in erxes are logged as custom field notes or activity flags since Nutshell does not use a Cycles model; the customer chooses how to represent team-scoping during scoping.

erxes

User

maps to

Nutshell

User

1:1
Fully supported

erxes Users (team members with roles) map to Nutshell Users by email address. Role and permission configurations do not transfer because Nutshell's permission model differs structurally; we extract role names as notes and flag the Nutshell admin to reassign permissions manually post-migration.

erxes

Custom Field Schema

maps to

Nutshell

Custom Field

lossy
Fully supported

erxes custom fields on Contacts, Companies, Deals, and Tasks require pre-creation in Nutshell before data import. We extract the field names, types, and options from erxes and create equivalent Nutshell custom fields via the Nutshell custom fields API. Type mapping: erxes text and number fields map to Nutshell text fields; erxes dropdown fields map to Nutshell dropdown with the same option list; erxes date fields map to Nutshell date fields. Any erxes field with no type definition (schema-less ingest) defaults to Nutshell text to avoid import rejection.

erxes

Conversation

maps to

Nutshell

Activity (Note or Task)

1:1
Fully supported

erxes multi-channel Conversations (email, SMS, chat, WhatsApp) do not have a direct Nutshell equivalent because Nutshell uses Gmail and Outlook integration rather than a native inbox. We migrate conversation metadata and the most recent message body as a Note attached to the related Person or Company record. Older message threads are logged in a reconciliation document for the customer's admin to review. Message threading order depends on server-side timestamps in erxes; we preserve createdAt values in the Note body for reference.

erxes

Channel Credentials

maps to

Nutshell

Not applicable

1:1
Fully supported

erxes Channel configurations (email accounts, SMS credentials, chat API keys, WhatsApp Business API credentials) do not migrate. These represent external service credentials that would require re-authentication regardless of migration path. We flag each active Channel in the source erxes instance and list the reconfiguration steps (which credentials to update, which API keys to regenerate) so the customer's admin can restore connectivity in Nutshell's communication settings post-migration.

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.

erxes logo

erxes gotchas

High

No native bulk export in Community edition

Medium

Plugin activation state affects data visibility

Medium

Custom fields have no type enforcement during import

Low

Conversation message ordering depends on server timestamps

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

  • No native bulk export in erxes requires GraphQL pagination

    erxes does not ship a bulk export UI or API endpoint in its open-source edition. All data must be extracted via individual paginated GraphQL queries against the erxes API. We handle this by extracting record lists with cursor-based pagination and chunking large datasets into batches of 500-1000 records to avoid query timeouts. Datasets exceeding 100,000 records require multiple extraction runs with careful rate-limit management. This extraction overhead adds time to the migration timeline that platforms with native CSV exports do not incur.

  • erxes custom fields lack type enforcement on ingest

    erxes custom fields are schema-less during import, meaning any value can be written to any custom field regardless of the field type defined in the UI. A date field can receive a text string without rejection. Nutshell enforces field types strictly, so we must validate every erxes custom field value against the declared field type before inserting into Nutshell. Values that fail type validation are remapped to text fields or logged for manual correction. This validation pass adds processing time proportional to the number of custom field records in the migration scope.

  • Plugin activation state affects erxes data visibility

    erxes modules (Sales, Marketing, Operations) must be activated in the plugin configuration for their data objects to be accessible via the API. If a customer deactivated a plugin before migration begins, related Deals, Tasks, or Conversations become inaccessible even if records exist in the database. We confirm all relevant plugins are active during the pre-migration audit phase and document any deactivated plugin that may have orphaned records.

  • No Lead object in erxes requires Contact-level-only migration

    erxes does not have a separate Lead object; unqualified prospects live as Contacts with a status field. Nutshell distinguishes between Leads (unqualified) and People (qualified contacts). We migrate all erxes Contacts as Nutshell People and flag any Contact with an unqualified status for the customer's admin to review for Lead conversion in Nutshell post-migration.

Migration approach

Six steps for a successful erxes to Nutshell data migration

  1. Pre-migration audit and plugin verification

    We audit the source erxes instance to confirm all relevant plugins (Sales, Marketing, Operations) are active and accessible via the GraphQL API. We extract record counts across Contacts, Companies, Deals, Tasks, and Conversations, and identify the custom field schema for each object. We verify the destination Nutshell account has pipelines and stages configured to receive the erxes data, and confirm the import user has permissions to write to People, Companies, Deals, and Tasks.

  2. GraphQL extraction with pagination

    We extract data from erxes via paginated GraphQL queries, running one query per object type (Contacts, Companies, Deals, Tasks, Conversations) with cursor-based pagination. Large datasets (over 10,000 records per object) are chunked into batches to avoid query timeouts. We capture the original createdAt and updatedAt timestamps for each record to preserve ordering and audit trail. Custom field values are extracted as key-value pairs and validated against declared field types.

  3. Schema design and custom field creation in Nutshell

    We create equivalent Nutshell custom fields for every erxes custom field before data import begins. This includes text, long text, currency, date, and dropdown field types with matching option lists where applicable. Any erxes field with no type definition is created as a Nutshell text field. We configure Nutshell pipelines to match erxes pipeline stage names and probabilities, creating new pipelines if the destination lacks the required stage definitions.

  4. Owner reconciliation

    We extract every distinct owner (assigned user) from erxes Contacts, Companies, Deals, and Tasks and match by email address against the Nutshell User table. Any erxes owner without a matching Nutshell User goes to a reconciliation queue for the customer's admin to provision before record import. Migration cannot proceed past this step because User assignment is required on standard Nutshell record inserts.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Companies first (standalone records with no dependencies), then People (with resolved owner and company links), then Deals (with resolved owner and stage mapping), then Tasks (with resolved owner), then Custom Field values (appended to each record). Each phase emits a row-count reconciliation report before the next phase begins. Conversation metadata migrates as Notes attached to the related Person or Company.

  6. Cutover, validation, and automation handoff

    We freeze erxes writes during cutover, run a final delta migration of records modified during the migration window, then enable Nutshell as the system of record. We deliver a written inventory of erxes Automation Workflows and Channel configurations for the customer's admin to rebuild in Nutshell or document as non-recoverable. We support a three-day hypercare window to resolve any immediate reconciliation issues. We do not rebuild erxes automations as Nutshell workflow rules inside the migration scope; that is a separate engagement.

Platform deep dives

Context on both ends of the pair

erxes logo

erxes

Source

Strengths

  • True open-source with MIT license gives full code access and modification rights without vendor lock-in
  • Self-hosting option on DigitalOcean, AWS, or on-premise infrastructure provides complete data residency control
  • All-in-one platform consolidating marketing, sales, operations, and customer service modules
  • Plugin-based architecture allows activating only needed functionality without paying for unused features
  • Free Community edition offers generous feature set comparable to paid SaaS CRM tiers

Weaknesses

  • Steep technical learning curve requiring GraphQL knowledge and React familiarity for deep customization
  • Limited third-party integration marketplace compared to established CRM platforms
  • Documentation gaps make self-service troubleshooting difficult outside of paid support tiers
  • Mobile application stability issues reported in user reviews with authentication failures
  • Performance can degrade with large data volumes on underpowered self-hosted deployments
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. 2 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 erxes and Nutshell.

  • Object compatibility

    B

    2 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

    erxes: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

Walk through your erxes 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 two and three weeks for accounts under 10,000 Contacts and 2,000 Deals with straightforward custom field schemas. Migrations with large custom field configurations, multiple pipelines, large task histories (over 50,000 records), or datasets exceeding 50,000 total records move to four to six weeks because of GraphQL pagination time, field-type validation overhead, and pipeline-stage reconciliation. The absence of a native bulk export in erxes means extraction time scales linearly with record count, unlike platforms with CSV export tools.

Adjacent paths

Related migrations to explore

Ready when you are

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