CRM migration

Migrate from Salesforce Field Service to Freshsales

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

Salesforce Field Service logo

Salesforce Field Service

Source

Freshsales

Destination

Freshsales logo

Compatibility

100%

15 of 15

objects map 1:1 between Salesforce Field Service and Freshsales.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Salesforce Field Service organizes field operations around Work Order, Service Appointment, Work Order Line Item, Skill, Service Territory, and Asset objects with Salesforce's standard CRM objects (Account, Contact, Opportunity) providing the customer and account context. The platform uses Flow Builder for scheduling optimization and assignment rules for technician dispatch. Freshsales models field service data using its core Lead, Contact, Account, and Opportunity objects plus a custom Work_Order__c module that supports custom fields, lookups, and filterable views. No native scheduling optimization, skill-based routing, or Gantt dispatch console exists in Freshsales — those workflows must be rebuilt manually post-migration. FlitStack AI maps Salesforce Work Orders to Freshsales custom Work_Order__c records with custom fields for priority, billing type, and service category. Service Appointments map to Freshsales Tasks with original start and end timestamps. Assets and Entitlements migrate as custom objects. Owner resolution matches Salesforce users to Freshsales users by email. A delta-pickup window (24–48 hours) captures any records modified during the cutover. Sample migration with field-level diff runs before the full commit so you can verify custom field mapping and lookup resolution before data lands in Freshsales.

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

Salesforce Field Service logo

Salesforce Field Service

What's pushing teams away

  • Pricing model accumulates hidden costs—storage overages at $125/GB, API throttling during high-volume periods, and $2 per Agentforce conversation add up beyond the base seat license.
  • Complexity of inherited implementations makes configuration tangles difficult to unwind, and lack of clear documentation makes it hard for new teams to understand what the system is actually doing.
  • Scheduling limits create friction at scale—250 records per Enhanced Scheduling optimization batch is insufficient for large service operations without additional tooling.
  • Integration depth becomes a dependency trap—organizations deeply embedded in Salesforce Field Service find switching costs prohibitively high even when frustrated with cost or complexity.

Choosing

Freshsales logo

Freshsales

What's pulling them in

  • Lowest barrier to entry among major CRMs — the free tier supports up to 3 users and includes core CRM functionality before committing to per-seat pricing.
  • Built-in chat, email, and phone reduce reliance on third-party integrations for basic sales communication and contact management.
  • Freddy AI contact scoring and deal insights are included on Pro plans at a lower price than comparable HubSpot tiers.
  • Kanban pipeline views across Contacts, Accounts, and Deals provide visual deal management without requiring custom configuration.
  • Integration with the broader Freshworks ecosystem (Freshdesk, Freshchat, Freshservice) reduces tool sprawl for teams already using Freshworks.

Object mapping

How Salesforce Field Service objects map to Freshsales

Each row shows how a Salesforce Field Service 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.

Salesforce Field Service

Account

maps to

Freshsales

Account

1:1
Fully supported

Direct 1:1 map. Salesforce Accounts migrate to Freshsales Accounts with name, industry, website, and billing address preserved. Parent-child account hierarchies transfer via Freshsales parent_account_id lookup. Multi-address accounts use the primary billing address as the default. During migration, we preserve any custom account types and territory associations as custom fields to maintain reporting continuity after go‑live.

Salesforce Field Service

Contact

maps to

Freshsales

Contact

1:1
Fully supported

Direct map. Salesforce Contacts move to Freshsales Contacts with all standard fields. Owner resolution matches Contact owner email against Freshsales user email — unmatched owners flagged for fallback assignment before migration commits. Custom contact roles, such as primary technician or site manager, are stored in a custom picklist field to replicate Salesforce contact‑type behavior.

Salesforce Field Service

Lead

maps to

Freshsales

Lead

1:1
Fully supported

Direct map. Salesforce Leads (for prospects not yet assigned to field technicians) migrate to Freshsales Leads. Lead status pick-list values are mapped value-by-value to Freshsales lead_status field options. Any custom lead sources or industry‑specific classifications are transferred as custom picklist fields to preserve segmentation logic after migration.

Salesforce Field Service

Opportunity

maps to

Freshsales

Deal

1:1
Fully supported

Salesforce Opportunities map to Freshsales Deals. Pipeline stage names are mapped value-by-value to Freshsales deal stage options. Close date, amount, probability, and owner transfer directly. Record type context from Salesforce requires pre-mapping if multiple sales processes exist. Opportunity products and line items are represented as custom deal fields or related custom objects, ensuring that complex pricing structures are not lost during the transition.

