CRM migration

Migrate from Fat Free CRM to Nutshell

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

Fat Free CRM logo

Fat Free CRM

Source

Nutshell

Destination

Nutshell logo

Compatibility

78%

7 of 9

objects map 1:1 between Fat Free CRM and Nutshell.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Fat Free CRM has no public REST API, so every migration from it requires direct database extraction from MySQL, PostgreSQL, or SQLite. We connect read-only to the source database, enumerate the Rails schema including any plugin-extended tables, and transform records into Nutshell API payloads. On the destination side we create Companies, People, Deals, and optional Tasks via Nutshell's REST API, resolving parent-record lookups and preserving opportunity-contact many-to-many associations through a separate import pass. We do not migrate attachments stored on the source filesystem, automations, or user/group access control lists; those require post-migration rebuild or manual handoff. Teams leaving Fat Free CRM typically cite the absence of a maintained API, dated interface, and the operational burden of self-hosting as the core drivers for switching to Nutshell's managed SaaS model.

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

Fat Free CRM logo

Fat Free CRM

What's pushing teams away

  • The user interface feels dated compared to modern SaaS CRMs, and G2 reviewers consistently rate the UX as needing significant improvement.
  • Community development has slowed — Bitrix24's comparison page explicitly notes it is unclear whether Fat Free CRM is still actively maintained, raising long-term support concerns.
  • No native public API means third-party integrations require direct database access or custom Rails code, complicating connections to email, calendars, or other tools.
  • Lacks the reporting depth, automation builder, and sales intelligence features that teams outgrow as they scale beyond basic contact and opportunity tracking.
  • Hosting, maintenance, security patching, and upgrades fall entirely on the customer, creating hidden operational overhead that grows over time.

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 Fat Free CRM objects map to Nutshell

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

Fat Free CRM

Account

maps to

Nutshell

Company

1:1
Fully supported

Fat Free CRM Accounts map directly to Nutshell Companies. We extract name, website, phone, and billing address from the accounts table and use the Company name as the dedupe key during import. The owner_id from Fat Free CRM resolves to a Nutshell owner via email lookup on the People table post-provisioning. Address fields migrate to Nutshell's address compound field. Account categories and tags (acts_as_taggable) attach as Nutshell tags on the resulting Company record.

Fat Free CRM

Contact

maps to

Nutshell

Person

1:1
Fully supported

Fat Free CRM Contacts map to Nutshell People with a 1:1 field-level correspondence: first_name, last_name, email, phone, title, and department all have direct equivalents. The contact_accounts join table resolves the account_id to a Nutshell Company lookup that we set as the contact's company reference during import. Tags from the contacts table migrate as Nutshell tags on each Person record.

Fat Free CRM

Lead

maps to

Nutshell

Person

1:1
Fully supported

Fat Free CRM Leads are a distinct pre-conversion object with status, source, rating, and assigned user. We import Leads as Nutshell People with a custom field ffcrm_lead_source__c carrying the original lead source, and a status field indicating whether the record was converted or unconverted at migration time. The assigned user resolves via email lookup. Lead ratings (cold, warm, hot) map to a custom rating field rather than a native Nutshell field.

Fat Free CRM

Opportunity

maps to

Nutshell

Deal

1:1
Fully supported

Fat Free CRM Opportunities map to Nutshell Deals with stage, amount, probability, and close date preserved. The opportunity.account_id resolves to the Nutshell Company lookup at migration time. Nutshell Deals support multiple contacts per deal, which handles the opportunity_contact many-to-many join from Fat Free CRM; we import the opportunity_contacts link table as a secondary lookup pass after Deals and People exist in Nutshell.

Fat Free CRM

Task

maps to

Nutshell

Task

1:1
Fully supported

Open tasks in Fat Free CRM migrate to Nutshell Tasks with title, body, due_date, category, and completion status. Completed tasks are optional and migrate only if the customer requests them; by default we import open tasks to avoid flooding the destination with resolved work. Nutshell does not have a separate activity object for historical task data, so due_date and completion tracking use Nutshell's native task fields.

Fat Free CRM

Campaign

maps to

Nutshell

Person (tag + custom field)

