CRM migration

Migrate from Fergus to Nutshell

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

Fergus logo

Fergus

Source

Nutshell

Destination

Nutshell logo

Compatibility

86%

12 of 14

objects map 1:1 between Fergus and Nutshell.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Fergus is a field service and trade-contractor platform organized around Jobs, Quotes, Estimates, Invoices, and Pricing Tiers — a data model built for project-based work. Nutshell is a small-to-mid-market CRM structured around People, Companies, Leads, and Opportunities — a data model built for sales pipeline management. These models diverge significantly: Fergus has no native contact-company association model, while Nutshell requires every Person to belong to at least one Company; Fergus stores job phases and line items that have no direct Nutshell equivalent; Fergus has Quote and Invoice objects that Nutshell replaces with custom fields or notes. FlitStack AI extracts Fergus data via its JSON-RPC API (100 req/min rate limit enforced per company) and loads it into Nutshell using its REST API with scoped read access on Fergus so your team keeps working throughout the cutover. Jobs migrate as structured custom fields on Nutshell People records; quotes and invoices become custom fields with full line-item detail preserved as text; pricing tiers map to custom pick-list fields. We surface Fergus workflows, pricing rules, and phase logic as rebuild documentation for your Nutshell admin — the automation itself cannot migrate because Nutshell's workflow engine operates differently from Fergus's job-trigger 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

Fergus logo

Fergus

What's pushing teams away

  • Navigational friction when editing invoices — changing margins on materials and moving between screens feels fiddly, per Capterra reviews
  • Limited reporting and analytics depth that makes it difficult to extract meaningful business insights from historical job data
  • Scaling limitations as businesses grow beyond basic job management into complex project tracking or multi-location operations
  • Integration limitations with non-standard accounting software that forces some businesses to maintain duplicate records or manual exports

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

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

Fergus

Contact (Fergus)

maps to

Nutshell

Person (Nutshell)

1:1
Fully supported

Fergus contacts map directly to Nutshell People. Fergus stores contact name, email, phone, and address fields in snake_case via the API. We map these to Nutshell's Person fields (name, email, phones, address) preserving original create timestamps and owner email for resolution to Nutshell users.

Fergus

Company (Fergus)

maps to

Nutshell

Company (Nutshell)

1:1
Fully supported

Fergus company records map to Nutshell Companies. Fergus may store company as a text field on a job rather than a linked record — we extract unique company values, deduplicate, and create Nutshell Company records first so the Person → Company lookup resolves correctly during contact migration.

Fergus

Person → Company association

maps to

Nutshell

Person → Company link (primary)

many:1
Fully supported

Fergus has no formal N:N contact-to-company association model. Nutshell requires every Person to link to at least one Company. We create the Company records first, then link each Person to the primary company extracted from the Fergus job context. Secondary company associations are preserved as custom fields.

Fergus

Job (Fergus)

maps to

Nutshell

Custom fields on Person record (Nutshell)

1:1
Fully supported

Fergus Job has no Nutshell equivalent — Nutshell has Opportunities but not a job/project record. We migrate key job fields (job name, job number, status, assigned contact, created date) as custom fields on the related Nutshell Person record. Phase history is preserved as a structured text custom field with original phase names and transition timestamps.

Fergus

Job Phase (Fergus)

maps to

Nutshell

Custom field: Job_Phase_History__c (Nutshell)

1:1
Fully supported

Fergus job phases (e.g., Quote Sent, Site Visit, Materials Ordered, Job Complete) have no Nutshell equivalent. We serialize the phase history — phase name, entered date, entered by — as a structured text custom field (Job_Phase_History__c) on the Person record. Phase templates are documented for Nutshell workflow recreation.

Fergus

Quote / Estimate (Fergus)

maps to

Nutshell

Custom fields on Person (Nutshell)

1:1
Fully supported

Fergus Quote objects store quote name, reference number, total amount, status, and validity dates as first-class records. Nutshell has no Quote object. We create custom fields on the Person record: Quote_Reference__c, Quote_Amount__c, Quote_Status__c, and Quote_Valid_Until__c. Line items are preserved in a structured custom text field or as a formatted note attachment.

Fergus

Invoice (Fergus)

maps to

Nutshell

Custom fields on Person (Nutshell)

1:1
Fully supported

Fergus Invoice records hold invoice number, total amount, amount paid, balance due, status, and payment date. Nutshell has no native Invoice object. We map these to custom fields on the Person record: Invoice_Number__c, Invoice_Total__c, Invoice_Paid__c, Invoice_Status__c, and Invoice_Payment_Date__c. Full invoice line-item detail is preserved as a structured text custom field.

Fergus

Pricing Tier (Fergus)

maps to

Nutshell

Custom pick-list field: Customer_Tier__c (Nutshell)

1:1
Fully supported

