CRM migration

Migrate from Opera 3 to Nutshell

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

Opera 3 logo

Opera 3

Source

Nutshell

Destination

Nutshell logo

Compatibility

80%

8 of 10

objects map 1:1 between Opera 3 and Nutshell.

Complexity

BStandard

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Migrating from Pegasus Opera 3 to Nutshell is an ERP-to-CRM scope reduction. Opera 3 is a UK mid-market ERP that bundles accounting, payroll, stock, and a basic CRM module; Nutshell is a focused sales CRM with no accounting or payroll module. We migrate the CRM layer (Contacts, Companies, Deals, and activity notes) from Opera 3's Sales Ledger CSV exports and built-in CRM module, but accounting ledgers, payroll records, stock items, and fixed assets do not have a destination in Nutshell and are flagged as out-of-scope. Opera 3 has no public API, so extraction relies on CSV exports and RTI XML files where payroll data is involved. Multi-company structures in Opera 3 require manual reassignment in Nutshell because Nutshell uses a single-account model per subscription. Workflows, automations, and custom fields in Opera 3 are scoped as write-only inventory for the customer's admin to rebuild 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

Opera 3 logo

Opera 3

What's pushing teams away

  • Customer service ratings are consistently below competitors (3.8/10 on Capterra), with users reporting slow response times and difficulty reaching knowledgeable support staff.
  • Steep learning curve for non-accountants, particularly around multi-company setups, inter-company transactions, and the report generator's customisation layer.
  • Frequent product updates and version migrations cause friction, especially for customers on the Visual FoxPro edition who face a mandatory upgrade path to SQL SE.
  • Limited ecosystem compared to global platforms — fewer third-party integrations, no marketplace, and bespoke API work required for modern data pipelines.
  • Modern SaaS alternatives like Xero and QuickBooks offer faster onboarding, automatic updates, and lower upfront cost, prompting smaller customers to migrate.

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

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

Opera 3

Sales Ledger Contact (Customer)

maps to

Nutshell

People (Contact)

1:1
Fully supported

Opera 3 Sales Ledger contacts export via CSV with full name, address, payment terms, credit limits, and multi-currency flags. We map AccountName to People.name, email addresses to People.email, postal address fields to People.address fields, and payment terms to a custom People field. Multi-currency contacts are noted for the customer to configure currency settings in Nutshell post-migration because Nutshell's per-contact currency is a paid Advanced plan feature.

Opera 3

Sales Ledger Contact (Supplier)

maps to

Nutshell

People (Contact)

1:1
Fully supported

Opera 3 Purchase Ledger supplier contacts export via CSV in the same format as Sales Ledger contacts. We map these to Nutshell People with a supplier_flag__c custom field to distinguish them from customer contacts. Suppliers with no sales-facing email are imported with email blank, which Nutshell permits for contacts without email activity tracking.

Opera 3

CRM Company record

maps to

Nutshell

Company

1:1
Fully supported

Opera 3's built-in CRM module stores Companies as separate records from Sales Ledger contacts. We map CRM Company name to Nutshell Company.name, CRM address fields to Company.address fields, and CRM industry or type data to a custom Company field. Where a CRM Company record and a Sales Ledger contact share the same name, we link them via Nutshell's People-Company relationship during import.

Opera 3

CRM Contact record

maps to

Nutshell

People (Contact)

1:1
Fully supported

Opera 3 CRM Contacts export from the built-in CRM module, which is separate from the Sales Ledger contact file. We use email address as the dedupe key and match CRM Contacts to existing People records (from the Sales Ledger import) by email. Orphaned CRM Contacts without a matching Sales Ledger record are imported as standalone People. Mobile and direct phone fields map to People.phone and People.phone_extension where present.

Opera 3

CRM Activity (text notes)

maps to

Nutshell

People Activity (Call, Email, Meeting, Note)

1:many
Fully supported

Opera 3 CRM Activities are stored as free-text notes with a timestamp and activity type code rather than structured event records. We parse the activity type code to assign each note to a Nutshell Activity type: task-like entries become Note, entries with a meeting duration or location become Meeting, entries with a phone number become Call, and entries with an email subject line become Email. Entries with no type code become Note. Original timestamps are preserved in Nutshell's ActivityDate field.

Opera 3

Sales Order header

maps to

Nutshell

Deal

1:1
Fully supported

Opera 3 Sales Order headers export via CSV with order number, customer reference, order date, and order total. We map these to Nutshell Deals with the order number in Deal.name, the customer as a linked Company, and the order total as the Deal.value. Order status flags (open, closed, invoiced) map to Nutshell Deal status values. Note that Nutshell Deals do not have a native line-item sub-object, so order line items are stored as Deal notes or as a linked custom object depending on scoping.