Salesforce Field Service

Work Order

maps to

Freshsales

Work_Order__c (custom object)

1:1
Fully supported

Salesforce Work Order has no native Freshsales equivalent. We create a custom Work_Order__c object in Freshsales with custom fields for Subject, Description, Status, Priority, Service Type, Billing Type, Scheduled Start, Scheduled End, and Work Order Number. The Salesforce Work Order ID is preserved as Source_System_ID__c for delta-run de-duplication.

Salesforce Field Service

Work Order Line Item

maps to

Freshsales

Work_Order_Line_Item__c (custom object)

1:1
Fully supported

Work Order Line Items map to a custom Work_Order_Line_Item__c object with a lookup relationship to Work_Order__c. Each line item carries its own description, quantity, unit price, and line item type from the source. Line item sequence and sort order are preserved as custom number fields.

Salesforce Field Service

Service Appointment

maps to

Freshsales

Task

1:1
Fully supported

Service Appointments carry scheduling data (earliest start, due date, travel time, actual duration) that does not fit cleanly into Freshsales Tasks. We map Subject, Status, Scheduled Start/End, and actual start/end timestamps to Freshsales Tasks. Scheduling optimization data (Gantt position, travel estimates) is written to custom fields since no native equivalent exists.

Salesforce Field Service

Skill

maps to

Freshsales

Skill__c (custom object)

1:1
Fully supported

Salesforce Skill objects define technician certifications and competency levels. We create a custom Skill__c object in Freshsales and link it to Contact records via a many-to-many junction object (Contact_Skill__c) to preserve the proficiency rating and certification expiry date from the source.

Salesforce Field Service

Skill Requirement

maps to

Freshsales

Skill_Requirement__c (custom object)

1:1
Fully supported

Skill Requirements on Work Orders specify required skills for a job. These map to a custom Skill_Requirement__c object with a lookup to both Work_Order__c and Skill__c. Skill level required and whether it is mandatory or preferred transfers as custom pick-list and checkbox fields.

Salesforce Field Service

Service Territory

maps to

Freshsales

Service_Territory__c (custom object)

1:1
Fully supported

Salesforce Service Territory defines geographic dispatch zones with operating hours. We create a custom Service_Territory__c object and store the operating hours as a custom JSON or multi-line text field since Freshsales does not have a native scheduling calendar object. Territory members (technicians assigned to the territory) link via a junction object.

Salesforce Field Service

Asset

maps to

Freshsales

Asset__c (custom object)

1:1
Fully supported

Salesforce Assets track customer equipment under service contracts. We map them to a custom Asset__c object with fields for Name, Product, Serial Number, Status, Install Date, and Account lookup. Asset Relationships (replacements and upgrades) migrate as separate custom records with a parent-child lookup.

Salesforce Field Service

Entitlement

maps to

Freshsales

Entitlement__c (custom object)

1:1
Fully supported

Entitlements define service contract terms and SLA levels. We create a custom Entitlement__c object linked to both Account and Asset, storing Service Contract name, start/end dates, and SLA terms as custom fields. Contract Line Items from Salesforce map to a related custom object for line-level billing terms.

Salesforce Field Service

Task / Event (standard CRM)

maps to

Freshsales

Task / Event

1:1
Fully supported

Standard Salesforce Tasks and Events (not Service Appointments) map directly to Freshsales Tasks and Events with subject, status, due date, and owner preserved. Recurring task patterns are not carried — those must be rebuilt in Freshsales. If your organization uses custom task types or priority flags, we store these as custom fields on the Freshsales Task object to retain classification after migration.

Salesforce Field Service

Attachment / Salesforce Files

maps to

Freshsales

Freshsales File Attachments

1:1
Fully supported

Salesforce Files and Attachments on Work Orders, Accounts, and Contacts are downloaded and re-uploaded to Freshsales as file attachments linked to the corresponding migrated records. File size limits of Freshsales per plan apply. During the upload process, we preserve original file metadata such as created date and author, and we flag any files that exceed the target plan's size cap for manual handling.

Salesforce Field Service

Flow Builder / Assignment Rules

maps to

Freshsales

No equivalent

1:1
Fully supported

Salesforce Flow Builder automations and Assignment Rules govern technician dispatch and routing logic. These have no Freshsales equivalent and must be rebuilt manually using Freshsales workflow rules or an external scheduling tool. We export Flow definitions as JSON for the rebuild reference.

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.