Fergus Pricing Tiers are named discount tiers assigned per customer for material pricing. Nutshell has no pricing tier object. We create a custom pick-list field (Customer_Tier__c) on the Person record, mapping each Fergus tier name to a Nutshell pick-list value. The tier-level discount rate is preserved in an additional custom currency field (Tier_Discount_Rate__c).

Fergus

Line Item — Materials (Fergus)

maps to

Nutshell

Custom fields on Person (Nutshell)

many:1
Fully supported

Fergus line items (material name, quantity, unit price, markup, total) have no Nutshell equivalent. We aggregate material line items per job and preserve them as structured custom text fields (Job_Materials__c) on the Person record, formatted as a readable list: qty × material name @ unit price = line total. Service line items are handled identically in Job_Services__c.

Fergus

Activity — Call, Email, Site Visit (Fergus)

maps to

Nutshell

Task (Nutshell)

1:1
Fully supported

Fergus activity records (call logs, email references, site visit notes) linked to a job map directly to Nutshell Tasks. We preserve the original subject, description/body, owner email for user resolution, and the original activity datetime. Activities with no job context are linked to the associated Person record.

Fergus

Owner / User (Fergus)

maps to

Nutshell

User (Nutshell)

1:1
Fully supported

Fergus owner IDs on jobs and contacts are resolved by email match against Nutshell Users. Unmatched owners are flagged before migration — your team either creates the Nutshell user first or assigns records to a fallback owner. No record lands in Nutshell without a valid OwnerId.

Fergus

Fergus custom_attributes (any object)

maps to

Nutshell

Custom field (Nutshell, per object)

1:1
Fully supported

Fergus exposes custom_attributes on jobs, contacts, quotes, and invoices via the API as key-value pairs. Each custom attribute becomes a Nutshell custom field created on the appropriate object (Person, Company) with the matching field type (text, number, date, currency, pick-list). Fergus pick-list values map to Nutshell pick-list options.

Fergus

Workflow / Automation (Fergus)

maps to

Nutshell

None — rebuild required

1:1
Fully supported

Fergus workflows trigger on job phase changes, quote status changes, or invoice events. Nutshell workflows use a different trigger-and-action model tied to Person, Company, and Opportunity state changes. Workflows do not migrate automatically — FlitStack exports the Fergus workflow definitions as a JSON specification document that your Nutshell admin can use as a rebuild reference.

Fergus

Attachment / File (Fergus)

maps to

Nutshell

Attachment on Person record (Nutshell)

1:1
Fully supported

Fergus file attachments on jobs, quotes, or contacts are downloaded and re-uploaded to the related Nutshell Person record as file attachments. File size limits and inline image handling follow Nutshell's attachment constraints. Original file names and upload timestamps are preserved.

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.

Fergus logo

Fergus gotchas

High

100 req/min API rate limit constrains bulk exports

Medium

Customer pricing tier data requires explicit mapping

Medium

Quote and invoice warning badges are state-dependent

Medium

No documented public schema for custom fields

Low

Job photos and attachments require separate file export

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

  • Fergus Jobs have no native Nutshell equivalent — phase history and job context require custom field reconstruction

    Fergus organizes work around Jobs with phases (Quote Sent, Site Visit, Materials Ordered, Job Complete) and line items. Nutshell has Opportunities but no job/project object. FlitStack AI migrates key job fields (job name, job number, status, start/end dates) as custom fields on the Nutshell Person record, and serializes phase history as a structured text custom field (Job_Phase_History__c) with original phase names and entered timestamps. Phase-specific automation triggers in Fergus have no Nutshell equivalent and must be rebuilt as Nutshell workflows tied to Opportunity stage changes or custom field updates.

  • Fergus Quote and Invoice objects have no native Nutshell equivalent — custom field setup required before data lands

    Fergus Quote and Invoice are first-class objects storing reference numbers, line items, totals, statuses, and validity dates. Nutshell has no Quote or Invoice object at all. FlitStack creates custom fields on the Nutshell Person record — Quote_Reference__c, Quote_Amount__c, Quote_Status__c, Invoice_Number__c, Invoice_Total__c, Invoice_Paid__c — before migration data arrives. Line-item detail is preserved as a structured text custom field or formatted note attachment. If your team relies on Fergus's quote PDF generation or invoice PDF output, those files are downloaded and re-attached to the Person record as files.

  • Fergus API rate limit of 100 requests per minute per company affects migration throughput

    The Fergus JSON-RPC API enforces a 100 requests per minute limit shared across all endpoints per company account. The rate limit is tracked via x-ratelimit-remaining and x-ratelimit-reset response headers, with retry-after provided on 429 responses. FlitStack AI implements exponential backoff and request batching to stay within this limit during the extraction phase. For large Fergus databases (50,000+ records), the extraction phase extends proportionally — plan for 2–3 additional days of extraction time compared to a platform without rate limiting. Nutshell's API on the ingestion side does not impose comparable constraints for migration-user writes.

  • Fergus contact-to-company relationship is implicit in job context, not a formal N:N association

    Fergus does not have a formal contact-to-company association model. A Fergus contact may appear on multiple jobs at different companies, but there is no standalone link table recording which contacts belong to which companies. In Nutshell, every Person must belong to at least one Company via the Person → Company link. FlitStack AI resolves this by extracting unique company names from Fergus job contexts, deduplicating them, creating Nutshell Company records first, then linking each Person to the primary company derived from their job history. Secondary company associations are preserved as a custom text field (Other_Companies__c) on the Person record.

  • Fergus Pricing Tiers map to a single Nutshell custom pick-list — discount rates require a companion custom field

    Fergus Pricing Tiers are named discount tiers assigned per customer that control material markups across all jobs. Nutshell has no pricing tier object and no pricing-rule engine. FlitStack AI creates a Customer_Tier__c custom pick-list field on the Nutshell Person record, mapping each Fergus tier name to a Nutshell pick-list value. The tier-level discount percentage is stored separately in a Tier_Discount_Rate__c custom number field. If your team uses tier-based pricing rules in Fergus quotes (e.g., auto-apply tier discount to line items), those rules have no Nutshell equivalent and must be rebuilt as Nutshell workflow logic or handled manually during quote creation.