Opera 3

Sales Invoice header

maps to

Nutshell

Deal (closed)

1:1
Fully supported

Opera 3 Sales Invoice records export via CSV with invoice number, customer, invoice date, and total. We map invoiced orders to Nutshell Deals with status set to Won and the invoice total as the Deal value. The original invoice number is preserved in a deal.invoice_number__c custom field. Invoices that have been fully paid map to a separate Deal status if Nutshell supports a paid/won state, or are noted for the customer to mark manually post-migration.

Opera 3

Multi-company structure

maps to

Nutshell

Multiple Nutshell accounts or Companies

lossy
Fully supported

Opera 3 supports multiple company codes within a single installation with inter-company transactions stored as normal invoices with a counterparty code. Nutshell uses a single-company account model. For multi-company Opera 3 customers, we recommend either separate Nutshell subscriptions per legal entity or a single Nutshell account with Companies representing each Opera 3 entity. Inter-company debtor/creditor balances are exported as reconciliation notes for the customer's finance team to resolve in their accounting tool post-migration.

Opera 3

Nominal Ledger (Chart of Accounts)

maps to

Nutshell

Not migrated (accounting out of scope)

1:1
Fully supported

Opera 3 Nominal Ledger accounts and financial transactions are accounting records that have no destination in Nutshell, which is a CRM without an accounting module. We export the Chart of Accounts as a CSV file delivered alongside the migration for the customer's finance team to use if they select a separate accounting tool (Xero, QuickBooks, or Sage) as the post-migration finance system. The CSV is not loaded into Nutshell.

Opera 3

Employee records and RTI payroll

maps to

Nutshell

Not migrated (payroll out of scope)

1:1
Fully supported

Opera 3 Employee records export via CSV with bank details, start/end dates, P45 data, and RTI FPS/EPS XML files for payroll submissions. Nutshell has no payroll module, and employee records are not CRM contacts by default. We export employee data as a CSV for the customer's HR or finance team to manage in a dedicated payroll system. RTI XML files are handed off as-is for re-filing if 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.

Opera 3 logo

Opera 3 gotchas

High

Visual FoxPro to SQL SE migration is mandatory and non-reversible

Medium

RTI FPS/EPS payroll files use cryptic renamed filenames after HMRC submission

Medium

Customer Products add-on stores customer-specific stock variants outside the main item schema

High

No public API — data export relies on CSV, XML RTI files, or bespoke WCF

Low

Multi-company inter-company balances require cross-reference 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

  • Opera 3 CRM activities are text notes, not structured events

    Opera 3's built-in CRM module stores activities as free-text notes with a timestamp rather than typed Call, Email, Meeting, or Task records. When migrating to Nutshell, we parse the activity type code embedded in the note and assign each to a Nutshell Activity type, but the original note body is preserved verbatim and the type assignment is an approximation. If Opera 3 has been used primarily as a note repository without consistent activity-type codes, activity history in Nutshell will arrive as Notes rather than a full timeline with typed entries. We flag the type-coverage percentage during scoping so the customer knows what to expect in the activity timeline.

  • No public API means CSV-only extraction from Opera 3

    Opera 3 does not expose a documented REST or GraphQL API. All data extraction relies on built-in CSV exports from the Sales Ledger, Purchase Ledger, Nominal Ledger, and CRM module, plus RTI XML files for payroll. CSV exports have field-length limits that may truncate long address fields or product descriptions. We validate field lengths during the extraction phase and surface truncation risks to the customer before loading. Where Opera 3 SQL SE is in use, we read directly from SQL Server to bypass CSV field-length constraints.

  • Multi-company structures require manual reassignment in Nutshell

    Opera 3's multi-company support stores inter-company transactions as normal invoices with a counterparty company code, with each company code representing a separate legal entity. Nutshell's account model supports one company per subscription. Multi-company Opera 3 customers must either purchase separate Nutshell subscriptions per legal entity or consolidate under a single Nutshell account with Opera 3 companies represented as Nutshell Companies. We do not automatically create multiple Nutshell accounts; we deliver a per-company CSV split and a written recommendation for the account structure.

  • Custom OPUS add-on fields do not migrate automatically

    Custom fields added via the OPUS add-on or bespoke Visual FoxPro schema modifications to Opera 3 are not standardised and lack a consistent export path. We review the bespoke schema during discovery and attempt to include custom fields in the CSV export where the Visual FoxPro or SQL SE structure exposes them. Fields that exist only in the bespoke layer and are not reachable via standard CSV export are flagged as manual-review items and included in the migration handoff document for the customer's admin to rebuild as Nutshell custom fields post-migration.