Salesforce Field Service logo

Salesforce Field Service gotchas

High

250-record batch limit for Enhanced Scheduling optimization

High

Process Builder workflows do not migrate—must be rebuilt in Flow Builder

High

API rate limits vary by edition and are easy to exhaust during bulk migration

Medium

Storage overages at $125/GB inflate migration data costs

Medium

Custom fields and lookups require explicit field-level mapping

Freshsales logo

Freshsales gotchas

Medium

Freddy AI is Pro-tier only despite heavy marketing

High

Post-migration emails and sequences are disabled

Medium

Bot session credits are a one-time 500-session allocation

Medium

Phone credits charged per minute with no cap

Low

File storage limits scale with plan tier

Pair-specific challenges

  • Freshsales has no native field service scheduling model

    Salesforce Field Service Work Orders and Service Appointments carry scheduling optimization data (Gantt positions, travel estimates, SLA windows, appointment booking rules) that exists nowhere in Freshsales natively. When migrating Service Appointments to Freshsales Tasks, FlitStack preserves the original scheduling timestamps and appointment status, but the Enhanced Scheduling Optimization engine, dispatch Gantt, and assignment rule logic must be rebuilt manually in Freshsales workflows or an external scheduling tool. Planning this gap during migration scoping prevents surprises at go-live.

  • Freshsales custom field limits vary by plan and may constrain FSL schema transfer

    Salesforce Field Service implementations with extensive custom objects (Skill Requirements, Appointment Dependencies, FSL custom fields on Work Order) can accumulate 50–150+ custom fields. Freshsales Growth caps custom fields at 10 per module, Garden at 100, Estate at 300, and custom objects top out at 100 total fields. If the source FSL implementation exceeds these limits, FlitStack identifies the overflow fields and proposes a consolidation plan — merging related pick-lists or storing overflow as serialized JSON in a notes field — before migration data mapping is finalized.

  • Freshsales API rate limits throttle large migration batches

    Freshsales API enforces account-level rate limits of 1,000 requests per hour on Growth, 2,000 on Garden, and 5,000 on Estate/Forest. A large migration with 100,000+ Work Orders, line items, and Service Appointments will exceed these limits if pushed in a single batch. FlitStack implements exponential backoff and batch-size throttling against the Freshsales API, distributing record commits across a longer window while still meeting the timeline. This adds 4–8 hours to the migration window for large datasets but prevents HTTP 429 errors and account-level throttling.

  • Skill and certification data requires custom object schema pre-build in Freshsales

    Salesforce Skill, Skill Requirement, and Credential objects store technician certifications, proficiency ratings, and expiry dates that link Work Orders to qualified technicians. Freshsales has no native skill object. Before migration, the Skill__c and Contact_Skill__c junction objects must be created in Freshsales, and the certification fields must be designed as custom pick-lists or multi-select fields. FlitStack generates a schema setup plan for these custom objects so Freshsales administrators can create them before data migration begins.

  • Work Order to Deal linking requires manual decision on opportunity association

    In Salesforce Field Service, Work Orders can be linked to an Opportunity (parent sales deal) via the ParentRecordId field. Freshsales has no equivalent polymorphic lookup. FlitStack maps Work_Order__c to a custom Deal_Work_Order_Link__c junction object that stores the relationship between the migrated Deal and Work Order records. This preserves the audit trail between field service work and the originating sales opportunity, but the junction object must be created in Freshsales schema pre-build and the association logic approved before migration mapping is finalized.

Migration approach