Migration approach

Six steps for a successful Fergus to Nutshell data migration

  1. Full data audit and Fergus schema extraction

    FlitStack AI connects to your Fergus account via API read access and inventories all objects: contacts, companies, jobs (with phase history), quotes, invoices, pricing tiers, line items, and custom_attributes. We document the full field inventory including Fergus snake_case API names, pick-list values, and any custom_attributes on each object. This audit identifies which objects have direct Nutshell equivalents (contacts, companies, activities) and which require custom field creation (jobs, quotes, invoices, pricing tiers). You receive an audit report before any migration work begins.

  2. Pre-create Nutshell custom fields and schema

    Before any data is loaded, FlitStack creates all required custom fields in Nutshell based on the audit findings. For each job field, we create a custom field on the Person object; for each quote and invoice field, we create matching custom fields; for pricing tiers, we create Customer_Tier__c and Tier_Discount_Rate__c. Fergus pick-list values are mapped to Nutshell pick-list options during this phase. We deliver a Nutshell setup checklist so your admin can pre-create fields or review the plan before we proceed.

  3. Owner resolution and user matching

    Fergus owner IDs on jobs, quotes, and contacts are matched to Nutshell Users by email address. FlitStack generates a pre-migration owner report listing every unique owner email in Fergus and its matched Nutshell User status. Your team either creates missing Nutshell users or assigns a fallback owner before the migration run. No record lands in Nutshell without a resolved OwnerId. Contacts without a resolvable owner are flagged and assigned to the designated fallback owner.

  4. Sample migration with field-level diff

    A representative slice of data — typically 100–500 records spanning contacts, companies, jobs, quotes, and activities — is migrated first. FlitStack generates a field-level diff showing every source value and its destination custom field mapping. You can verify quote amount mapping, job phase history serialization, pricing tier pick-list values, and owner resolution before the full run. You approve the sample results or request mapping adjustments before we proceed to full migration.

  5. Full migration with delta-pickup and rollback

    The full dataset loads into Nutshell using the validated mappings. A delta-pickup window (24–48 hours) captures any records created or modified in Fergus during the cutover window. FlitStack maintains an audit log of every record created, updated, or skipped. If reconciliation fails — record counts don't match or data integrity checks reveal issues — one-click rollback reverts the Nutshell environment to its pre-migration state so you can investigate and re-run.

Platform deep dives

Context on both ends of the pair

Fergus logo

Fergus

Source

Strengths

  • Job lifecycle management from quote through invoice in a single platform
  • Customer-specific pricing tiers for trade businesses with varied customer rate structures
  • Accounting integrations with Xero and QuickBooks Online that sync invoices and payments
  • Trade supplier integration for automated material pricing during quoting
  • Mobile-capable job scheduling with staff visibility and task assignment

Weaknesses

  • Limited reporting and analytics depth compared to enterprise FSM platforms
  • Navigation and UI friction when editing invoices or changing material margins
  • API documentation is sparse with no publicly documented bulk export endpoint
  • Smaller ecosystem of third-party integrations compared to ServiceTitan or Simpro
  • No published migration tooling or export assistant within the product
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 Fergus 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

    Fergus: 100 requests per minute per company, shared across all endpoints.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Fergus-to-Nutshell migrations complete in 48–72 hours of clock time for under 10,000 total records (contacts, companies, jobs, quotes, invoices). Larger setups with 100,000+ records or complex quote/invoice structures requiring extensive custom field reconstruction extend to 5–10 days. The Fergus API rate limit (100 req/min) is the primary throughput constraint on the extraction side; Nutshell's ingestion side does not impose comparable limits for migration writes. Pre-creating Nutshell custom fields before the migration run is the longest planning step for teams with many custom fields.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Fergus.
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