lossy
Fully supported

Fat Free CRM Campaign records track name, status, budget, and target metrics, with contact membership stored in tag tables. Nutshell has no native campaign object. We import Campaign records as Nutshell tags on Person records (e.g., tag: Campaign_Name) and add a custom field campaign_attribution__c on People to preserve campaign-level metrics where the customer requires them. Tag count per Person in Nutshell is limited to 100; records exceeding this threshold use an additional custom field for overflow.

Fat Free CRM

Tag

maps to

Nutshell

Tag

1:1
Fully supported

Fat Free CRM's global tagging system (acts_as_taggable) stores tags as string tokens across Contacts, Accounts, Opportunities, and Leads. Tags map directly to Nutshell's native tag feature. We preserve the full tag set per record by enumerating the taggings table and attaching each unique tag token to the corresponding Nutshell People, Company, or Deal record at import time.

Fat Free CRM

Users and Groups

maps to

Nutshell

Owner (reference table)

1:1
Fully supported

Fat Free CRM Users and Groups have no direct Nutshell equivalent because Nutshell's API does not expose user management endpoints. We export the full user and group roster as a reference table keyed by email, role, and group membership. The customer provisions Nutshell users manually post-migration, and we use the email-based lookup to reassign owner references on all migrated records during the import phase.

Fat Free CRM

Custom Fields

maps to

Nutshell

Custom Fields

lossy
Mapping required

Fat Free CRM supports custom fields on Accounts, Contacts, Leads, and Opportunities via serialized columns or extension tables. We extract the custom field definitions from the database schema and migrate values to equivalent Nutshell custom fields, which are available on People, Companies, and Deals at all Nutshell tiers. Text fields exceeding 255 characters in Nutshell require a custom field type or are flagged for truncation during the scoping phase.

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.

Fat Free CRM logo

Fat Free CRM gotchas

High

No public REST API forces direct database extraction

Medium

Plugin-extended schema may alter core tables

Medium

Attachment files live on the host filesystem

Low

Users and groups must be manually remapped in the destination

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 API forces direct database extraction

    Fat Free CRM exposes no public REST API. We connect directly to the underlying MySQL, PostgreSQL, or SQLite database using read-only credentials provided by the customer, enumerate the Rails table schema, and extract records from the source tables. This requires the customer to be comfortable granting database read access. Any custom plugins extending the schema may add columns that must be enumerated during the discovery phase before extraction begins; plugin columns not captured in discovery appear as missing fields in Nutshell and require a supplementary pass.

  • Plugin-extended schema can alter core tables

    Fat Free CRM's plugin system can add columns to core tables such as accounts, contacts, and opportunities, or create entirely new tables. We run a schema discovery phase against the live database before extraction to capture any plugin additions. Undiscovered plugin columns that appear post-extraction surface as missing fields in Nutshell and require a supplementary migration pass. Customers using plugins for time tracking, webhook delivery, or record merging must enumerate these extensions before extraction begins.

  • Attachments live on the host filesystem

    Uploaded files in Fat Free CRM are stored on the server's local disk or a configured S3 bucket, not in the database. We can enumerate attachment records (filename, path, associated record type and ID) through the database but cannot extract binary file content through our standard database connection. We deliver a complete file inventory with record associations so the customer can manually copy files to Nutshell's storage layer or a linked cloud storage service post-migration.

  • Users and groups must be manually remapped

    Fat Free CRM's internal user IDs and group IDs have no meaning in Nutshell. Nutshell's API does not expose user management endpoints, so we cannot provision users or update ownership directly. We export the full user and group roster as a reference table keyed by email and role. The customer creates corresponding Nutshell user accounts and we use the email-based lookup to reassign record ownership during import. Group access control in Fat Free CRM does not map to a Nutshell equivalent and must be rebuilt manually in Nutshell's user settings.

Migration approach

