CRM migration
Field-level mapping, validation, and rollback between Fergus and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
Fergus
Source
Freshsales
Destination
Compatibility
12 of 12
objects map 1:1 between Fergus and Freshsales.
Complexity
BStandard
Timeline
72–120 hours
Overview
Fergus is a field service management platform built for trades businesses — managing Clients, Sites, Jobs, Quotes, Invoices, Assets, and Suppliers with scheduling, pricing tiers, and supplier automation. Freshsales is a sales CRM organized around Leads, Contacts, Accounts, Deals (Opportunities), Products, and Campaigns with Freddy AI scoring and lifecycle stages. These are different operational paradigms: Fergus records operational work; Freshsales records sales progress. The migration carries Clients, Sites, Jobs, and Assets into Freshsales as Contacts/Accounts/Deals/Custom Objects. Quotes and Invoices are financial records with no clean CRM equivalent — we preserve them as custom object records or attachments. Fergus does not expose its workflow rules, automation sequences, or custom reporting configurations via API, so these must be rebuilt in Freshsales Flow and Reports after migration. We run the migration against Freshsales REST API with throttling handled at 100 requests per minute to stay within Fergus export limits during delta pickup. Owner resolution maps Fergus user emails to Freshsales users by email match. We deliver a field-level diff before the full run commits so you can verify contact lifecycle routing and deal stage mapping before go-live.
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 Freshsales, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Fergus
Client
Freshsales
Contact
1:1Fergus Client maps to Freshsales Contact. The contact's name, email, phone, and address fields transfer directly. Fergus Clients without an email map but will be flagged for duplicate-checking in Freshsales before insertion. Primary Site address migrates as the Contact address.
Fergus
Client
Freshsales
Account
1:1Fergus Client business name (when the client is a company) maps to a Freshsales Account record created alongside the Contact. If the Client record is a person without a company name, the Account is created from the client's display name for organizational grouping. This is a 1:1 mapping — no automatic account merging unless the business name is an exact duplicate.
Fergus
Site
Freshsales
Account
1:1Fergus Site is a physical location attached to a Client — it has an address, site name, and site-specific notes. Each Site becomes a Freshsales Account record with the site address as the primary address. The original Client-Client relationship is preserved via Account Contact Relationship in Freshsales, so the contact still links to multiple site accounts.
Fergus
Job
Freshsales
Deal (Opportunity)
1:1Fergus Job maps to a Freshsales Deal. Job name, description, status, scheduled date, assigned staff, and total value transfer. Job phases map to Freshsales Deal Activities or notes for historical phase context. Job status (Draft, In Progress, Completed, Invoiced) routes to Freshsales Deal Stage values. Completed Fergus Jobs map to Closed Won; Cancelled jobs to Closed Lost.
Fergus
Job Phase
Freshsales
Deal Activity / Custom Field
1:1Fergus Job Phases (a sub-record of a Job, tracking work stages with start/end dates and completion status) have no direct Freshsales equivalent. Phase names and completion status migrate as a JSON custom field on the Deal or as a note attachment. Phase-by-phase history is preserved but requires Freshsales-side reporting logic to visualize.
Fergus
Quote
Freshsales
Deal Line Item / Custom Object
1:1Fergus Quote is a priced proposal with line items, quantities, and terms. On Freshsales Pro+, Deals support Products and Line Items as the quote equivalent. We map Quote line items to Deal Products with quantity and unit price. Quote status (Sent, Accepted, Rejected) is recorded on the Deal for pipeline tracking. Quotes without a corresponding Job are pre-sale proposals in Freshsales pipeline terms.
Fergus
Invoice
Freshsales
Custom Object: Invoice Record
1:1Fergus Invoice is a financial record with line items, tax, payment status, and allocation. Freshsales has no native invoicing object at the CRM tier. We preserve Invoice data (number, date, total, status, line items) as a Freshsales Custom Object. Invoice PDF attachments are stored as Freshsales Files linked to the custom object. Accounting reconciliation must happen in an integrated accounting tool post-migration.
Fergus
Asset
Freshsales
Custom Object: Field Asset
1:1Fergus Asset tracks equipment, serial numbers, warranty status, and location (site). Freshsales has no standard Asset object at the CRM level. We create a custom object in Freshsales (Pro+ or Enterprise required for custom modules) to hold asset records linked to Account or Contact. Asset location maps to the corresponding Account Site record. Warranty dates and serial numbers migrate as custom fields on the asset record.
Fergus
Supplier
Freshsales
Account (Vendor Type)
1:1Fergus Supplier is a vendor record used in job material sourcing. Freshsales Accounts can serve as vendor records alongside customer accounts. We map Supplier to Account with a vendor-type custom field flag. Supplier contact details transfer as Account contacts. Material links between Jobs and Suppliers require custom field mapping or junction objects in Freshsales.
Fergus
Task / Activity
Freshsales
Task
1:1Fergus Tasks attached to Jobs (internal checklist items) map to Freshsales Tasks linked to the corresponding Deal. Task subject, due date, assignee, and completion status transfer. Fergus task comments map as Task comments or notes in Freshsales. Staff assignment resolves via email match to Freshsales users.
Fergus
Pricing Tier
Freshsales
Custom Field on Contact / Account
1:1Fergus Pricing Tiers let businesses assign customer-specific pricing rates for materials and labor. Freshsales has no native pricing tier concept. We map the assigned tier name to a custom picklist field on Contact and Account. Material-specific pricing from Fergus supplier rules does not transfer — that logic must be rebuilt in Freshsales product pricing or as custom fields.
Fergus
User / Staff
Freshsales
User
1:1Fergus Users (staff members with login access) resolve to Freshsales Users by email match. Active Fergus users get matched; inactive or role-only accounts (no login) are assigned to a fallback Freshsales user or flagged for admin review. Owner resolution is verified before migration runs to prevent orphaned Deal and Contact records.
| Fergus | Freshsales | Compatibility | |
|---|---|---|---|
| Client | Contact1:1 | Fully supported | |
| Client | Account1:1 | Fully supported | |
| Site | Account1:1 | Fully supported | |
| Job | Deal (Opportunity)1:1 | Fully supported | |
| Job Phase | Deal Activity / Custom Field1:1 | Fully supported | |
| Quote | Deal Line Item / Custom Object1:1 | Fully supported | |
| Invoice | Custom Object: Invoice Record1:1 | Fully supported | |
| Asset | Custom Object: Field Asset1:1 | Fully supported | |
| Supplier | Account (Vendor Type)1:1 | Fully supported | |
| Task / Activity | Task1:1 | Fully supported | |
| Pricing Tier | Custom Field on Contact / Account1:1 | Fully supported | |
| User / Staff | User1: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
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
Pair-specific challenges
Migration approach
Audit Fergus data model and map Site-Account relationships
We extract a full data inventory from Fergus via API — client count, site count per client, job history depth, quote and invoice volumes, asset records, and supplier list. This inventory identifies the account explosion risk (multiple Sites per Client) and determines whether you want a single Account-per-customer or separate Account records per site. We deliver a pre-migration Site Strategy document that shows exactly how many Freshsales Account records will be created and how they will link to Contacts, so your team can confirm the account model before any data moves.
Create Freshsales custom objects and custom fields
Before migration runs, we create the Freshsales custom objects (Asset, Invoice) and custom fields (Original_Created_Date__c, Phase_History__c, Pricing_Tier__c, Vendor_Flag__c) required for Fergus data that has no standard Freshsales equivalent. On the Pro or Enterprise plan, custom modules are configured directly. We also configure the Deal Stage mapping table mapping Fergus Job statuses to Freshsales pipeline stages based on your existing pipeline configuration.
Resolve owners and staff by email match
Fergus Users (staff and admin accounts) are matched to Freshsales Users by email address. Unmatched staff accounts are flagged with the specific email that did not resolve. Your team either invites those users to Freshsales first or assigns a fallback owner for their records. No Deal, Contact, or Asset record lands in Freshsales without a valid owner reference. Owner resolution is verified against a test migration slice before the full run.
Run sample migration with field-level diff
We run a representative sample migration — typically 200–500 records spanning Clients, Sites, Jobs, Quotes, and Assets. The field-level diff compares source field values against destination field values side-by-side so you can verify Site-Account mapping, Job-to-Deal stage routing, Quote-to-Deal-Product transformation, and custom field population before the full commit. You sign off on the diff output before we proceed to the full migration.
Execute full migration with delta pickup window
The full migration runs against Freshsales REST API with throttling managed at 100 requests per minute per the Fergus rate limit. A delta pickup window (typically 24–48 hours) captures any new or modified Clients, Sites, or Jobs created in Fergus during the cutover period. After the delta window closes, we run a reconciliation audit comparing record counts and key field totals between Fergus and Freshsales. If reconciliation fails within tolerance, one-click rollback is available. We deliver an audit log of all operations and a post-migration summary report.
Deliver rebuild reference package for automations and reporting
Fergus workflow rules, automation triggers, and supplier reorder logic are not accessible via API. We deliver a configuration export documenting your Fergus workflow triggers, pricing tier rules, and job phase setup as a structured reference document. Your Freshsales admin uses this to rebuild equivalent Workflows in Freshsales (Pro+) or Flow (Enterprise). We do not migrate automations, but we make rebuilding them as straightforward as possible with source-side documentation.
Platform deep dives
Fergus
Source
Strengths
Weaknesses
Freshsales
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 Freshsales.
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 Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your Fergus to Freshsales 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 Freshsales
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.