CRM migration
Field-level mapping, validation, and rollback between Fergus and Nutshell. We move data and schema; workflows are rebuilt natively in Nutshell.
Fergus
Source
Nutshell
Destination
Compatibility
12 of 14
objects map 1:1 between Fergus and Nutshell.
Complexity
BStandard
Timeline
48–72 hours
Overview
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.
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 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)
Nutshell
Person (Nutshell)
1:1Fergus 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)
Nutshell
Company (Nutshell)
1:1Fergus 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
Nutshell
Person → Company link (primary)
many:1Fergus 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)
Nutshell
Custom fields on Person record (Nutshell)
1:1Fergus 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)
Nutshell
Custom field: Job_Phase_History__c (Nutshell)
1:1Fergus 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)
Nutshell
Custom fields on Person (Nutshell)
1:1Fergus 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)
Nutshell
Custom fields on Person (Nutshell)
1:1Fergus 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)
Nutshell
Custom pick-list field: Customer_Tier__c (Nutshell)
1:1Fergus 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)
Nutshell
Custom fields on Person (Nutshell)
many:1Fergus 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)
Nutshell
Task (Nutshell)
1:1Fergus 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)
Nutshell
User (Nutshell)
1:1Fergus 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)
Nutshell
Custom field (Nutshell, per object)
1:1Fergus 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)
Nutshell
None — rebuild required
1:1Fergus 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)
Nutshell
Attachment on Person record (Nutshell)
1:1Fergus 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.
| Fergus | Nutshell | Compatibility | |
|---|---|---|---|
| Contact (Fergus) | Person (Nutshell)1:1 | Fully supported | |
| Company (Fergus) | Company (Nutshell)1:1 | Fully supported | |
| Person → Company association | Person → Company link (primary)many:1 | Fully supported | |
| Job (Fergus) | Custom fields on Person record (Nutshell)1:1 | Fully supported | |
| Job Phase (Fergus) | Custom field: Job_Phase_History__c (Nutshell)1:1 | Fully supported | |
| Quote / Estimate (Fergus) | Custom fields on Person (Nutshell)1:1 | Fully supported | |
| Invoice (Fergus) | Custom fields on Person (Nutshell)1:1 | Fully supported | |
| Pricing Tier (Fergus) | Custom pick-list field: Customer_Tier__c (Nutshell)1:1 | Fully supported | |
| Line Item — Materials (Fergus) | Custom fields on Person (Nutshell)many:1 | Fully supported | |
| Activity — Call, Email, Site Visit (Fergus) | Task (Nutshell)1:1 | Fully supported | |
| Owner / User (Fergus) | User (Nutshell)1:1 | Fully supported | |
| Fergus custom_attributes (any object) | Custom field (Nutshell, per object)1:1 | Fully supported | |
| Workflow / Automation (Fergus) | None — rebuild required1:1 | Fully supported | |
| Attachment / File (Fergus) | Attachment on Person record (Nutshell)1: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.
Fergus gotchas
100 req/min API rate limit constrains bulk exports
Customer pricing tier data requires explicit mapping
Quote and invoice warning badges are state-dependent
No documented public schema for custom fields
Job photos and attachments require separate file export
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
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.
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.
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.
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.
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
Fergus
Source
Strengths
Weaknesses
Nutshell
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 2 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 Fergus and Nutshell.
Object compatibility
2 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
Fergus: 100 requests per minute per company, shared across all endpoints.
Data volume sensitivity
Fergus 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 Fergus to Nutshell migration scoping. Not seeing yours? Book a call.
Walk through your Fergus 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 Fergus
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.