Six steps for a successful Fat Free CRM to Nutshell data migration

  1. Schema discovery and scoping

    We connect read-only to the Fat Free CRM database (MySQL, PostgreSQL, or SQLite) and run a full schema discovery to enumerate all tables, plugin-extended columns, custom field definitions, and join tables. We pair this with a record count audit across Accounts, Contacts, Leads, Opportunities, Tasks, Campaigns, and Tags. The customer provides the database credentials, confirms the Rails environment version, and identifies any active plugins that modify the core schema. The discovery output is a written migration scope with object-level record counts, a preliminary field map, and a plugin schema addendum.

  2. Data extraction from source database

    We export data from all relevant Fat Free CRM tables in dependency order: accounts, contacts, leads, opportunities, tasks, taggings, campaigns, and the join tables (contact_accounts, opportunity_contacts, campaign_subscriptions). We run the extraction in read-only mode against the production or staging database replica. Custom field values are extracted alongside their definitions so that field types can be validated against Nutshell's custom field type restrictions before import. Attachment metadata (filename, path, record association) is enumerated and included in the file inventory rather than the binary import.

  3. Transformation and field mapping

    We transform the extracted database rows into Nutshell API payloads, applying the field map for each object type. Name fields split into first_name and last_name. Address data consolidates into Nutshell's compound address field. Owner IDs resolve via the email lookup on the exported user roster. Opportunity-contact many-to-many associations are isolated into a separate lookup table for the secondary association pass. Tags are normalized to lowercase string tokens. Custom field values are validated against Nutshell's type constraints and character limits, with overflow flagged for scoping review before import.

  4. Sample migration and mapping validation

    We run a sample migration using 50-100 representative records from each object type into a staging or test Nutshell account. The customer reviews the imported records and confirms that field mappings, tag placements, deal-contact associations, and owner assignments are correct. Any mapping corrections are applied before the full production migration begins. This step also validates that the migration user's API permissions are sufficient to create and update records in Nutshell.

  5. Full production migration in dependency order

    We run the full migration into the production Nutshell account in record-dependency order: Companies first (for lookup resolution), then People (with Company lookup resolved), then Deals (with Company and People lookups resolved), then deal-contact associations, then Tags, and finally Tasks. Each phase emits a row-count reconciliation report showing records processed, records imported, and any records skipped due to validation errors. Completed tasks are imported last if included in scope.

  6. Cutover, validation, and handoff

    We freeze writes to Fat Free CRM during cutover, run a final delta scan for any records modified during the migration window, then deliver the final reconciliation report. We provide the automation and workflow inventory as a written document for the customer's admin to rebuild in Nutshell, along with the user roster reference table for ownership reassignment. We do not rebuild automations, sequences, or forms as part of the migration scope; those are separate engagements. We support a one-week post-cutover window for reconciliation questions.

Platform deep dives

Context on both ends of the pair

Fat Free CRM logo

Fat Free CRM

Source

Strengths

  • Zero licensing cost — fully open source under MIT license with no per-user or subscription fees.
  • Complete source code access allows deep customisation of data models, views, and business logic without vendor lock-in.
  • Lightweight Ruby on Rails stack runs on commodity hosting (VPS, Heroku) with standard relational databases.
  • Active community and plugin architecture provide extension points for webhooks, time tracking, and record merging.
  • Self-hosted model ensures full data ownership and no third-party data retention concerns.

Weaknesses

  • No native public API — integrations require direct database queries or custom Rails development, limiting third-party tool connectivity.
  • Dated user interface consistently cited in reviews as a friction point compared to modern SaaS CRM experiences.
  • Slowing development activity raises concerns about security patches, Rails compatibility updates, and long-term viability.
  • Operational burden of self-hosting (server management, backups, upgrades, security) falls entirely on the customer.
  • Limited reporting, automation, and sales intelligence features compared to commercial CRM platforms.
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 Fat Free CRM 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

    Fat Free CRM: Not applicable — self-hosted database has no API rate limiting.

  • Data volume sensitivity

    B

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

Estimator

Estimate your Fat Free CRM 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 Fat Free CRM to Nutshell data migrations

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Fat Free CRM migrations land in three to five weeks from kickoff to final validation. Timeline scales with record volume, the number of custom fields requiring type mapping, and whether historical task and activity data is in scope. Migrations with custom objects, large tag sets, or a requirement to import historical activity records extend to six to ten weeks because of the transformation and lookup-resolution work involved in each phase.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Fat Free CRM.
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