Migration approach

Six steps for a successful Opera 3 to Nutshell data migration

  1. Discovery and export scoping

    We audit the Opera 3 installation to identify which modules are in scope for CRM migration: Sales Ledger contacts, Purchase Ledger contacts, CRM module Companies and Contacts, CRM Activities, Sales Orders, and Sales Invoices. We confirm the Opera 3 edition (Visual FoxPro or SQL SE) to determine the extraction method and field-length constraints. We also identify multi-company structures, bespoke OPUS add-on fields, and any custom Visual FoxPro modifications that may affect export completeness. The discovery output is a written export plan listing every CSV file, its expected row count, and any field-level issues to resolve before extraction.

  2. CSV extraction and health validation

    For each module in scope, we run the built-in Opera 3 CSV export or read directly from SQL SE. We validate record counts against the Opera 3 on-screen totals and flag any export failures. For CRM Activities, we extract the full text-note history with timestamps and type codes. For multi-company structures, we split the export by company code so each legal entity maps to a separate Nutshell account or Company record. We deliver the raw CSV files with a field-level data dictionary mapping each Opera 3 column to its Nutshell equivalent.

  3. Activity type parsing and transformation

    We process the Opera 3 CRM Activity CSV by parsing the activity type code embedded in each record and assigning it to a Nutshell Activity type: Call, Email, Meeting, or Note. Records with no type code default to Note. The original free-text body is preserved as the Nutshell Activity content. We generate a type-coverage report showing what percentage of activities receive a typed assignment versus defaulting to Note, so the customer understands the resulting Nutshell activity timeline before cutover.

  4. Sandbox migration and reconciliation

    We run a trial migration into a Nutshell sandbox or a fresh Nutshell trial account using the extracted CSV files. The customer reconciles record counts across all object types, spot-checks 25-50 records against the Opera 3 source data (matching by name, email, and phone where available), and validates the activity timeline for a sample of contacts. Any mapping corrections, dedupe merges, or multi-company assignment changes are documented and applied to the production migration plan. This step cannot be skipped because CSV-based extraction does not support real-time validation during load.

  5. Production migration in dependency order

    We run the production migration in object dependency order: Companies first (to receive People-Company lookups), then People (Contacts and Suppliers with company assignments resolved), then CRM Activities linked to the correct People records by email or name match, then Deals (from Sales Orders and closed invoices), then any final activity delta. Each phase emits a row-count reconciliation report. Nutshell's REST API is used for the production load; we handle rate-limit responses with exponential backoff and chunking for large datasets.

  6. Cutover, handoff inventory, and post-migration review

    We freeze Opera 3 CRM writes during the cutover window, run a final delta migration of any records modified during migration, then enable Nutshell as the active CRM. We deliver a written inventory of Opera 3 CRM workflows, automation rules, and any OPUS add-on custom fields that require rebuild in Nutshell. The inventory lists each item with its trigger, conditions, and a brief Nutshell equivalent recommendation. We do not rebuild workflows or automations inside the migration scope; that is a separate engagement or an internal admin task.

Platform deep dives

Context on both ends of the pair

Opera 3 logo

Opera 3

Source

Strengths

  • Integrated accounting, payroll, stock control, and CRM in one UK-compliant ERP platform.
  • SQL Server-backed data integrity with health checker validation and rollback capability during migrations.
  • Multi-company and multi-currency support for businesses with complex legal entity and international trading structures.
  • RTI payroll compliance with HMRC FPS/EPS XML filing built directly into the system.
  • Flexible reporting with Business Intelligence integration and Qlik Sense connectivity for advanced analytics.

Weaknesses

  • No public REST API — bespoke integrations require WCF endpoint development or CSV file exports.
  • Visual FoxPro edition (legacy) lacks features available in SQL SE such as AP Automation and Pegasus Data Connector.
  • Customer service ratings lag behind competing ERP platforms, with support speed cited as a recurring pain point.
  • Self-service migration tools only support movement between Opera 3 editions; cross-vendor migrations require direct engagement with Pegasus Professional Services.
  • UI and workflow design reflects traditional Windows desktop application patterns, creating friction for teams expecting modern SaaS UX.
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 Opera 3 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

    Opera 3: Not publicly documented — no published API means no documented rate limits.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most CRM-layer migrations land between two and four weeks for accounts under 5,000 Contacts, 2,000 Deals, and a single Opera 3 company code with no bespoke OPUS add-on fields. Multi-company Opera 3 deployments (with inter-company deal reassignment and per-entity Nutshell account setup), large activity-note histories requiring extensive type-parsing, or bespoke custom field schemas move to six to ten weeks because of the manual scoping work and reconciliation steps.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Opera 3.
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