CRM migration
Field-level mapping, validation, and rollback between SuiteCRM and Nutshell. We move data and schema; workflows are rebuilt natively in Nutshell.
SuiteCRM
Source
Nutshell
Destination
Compatibility
5 of 12
objects map 1:1 between SuiteCRM and Nutshell.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from SuiteCRM to Nutshell is a model-shift migration. SuiteCRM's PHP-based architecture separates Contacts from Accounts and maintains Leads as a distinct object, while Nutshell consolidates people records into a single People object with a status flag. We resolve the SuiteCRM Contacts-Leads-Accounts relationship at extraction time, mapping primary Contact links to Nutshell People and their parent Account to a Nutshell Company. Opportunities from SuiteCRM become Nutshell Deals with stage mapping applied per pipeline. SuiteCRM's v4.1 SOAP API (7.x) or v8 REST API (8.x) handles extraction; we use Nutshell's Import2 integration or REST API for import. AOW Workflow rules, custom logic hooks, and SuiteCRM's filesystem-stored Documents cannot be migrated programmatically — we deliver a written inventory of workflows for your admin to rebuild and extract files separately with permission preservation. Custom fields created in Studio become Nutshell custom fields on the equivalent object. Migrations typically land between three and eight weeks depending on record volume, custom module count, and document file extraction scope.
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 SuiteCRM 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.
SuiteCRM
Account
Nutshell
Company
1:1SuiteCRM Accounts map directly to Nutshell Companies. We extract name, industry, website, billing and shipping addresses, phone, and any custom fields created in SuiteCRM Studio. The account name becomes the Company name in Nutshell and is used as the dedupe key during import. Companies must be created before People imports so that the Company lookup relationship is satisfied at the moment of People insert.
SuiteCRM
Contact
Nutshell
Person
1:1SuiteCRM Contacts map to Nutshell People with the primary Account link resolved to a Company reference. We map first name, last name, email, phone, title, primary account link, and any Studio custom fields. Nutshell People stores both individual contact and lead data under one object with a status flag — we import Contact records with status set to customer or prospect depending on the source account relationship.
SuiteCRM
Lead
Nutshell
Person (Lead status)
1:1SuiteCRM Leads map to Nutshell People with status set to lead. We carry over lead status, lead source, and assignment fields. SuiteCRM's lead-to-contact conversion ratio is resolved by importing leads as People records with the lead flag set, preserving the full lead record history. If a lead has a prior activity history in SuiteCRM, we attach that as a note on the Nutshell People record since Nutshell's engagement model differs.
SuiteCRM
Opportunity
Nutshell
Deal
1:1SuiteCRM Opportunities map to Nutshell Deals. The opportunity name, amount, close date, sales stage, probability, and parent Account link migrate to Nutshell Deal fields and pipeline stages. Stage values are mapped to Nutshell pipeline stages during import; SuiteCRM's probability field is preserved as a custom numeric field on the Deal since Nutshell's pipeline probability is configured per stage rather than per record.
SuiteCRM
Product
Nutshell
Product (if using Nutshell Products)
1:1SuiteCRM Products map to Nutshell Products if the destination Nutshell account uses Nutshell's built-in product catalogue. We extract product name, SKU (part number), cost, list price, and description. Products must be imported before any Quote line items that reference them so that the product reference is satisfied.
SuiteCRM
Quote
Nutshell
Activity / Note on Deal
lossySuiteCRM Quotes have no direct Nutshell equivalent. Quote data — line items, pricing, terms — is exported as structured JSON and attached as a Note on the corresponding Nutshell Deal. The quote body is not imported as a live document; PDF generation is a post-migration step the customer's admin handles. We preserve the quote data structure for manual recreation.
SuiteCRM
Invoice
Nutshell
Activity / Note on Company
lossySuiteCRM Invoice records (payment status tracking only, no accounting ledger) are exported as structured records and attached as Notes to the relevant Nutshell Company. The invoice amount, status, and date transfer. Full accounting data does not exist in SuiteCRM and must be sourced from the customer's accounting system post-migration. We flag this as a partial record and direct the customer to their finance system.
SuiteCRM
Contract
Nutshell
Activity / Note on Company or Deal
lossySuiteCRM Contracts with start/end dates and renewal status are mapped to Notes on the related Nutshell Company or Deal. The renewal date and contract terms are preserved as text within the note. If the customer uses SuiteCRM's contract tracking heavily, we recommend establishing a renewal date reminder in Nutshell manually post-migration.
SuiteCRM
Case
Nutshell
Activity / Note on Person or Company
lossySuiteCRM Cases (Bugs module) have no direct Nutshell equivalent. Case records are exported with status, priority, description, and resolution notes, then attached as Notes to the related Nutshell People or Company record. For teams using cases as a support tracker, we recommend a dedicated helpdesk tool post-migration; cases do not map cleanly to Nutshell's sales-centric model.
SuiteCRM
Campaign
Nutshell
Activity / Note on Company
lossySuiteCRM Campaigns and their associated target lists do not have a Nutshell equivalent. Campaign metadata (name, type, status, start/end dates) is exported and attached as Notes to the related Company records. Email campaign response activity is extracted as activity logs and linked to the relevant Nutshell People records. Marketing automation rebuilt is out of scope.
SuiteCRM
Custom Field (Studio)
Nutshell
Custom Field on equivalent object
lossySuiteCRM Studio custom fields are stored in extended database tables with the module name appended to the field name (e.g. account_type_c on Accounts). We scan the database for all custom field tables, extract their values, and map them to Nutshell custom fields on the corresponding object (Company, Person, Lead, or Deal). Field type mapping applies: text to Nutshell text, date to Nutshell date, picklist values to Nutshell picklist options.
SuiteCRM
Document (file)
Nutshell
Attachment on related record
lossySuiteCRM Documents store files on the server filesystem (typically /upload/) with database metadata. We extract the file blobs and their database metadata, then re-attach them to the corresponding Nutshell People, Company, or Deal record via the Nutshell API or Import2 attachment step. File permissions must be preserved during extraction; we validate checksums after extraction to confirm integrity. This step extends the migration timeline for file-heavy instances.
| SuiteCRM | Nutshell | Compatibility | |
|---|---|---|---|
| Account | Company1:1 | Fully supported | |
| Contact | Person1:1 | Fully supported | |
| Lead | Person (Lead status)1:1 | Fully supported | |
| Opportunity | Deal1:1 | Fully supported | |
| Product | Product (if using Nutshell Products)1:1 | Fully supported | |
| Quote | Activity / Note on Deallossy | Fully supported | |
| Invoice | Activity / Note on Companylossy | Fully supported | |
| Contract | Activity / Note on Company or Deallossy | Fully supported | |
| Case | Activity / Note on Person or Companylossy | Fully supported | |
| Campaign | Activity / Note on Companylossy | Fully supported | |
| Custom Field (Studio) | Custom Field on equivalent objectlossy | Fully supported | |
| Document (file) | Attachment on related recordlossy | 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.
SuiteCRM gotchas
7.x to 8.x upgrade silently breaks the web UI
Documents store files on the server filesystem, not in the database
Invoices are standalone records with no accounting ledger
Workflow automation rules (AOW) cannot be programmatically exported
Version 7.x extended support ends mid-2027 on ESR branch
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 version assessment
We audit the source SuiteCRM instance: version (7.x or 8.x determines extraction API), custom modules and their database table schemas, Studio-created custom fields and their extended table names, active AOW Workflow rules, document file inventory on the server filesystem, and record counts per module. We also assess the destination Nutshell account's pipeline configuration and any existing custom field definitions. The discovery output is a written migration scope document with a record-count table, extraction strategy (v4.1 SOAP vs v8 REST vs direct database), and a custom field inventory.
Schema mapping and Nutshell field preparation
We map every SuiteCRM module to its Nutshell equivalent, resolving the Contacts-Leads-Accounts relationship into the Companies and People model. We create any required custom fields in Nutshell (text, date, picklist, currency) before import begins. Pipeline stages in SuiteCRM are mapped to Nutshell pipeline stages, with probability defaults applied per stage. Custom field type mapping is validated at this stage — for example, SuiteCRM date fields must be formatted to YYYY-MM-DD for Nutshell import compatibility.
Pilot migration and reconciliation
We run a full migration into the customer's Nutshell account using a representative sample of records — typically the most recent 200-500 records per module — to validate mapping correctness before full production migration. The customer reconciles record counts, spot-checks 25-50 records for field-level accuracy, and confirms that the Nutshell pipeline stages match their expectations. Any mapping corrections are applied before the production migration begins. AOW Workflow rules are inventoried and exported as JSON during this phase.
Owner reconciliation and User provisioning
We extract every distinct SuiteCRM User referenced on Accounts, Contacts, Leads, Opportunities, and activity records. Each user is matched by email address to a Nutshell User account. Any SuiteCRM user without a matching Nutshell account goes to a reconciliation queue for the customer to provision before production migration resumes. Owner assignments on migrated records are set to the matched Nutshell User; inactive SuiteCRM users are mapped to inactive Nutshell Users for historical record accuracy.
Production migration in dependency order
We run production migration in record-dependency order: Companies (from SuiteCRM Accounts) first, then People records (Contacts and Leads with Company reference resolved), then Deals (Opportunities with Company and Owner references resolved), then Products if the Nutshell account uses the product catalogue. Custom module data follows standard object imports. Document files are extracted from the filesystem and attached via the Nutshell API in parallel. Each phase emits a row-count reconciliation report before the next phase begins. The SuiteCRM instance remains writable during migration so that no new data is lost during cutover.
Cutover, final delta, and workflow handoff
We freeze SuiteCRM writes during cutover, run a final delta migration of any records created or modified during the migration window, then confirm Nutshell as the system of record. We deliver the AOW Workflow inventory JSON and the document file index to the customer's admin team. We support a one-week hypercare window for reconciliation issues raised by the sales team. Workflow rebuilds, sequences, and automation rules are outside standard migration scope; we provide the written inventory and the customer or a Nutshell implementation partner handles the rebuild.
Platform deep dives
SuiteCRM
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 SuiteCRM 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
SuiteCRM: Not publicly documented in SuiteCRM's own docs.
Data volume sensitivity
SuiteCRM exposes a bulk API — large-volume migrations stream efficiently.
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 SuiteCRM to Nutshell migration scoping. Not seeing yours? Book a call.
Walk through your SuiteCRM 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 SuiteCRM
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.