CRM migration
Field-level mapping, validation, and rollback between Freshsales and Nutshell. We move data and schema; workflows are rebuilt natively in Nutshell.
Freshsales
Source
Nutshell
Destination
Compatibility
8 of 9
objects map 1:1 between Freshsales and Nutshell.
Complexity
BStandard
Timeline
1-2 weeks
Try the reverse
Overview
Moving from Freshsales to Nutshell is a consolidation migration with a structural twist: Freshsales uses separate Leads and Contacts objects with lifecycle stages, while Nutshell consolidates both into a single People object with a Party Type property. We run the merge logic during the transform phase, mapping Freshsales Leads with lifecycle stages to Nutshell People with the appropriate party_type value, and Freshsales Contacts to Nutshell People with the contact party_type. We preserve the original Freshsales lifecycle stage in a custom field for audit and reporting continuity. Pipeline stage definitions migrate from Freshsales Deal pipelines to Nutshell lead stages, and we handle the owner lookup resolution by email match across both user tables. We do not migrate Freshsales Sequences, Workflows, or Freddy AI scoring as code; we deliver a written inventory of each for the customer's admin to rebuild in Nutshell. Storage limits differ materially between the platforms and we flag any projected overages before migration day.
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.
Source platform
Freshsales platform overview
Scorecard, SWOT, gotchas, and pricing for Freshsales.
Destination platform
Nutshell platform overview
Scorecard, SWOT, gotchas, and pricing for Nutshell.
Data migration guide
The complete Nutshell migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Source platform guide
Freshsales migration guide
Understand the data you're exporting from Freshsales before mapping it.
Destination checklist
Nutshell migration checklist
Pre- and post-cutover tasks for moving onto Nutshell.
Source checklist
Freshsales migration checklist
Exit checklist for unwinding your Freshsales setup cleanly.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Freshsales 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.
Freshsales
Lead
Nutshell
People (party_type = lead)
1:1Freshsales Leads map to Nutshell People records with party_type set to lead. We extract the Freshsales lifecycle_stage property and preserve it in a custom field fs_original_lifecycle__c on the Nutshell People record for reporting continuity. Lead source, owner, and any custom fields migrate as standard Nutshell fields or custom fields depending on the Nutshell plan. This mapping runs before the Contact import so that the People records are available for deduplication.
Freshsales
Contact
Nutshell
People (party_type = contact)
1:1Freshsales Contacts map to Nutshell People records with party_type set to contact. The associated Freshsales Account becomes a Nutshell Company record created first, then linked to the People record via the company relationship. Contact lifecycle stage migrates to the custom field fs_original_lifecycle__c on the Nutshell People record alongside the Lead mapping above.
Freshsales
Account
Nutshell
Company
1:1Freshsales Account records map 1:1 to Nutshell Company records. Domain from Freshsales website field becomes the Nutshell Company domain field. Companies are migrated before People so that the company-people relationship is established at Contact insert time. Account address fields map to Nutshell Company address fields with multi-line address formatting preserved.
Freshsales
Deal
Nutshell
Lead
1:1Freshsales Deals map to Nutshell Lead records, which in Nutshell carry deal-specific fields including amount, stage, and owner. The Freshsales pipeline becomes a Nutshell lead status or pipeline stage configuration. We map dealstage from Freshsales to the equivalent Nutshell stage name, and preserve probability and amount fields. Closed-won and closed-lost reasons from Freshsales custom fields map to Nutshell custom fields on the Lead.
Freshsales
Pipeline
Nutshell
Lead Status / Pipeline Configuration
lossyFreshsales multiple deal pipelines (Pro and above) map to Nutshell pipeline configurations or lead status values. Stage names, probabilities, and stage order migrate as Nutshell stage definitions. If the customer uses more than one Freshsales pipeline, we create the equivalent Nutshell pipeline configuration and map stage probabilities to match the source.
Freshsales
Product
Nutshell
Product
1:1Freshsales Products map to Nutshell Products. Product name, SKU (fs_sku), price, and description migrate directly. Products are created before any Deal or Quote import so that the product relationship is satisfied at insert time.
Freshsales
Activity: Task
Nutshell
Activity
1:1Freshsales Tasks map to Nutshell Activities linked to the target People or Lead record. Task status, priority, due date, and description migrate directly. Owner mapping resolves by email match against Nutshell users. Activities are imported after People and Leads to satisfy the parent record lookup.
Freshsales
Activity: Event / Call
Nutshell
Activity
1:1Freshsales Events (meetings and calls) map to Nutshell Activities. Call duration, disposition, and meeting location fields migrate to Nutshell Activity fields. Call recordings stored in Freshsales do not migrate as files; we document the recording URL in a custom Activity field and the customer configures recording access post-migration.
Freshsales
Custom Field
Nutshell
Custom Field
1:1Freshsales custom fields on Leads, Contacts, Accounts, and Deals map to Nutshell custom fields on the corresponding People, Company, and Lead records. We validate field type compatibility during scoping and flag any Freshsales advanced custom fields that may have been gated by plan tier. Text, number, date, dropdown, and checkbox field types map directly; multi-select picklists map to Nutshell multi-select fields.
| Freshsales | Nutshell | Compatibility | |
|---|---|---|---|
| Lead | People (party_type = lead)1:1 | Fully supported | |
| Contact | People (party_type = contact)1:1 | Fully supported | |
| Account | Company1:1 | Fully supported | |
| Deal | Lead1:1 | Fully supported | |
| Pipeline | Lead Status / Pipeline Configurationlossy | Fully supported | |
| Product | Product1:1 | Fully supported | |
| Activity: Task | Activity1:1 | Fully supported | |
| Activity: Event / Call | Activity1:1 | Fully supported | |
| Custom Field | Custom Field1:1 | 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.
Freshsales gotchas
Freddy AI is Pro-tier only despite heavy marketing
Post-migration emails and sequences are disabled
Bot session credits are a one-time 500-session allocation
Phone credits charged per minute with no cap
File storage limits scale with plan tier
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 scoping
We audit the source Freshsales account across plan tier (Growth/Pro/Enterprise), record counts for Leads, Contacts, Accounts, Deals, Products, Activities, and any active Custom Objects. We extract custom field definitions and validate plan-gating for advanced fields. We identify active Sales Sequences and Workflows requiring rebuild documentation. We assess storage usage against Freshsales plan limits and flag any attachment volume risk. The discovery output is a written migration scope and a custom field mapping matrix.
Schema design and Nutshell field provisioning
We design the destination Nutshell schema including custom fields on People, Company, and Lead objects, stage definitions for the lead pipeline, and any custom field types (multi-select, date, number). We provision custom fields in Nutshell before any data import using the Nutshell field settings API. If the customer uses multiple Freshsales Deal pipelines, we configure the equivalent Nutshell pipeline structure at this stage.
Test migration and reconciliation
We run a test migration with a representative sample (typically 100-200 records per object type) into the Nutshell destination account. The customer reconciles record counts, spot-checks mapped fields, and verifies that the People-party_type split is producing the expected Lead versus contact distribution. Any mapping corrections are made before the full production migration begins. Freshsales sequences and workflow inventory are documented and delivered at this stage.
Owner and user reconciliation
We extract every distinct Freshsales Owner referenced across Leads, Contacts, Accounts, Deals, and Activities and match by email against the Nutshell destination account's user list. Any Freshsales Owner without a matching Nutshell user goes to a reconciliation queue for the customer's admin to provision. Owner lookups must be resolved before any record import that references them.
Production migration in dependency order
We run production migration in dependency order: Companies (from Freshsales Accounts), People records (Leads and Contacts merged via the party_type split), Leads with deal data, Products, Activities (Tasks and Events with owner resolved), and Custom Fields last. Each phase emits a row-count reconciliation report. We use Nutshell's API import endpoints with rate-limit handling and exponential backoff for all object types.
Cutover, delta sync, and rebuild handoff
We freeze Freshsales writes during cutover, run a final delta migration of records modified during the migration window, and hand off the sequence and workflow inventory document to the customer's admin team. We support a one-week hypercare window for reconciliation issues. We do not rebuild Freshsales Sequences or Workflows in Nutshell inside the migration scope; that work is covered by the delivered inventory document.
Platform deep dives
Freshsales
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 Freshsales 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
Freshsales: Not publicly documented on Freshworks CRM; Freshdesk docs reference rate limits but Freshsales-specific limits are undocumented.
Data volume sensitivity
Freshsales 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 Freshsales to Nutshell migration scoping. Not seeing yours? Book a call.
Walk through your Freshsales 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 Freshsales
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.