Six steps for a successful Salesforce Field Service to Freshsales data migration

  1. Audit source FSL schema and plan Freshsales custom object structure

    FlitStack exports a full schema manifest from Salesforce Field Service covering Work Order, Work Order Line Item, Service Appointment, Skill, Skill Requirement, Service Territory, Asset, and Entitlement objects — including all custom fields, pick-list values, and lookup relationships. We cross-reference this against Freshsales plan-tier custom field limits and generate a schema setup plan specifying which custom objects to create, their fields, and which pick-lists need value-mapping tables. Your Freshsales admin creates the schema before data migration begins.

  2. Resolve owners and user mappings by email

    Salesforce Field Service technicians, dispatchers, and account owners are matched against Freshsales users by email address. Unresolved owners (email addresses not present in Freshsales) are flagged before migration — your team either creates the Freshsales user accounts first or assigns records to a fallback owner. No Work Order or Service Appointment lands in Freshsales without a valid owner assignment. This owner resolution step ensures that audit trails and reporting remain consistent after migration.

  3. Migrate core CRM objects before field service objects

    Salesforce requires Accounts before Contacts (via account_id lookups) and Contacts before Work Orders (via asset and service territory lookups). We sequence the migration: Accounts and Contacts first, then Leads and Deals, then Work Orders and Service Appointments, then Assets and Entitlements. This ensures foreign key resolution across the data model and prevents orphaned Work Order records in Freshsales. The sequence also accounts for dependency chains such as Work Order Line Items needing their parent Work Orders present, and Service Appointments requiring both the linked Work Order and assigned technician to be loaded first.

  4. Run a sample migration with field-level diff on Work Orders and Service Appointments

    A representative slice of 100–300 records — covering at least one Work Order with line items, a Service Appointment, a Skill Requirement, and an Asset — migrates to Freshsales first. FlitStack generates a field-level diff showing the source Salesforce value, the mapped Freshsales value, and any fields dropped due to plan-tier limits or value-mapping gaps. You review the diff, approve the mapping, and request adjustments before the full migration run commits.

  5. Execute full migration with delta-pickup window and audit log

    Full data migration runs against Freshsales API with batch throttling to respect rate limits. During the cutover window (typically 24–48 hours), your team continues creating and modifying Work Orders in Salesforce Field Service. FlitStack runs a delta pickup at the end of the window to capture in-flight records and changes. Every operation is logged in an audit trail, and one-click rollback to the pre-migration snapshot is available if reconciliation identifies data integrity issues.

Platform deep dives

Context on both ends of the pair

Salesforce Field Service logo

Salesforce Field Service

Source

Strengths

  • Real-time technician location tracking and dispatch console with Gantt visualization for multi-technician schedule management.
  • Skill-based routing matches technician certifications to Work Order requirements automatically during scheduling optimization.
  • Deep integration with standard Salesforce CRM objects preserves context across field service, sales, and customer service teams.
  • Mobile app with offline capability lets field technicians update status, log parts, and capture signatures in low-connectivity environments.

Weaknesses

  • Per-seat licensing plus storage overages, API throttling charges, and Agentforce conversation fees create a total cost that significantly exceeds the base license price.
  • Inherited implementations with years of customizations, Process Builder flows, and AppExchange add-ons create tangled configurations that are difficult to migrate or audit.
  • API rate limits vary by edition and require careful monitoring—large data migrations can exhaust daily limits or concurrent call budgets mid-transfer.
  • Limited native export tooling means migrations typically require third-party tools, Data Loader configuration, or managed services partners to extract complete data.
Freshsales logo

Freshsales

Destination

Strengths

  • Generous free tier for small teams with core CRM functionality without per-seat costs.
  • All-in-one sales CRM with built-in telephony, chat, and email reducing third-party tool dependency.
  • Freddy AI contact scoring and deal predictions available on Pro tier.
  • Multiple pipeline views with Kanban and list options across all plans.

Weaknesses

  • Reports lack depth compared to competitors like HubSpot, with limited customization options.
  • Integration setup is poorly documented with no clear guides for connecting third-party tools.
  • AI features gated behind $39/user/month Pro tier despite marketing emphasis on Freddy AI.
  • Bot sessions limited to 500 one-time allocation with no monthly refresh.

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 Salesforce Field Service and Freshsales.

  • 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

    Salesforce Field Service: Per-org daily API limit starts at 100,000 requests / 24 hours for Enterprise Edition and scales with licenses purchased. Additional API calls can be purchased in 200-10,000 increments. Bulk API and Bulk API 2.0 share an allocation of 15,000 batch submissions per 24 hours. HTTP 429 returned when rate-limited..

  • Data volume sensitivity

    A

    Salesforce Field Service exposes a bulk API — large-volume migrations stream efficiently.

Estimator

Estimate your Salesforce Field Service to Freshsales 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 Salesforce Field Service to Freshsales data migrations

Answers to the questions buyers ask most during Salesforce Field Service to Freshsales migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Salesforce Field Service to Freshsales migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations complete in 48–72 hours of clock time for under 50,000 records (accounts, contacts, work orders, line items, and appointments). Large implementations with 200,000+ records or extensive custom FSL objects (Skill Requirements, Service Territories, custom fields exceeding 100) extend to 5–10 days. The Freshsales API rate limit on Growth and Garden plans is the primary variable that can extend the data commit window for large datasets.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Salesforce Field Service.
Land in Freshsales, 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