CRM migration
Field-level mapping, validation, and rollback between Firmao CRM and Nutshell. We move data and schema; workflows are rebuilt natively in Nutshell.
Firmao CRM
Source
Nutshell
Destination
Compatibility
8 of 10
objects map 1:1 between Firmao CRM and Nutshell.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from Firmao CRM to Nutshell is a schema-reduction migration. Firmao's platform combines CRM with ERP-adjacent capabilities (invoicing, warehouse stock, production modules) that Nutshell, a purpose-built CRM, does not replicate. We migrate the CRM core (People, Companies, Deals, Tasks) and map custom fields using dot-notation keys from Firmao into Nutshell's custom field definitions. ERP objects—invoices, warehouse inventory, projects, and courier integrations—have no Nutshell equivalent and are flagged for manual export. Engagement history (calls, emails, meetings) and file attachments are not exposed via Firmao's public API and cannot migrate programmatically. We sequence the import to satisfy Nutshell's requirement that Companies exist before People and that Deals are established before Task associations, using company name matching where internal IDs are not exposed in the source API response. Workflows, automations, and invoice templates do not migrate; we deliver a written inventory of Firmao automations requiring rebuild in Nutshell or as a separate automation project.
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 Firmao CRM 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.
Firmao CRM
Contact
Nutshell
Person
1:1Firmao Contact records map to Nutshell Person. Standard fields (name, email, phone, address) map directly. Custom contact fields using Firmao dot-notation (customFields.customN) migrate to Nutshell custom fields on Person, but only after Nutshell custom fields are pre-created in Settings with matching data types. Tags stored as comma-separated values on the Firmao contact record map to Nutshell Person tags. We use email as the dedupe key during import and flag any duplicate emails for customer review before insert.
Firmao CRM
Company
Nutshell
Company
1:1Firmao Company records map directly to Nutshell Company. Company name is the primary field and is used as the dedupe key. We import Companies first so that Person-Company associations are resolved at the time of Person insert. Firmao's multi-currency support maps to Nutshell's currency field on Company if the destination Nutshell account uses multi-currency. Address, website, industry, and employee count fields migrate directly where populated.
Firmao CRM
Deal
Nutshell
Deal
1:1Firmao Deals map to Nutshell Deals. This mapping is gated by the customer's active Firmao plan tier—Deals are accessible only on Professional and above. If the customer is on a Standard plan during scoping, we confirm this before migration and ask them to upgrade or acknowledge the exclusion. Deal name, value, stage, owner, and expected close date map directly. Nutshell's Deal record type does not support a visual pipeline layout migration; the pipeline configuration is documented for the customer admin to configure post-migration.
Firmao CRM
Task
Nutshell
Task
1:1Firmao Tasks map to Nutshell Tasks. Task name, due date, status, and priority migrate directly. Task associations to Contacts or Deals in Firmao use the subClass/subId envelope structure—since Firmao does not expose internal IDs in the GET response, we use contact name matching and deal name matching to resolve associations. We import Deals before Tasks to satisfy the lookup resolution order and flag any Tasks with unresolved associations for customer review.
Firmao CRM
Product
Nutshell
Product (optional)
lossyFirmao Products map to Nutshell Products if the destination Nutshell plan supports the Products feature. Product name, SKU, and base price migrate directly. Per-warehouse stock levels in Firmao are stored as subClass=warehouse entries on the Product object and are not a standalone entity; we extract netPriceInStore and currentStoreState per subId and flag warehouse-level inventory as a manual export for the customer because Nutshell Products does not support warehouse-level stock tracking natively.
Firmao CRM
User
Nutshell
User
1:1Firmao Users export via /svc/v1/user and include name, email, and role. Owner assignments on Deals and Tasks resolve by email match against Nutshell's user list. We extract all distinct owner emails and confirm that corresponding Nutshell users exist or are provisioned before migration begins. Any Firmao owner without a matching Nutshell user is placed in a reconciliation queue.
Firmao CRM
Invoice
Nutshell
None (flag for manual export)
1:1Firmao Invoices (VAT invoices, bills, receipts, accounting notes) have no equivalent object in Nutshell, which is a CRM without invoicing capabilities. We export the invoice header and line item structure as a structured CSV and flag the file for the customer's accounting team to import into their chosen accounting platform (QuickBooks, Xero, FreshBooks, or equivalent). Invoice associations to Contacts and Deals in Firmao are preserved in the exported CSV for reference.
Firmao CRM
Warehouse
Nutshell
None (flag for manual export)
1:1Warehouse is a subClass of the Product object in Firmao rather than a top-level entity. Net price per store and current stock state are extracted as subId entries per product during export, but Nutshell Products does not support warehouse-level inventory. We flag the warehouse-stock export as a manual handoff and note the product-to-warehouse mapping in the export manifest for the customer's inventory management team.
Firmao CRM
Project
Nutshell
None (flag for manual export)
1:1Firmao Projects (available on Professional and above) include name, description, dates, and task associations. Gantt and Kanban visual layout data does not migrate. We export project metadata as a CSV and flag the records for the customer's project management team to migrate to a dedicated PM tool (Asana, Monday.com, Jira, or equivalent) if required. Project-task associations are preserved as a flat list in the export for reference mapping.
Firmao CRM
Custom Field (Deals, Contacts, Companies)
Nutshell
Custom Field
lossyFirmao custom fields (available on Professional and above) use dot-notation keys (customFields.custom5, customFields.custom12) that are not self-documenting in the API response. We retrieve a sample record via GET first to enumerate which custom fields are populated, then cross-reference with the import documentation the customer provides. Fields with no values in the sample are flagged as potentially deleted and excluded. Before migration, Nutshell custom fields must be created in Settings with the appropriate data type (text, number, date, picklist, checkbox); we provide a custom field creation checklist as part of the pre-migration deliverable.
| Firmao CRM | Nutshell | Compatibility | |
|---|---|---|---|
| Contact | Person1:1 | Fully supported | |
| Company | Company1:1 | Fully supported | |
| Deal | Deal1:1 | Fully supported | |
| Task | Task1:1 | Fully supported | |
| Product | Product (optional)lossy | Fully supported | |
| User | User1:1 | Fully supported | |
| Invoice | None (flag for manual export)1:1 | Fully supported | |
| Warehouse | None (flag for manual export)1:1 | Fully supported | |
| Project | None (flag for manual export)1:1 | Fully supported | |
| Custom Field (Deals, Contacts, Companies) | Custom Fieldlossy | 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.
Firmao CRM gotchas
Tier-gated objects cause silent import failures
Custom field keys are dynamic and not self-documenting
Parent-child object import order is mandatory
Warehouse stock state is subClass-embedded, not top-level
API login is auto-generated and tied to company ID
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
Plan tier audit and scope confirmation
We audit the customer's active Firmao plan tier via the API response to confirm whether Deals, custom fields, Projects, and the invoicing module are accessible. We extract a sample of 50 records per object (Contact, Company, Deal, Task, Product) to enumerate custom field keys, identify parent-child relationship patterns, and flag duplicate company names and deal names that will require disambiguation. We confirm the Nutshell plan tier and verify that Products, custom fields, and Deals are supported on the destination plan. The scope document lists every object we migrate, every object we flag for manual export, and every exclusion (attachments, engagement history, workflows) with the reason.
Pre-create Nutshell custom fields and configure schema
Before any data import, we create Nutshell custom fields in Settings for every populated Firmao custom field key we identified in the sample audit. We assign the appropriate Nutshell field type (text, number, date, picklist, checkbox) based on the data values observed in the Firmao sample. We document the custom field creation checklist as a pre-migration deliverable so the customer admin can verify the field list. Nutshell's Import2 pipeline requires that destination custom fields exist before field mapping, so this step must complete before the import file is generated.
Export and transform records in dependency order
We export Firmao records in the following order: Companies first, then Contacts (with companyName resolved), then Deals, then Tasks (with dealName resolved). Products export with warehouse subClass data flattened as separate rows per subId. Users export by email for owner resolution. During transform, we apply the Firmao-to-Nutshell field mapping, strip unsupported characters, normalize date formats to ISO 8601, and flag any record that fails validation rules (required field missing, invalid email format, duplicate dedupe key) in a separate error manifest for customer review before insert.
Sandbox migration and reconciliation
We run the full migration into Nutshell using the Import2 pipeline with a test dataset that mirrors production volume. The customer reconciles record counts (People in, Companies in, Deals in, Tasks in), spot-checks 20-30 random records against the Firmao source, and signs off the mapping before production migration begins. Any custom field mapping corrections, duplicate disambiguation decisions, and association fixes happen in the sandbox step. We do not run production migration until the customer has reviewed and approved the sandbox reconciliation report.
Production migration and cutover
We run the production migration in the same dependency order used in sandbox: Companies, then Contacts, then Deals, then Tasks, then Products. Each phase emits a row-count reconciliation report before the next phase begins. We freeze writes in Firmao during the final cutover window, run a delta migration for any records modified during the migration, and enable Nutshell as the system of record. We deliver the ERP export manifest (Invoices, Warehouse stock, Projects) as structured CSV files for the customer's accounting and operations teams to handle manually. We deliver the automation inventory document listing every Firmao workflow and automation with its trigger, conditions, and actions for the customer's admin to rebuild in Nutshell or as a separate automation project.
Validation, handoff, and post-migration support
We run a post-migration validation comparing record counts and sampling key fields against the Firmao source. We verify that Deal-Company associations are intact, that Task-Deal associations are resolved, and that owner assignments match by email. We deliver the automation inventory document and the ERP export manifest as separate files from the migration deliverables. We support a three-day hypercare window for reconciliation issues raised by the customer's team. We do not rebuild Firmao automations as Nutshell workflows inside the migration scope; that work is documented separately for the customer's admin.
Platform deep dives
Firmao CRM
Source
Strengths
Weaknesses
Nutshell
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 3 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 Firmao CRM and Nutshell.
Object compatibility
3 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
Firmao CRM: Not publicly documented.
Data volume sensitivity
Firmao CRM doesn't expose a bulk API — REST + parallelization used for high-volume runs.
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 Firmao CRM to Nutshell migration scoping. Not seeing yours? Book a call.
Walk through your Firmao CRM 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 Firmao CRM
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.