CRM migration

Migrate from Dynamics 365 Field Service to Freshsales

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

Dynamics 365 Field Service logo

Dynamics 365 Field Service

Source

Freshsales

Destination

Freshsales logo

Compatibility

92%

11 of 12

objects map 1:1 between Dynamics 365 Field Service and Freshsales.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Microsoft Dynamics 365 Field Service extends the Dynamics 365 CRM with field-service-specific entities: Work Orders, Bookable Resources, Customer Assets, Service Territories, and Incident Types. These objects model service dispatch, asset tracking, and preventive maintenance scheduling. Freshsales is a sales-focused CRM with standard Lead, Contact, Account, and Deal objects plus custom objects, workflows, and Freddy AI. The migration carries your core CRM data (accounts, contacts, leads, opportunities) and field-service data (work orders, assets, products) into Freshsales's schema. Work Orders map to Deals with a custom status workflow preserving D365's stage values. Bookable Resources resolve to Freshsales users by email. Customer Assets become a custom object linked to accounts. Freshsales has no native resource scheduling or work-order management — those business processes need to be rebuilt using Freshsales workflows, tasks, and custom modules after migration. We use Dynamics 365 Dataverse API and Freshsales REST API to extract and load all records in sequenced order respecting foreign-key dependencies. A 24–48 hour delta pickup window captures in-flight changes during cutover.

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

Dynamics 365 Field Service logo

Dynamics 365 Field Service

What's pushing teams away

  • Implementation requires certified Microsoft partners for anything beyond basic configuration; simple customizations that competitors handle in-house demand developer resources, inflating total cost of ownership.
  • Per-user licensing at $105/month compounds quickly—technicians, dispatchers, supervisors, and parts staff each require seats, and the true headcount often exceeds initial estimates.
  • Performance degrades when Work Order histories grow large; pages load slowly and offline sync timeouts occur in datasets exceeding tens of thousands of records without careful FetchXML tuning.
  • Change management and staff training are underestimated; technicians accustomed to simple mobile tools struggle with the learning curve, leading to low adoption and shadow systems.
  • The platform integrates poorly with non-Microsoft ERPs out of the box; customers using Business Central face custom integration work, and those on other ERP systems must build middleware.

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 Dynamics 365 Field Service objects map to Freshsales

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

Dynamics 365 Field Service

Account

maps to

Freshsales

Account

1:1
Fully supported

D365 Accounts map directly to Freshsales Accounts. Address, phone, industry, employee count, and revenue fields transfer directly. Parent Account hierarchy in D365 maps to Freshsales Parent Account via the same field — circular references are flagged before migration runs. We also map the original owner ID to Owner_Id__c for audit trails and activate duplicate‑detection rules on name and domain to avoid re‑creating records.

Dynamics 365 Field Service

Contact

maps to

Freshsales

Contact

1:1
Fully supported

D365 Contacts map to Freshsales Contacts with all standard fields: name, email, phone, job title, address. D365 allows multiple primary contacts per account; Freshsales enforces one primary contact per record — we preserve the primary designation and surface secondary contacts as Contact relationship records.

Dynamics 365 Field Service

Lead

maps to

Freshsales

Lead

1:1
Fully supported

D365 Leads map 1:1 to Freshsales Leads. Lead status, lead score, source, and owner fields migrate directly. D365 lead scoring model values transfer to Freshsales as a custom numeric field since Freshsales scoring is AI-driven on Pro+ plans only. We also migrate custom lead attributes to Freshsales custom fields, preserving data like product interest and region. The original D365 lead creation timestamp is stored as Created_Date__c for historical reference.

Dynamics 365 Field Service

Opportunity

maps to

Freshsales

Deal

1:1
Fully supported

D365 Opportunities map to Freshsales Deals. Pipeline, stage, amount, close date, probability, and owner transfer directly. D365 opportunity contact roles map to Freshsales Deal Contact associations. Multiple opportunity product lines flatten into Deal Product entries. We also map opportunity fields to Freshsales Deal fields, preserving deal source. Currency values transfer, and the original D365 opportunity creation date is stored as Created_Date__c. Duplicate detection on deal name and account prevents duplicates.

Dynamics 365 Field Service

Work Order

maps to

Freshsales

Deal

1:1
Fully supported

D365 Work Orders map to Freshsales Deals with a custom Work_Order__c checkbox field marking migrated service records. Work Order status maps to a custom pick-list field (Service_Status__c) preserving D365 values: Scheduled, In Progress, Completed, Cancelled, On Hold. Account and Contact links transfer as Deal associations. Service Territory maps to a custom Territory__c field on the Deal.

Dynamics 365 Field Service

Work Order Product

maps to

Freshsales

Deal Product / Product Catalog

many:1
Fully supported

D365 Work Order Products (line items specifying which products are used per work order) merge into Freshsales Deal Products. Each D365 product line becomes a Product Catalog entry with pricing pulled from D365 Price List lines. Unit, quantity, cost, and discount fields transfer as line-item attributes.

Dynamics 365 Field Service

Bookable Resource

maps to

Freshsales

User

1:1
Fully supported

D365 Bookable Resources (technicians, vehicles, equipment) resolve to Freshsales Users by email match. Resource type (User vs. Contact vs. Equipment) is stored as a custom field Resource_Type__c. Unmatched resources are flagged before migration — your team either creates Freshsales users or assigns records to a default owner.

Dynamics 365 Field Service

Customer Asset

maps to

Freshsales

Custom Object: Field_Service_Asset__c

1:1
Fully supported

D365 Customer Assets (installed equipment, serial numbers, warranty records, parent-child hierarchies) have no Freshsales equivalent. We create a custom object Field_Service_Asset__c with fields for Asset Name, Serial Number, Status, Account lookup, Parent Asset lookup, Installation Date, and Warranty Expiry. Hierarchy depth is preserved via self-referential Parent_Asset__c field.

Dynamics 365 Field Service

Incident Type

maps to

Freshsales

Custom Object: Incident_Type__c

1:1
Fully supported

D365 Incident Types define common problem categories with associated tasks, products, and pricing. These become a custom object Incident_Type__c in Freshsales linked to the Product Catalog. Task templates associated with each incident type store as a custom text field for manual rebuild reference.

Dynamics 365 Field Service

Service Territory

maps to

Freshsales

Custom Object: Service_Territory__c

1:1
Fully supported

D365 Service Territories define geographic zones that group Bookable Resources. Freshsales has no native territory object for field service. We create Service_Territory__c with Name, City, State, Zip, and timezone fields. Work Orders reference the territory via Territory__c custom field on the Deal.

Dynamics 365 Field Service

Bookable Resource Booking

maps to

Freshsales

Task / Event

1:1
Fully supported

D365 Bookable Resource Bookings (technician schedule blocks, travel time, break windows) map to Freshsales Events with Type set to 'Field Visit' or 'Travel'. Original booking start/end times, resource assignment, and location transfer. Overlapping bookings on the same day consolidate into daily Event records for cleanliness.

Dynamics 365 Field Service

Agreement / Service Contract

maps to

Freshsales

Deal (renewal tracking)

1:1
Fully supported

D365 Service Agreements and Preventative Maintenance contracts store as a custom Agreement__c custom object linked to the Account. Contract start date, end date, billing frequency, and SLA terms transfer as custom fields. Active/expired status maps to an Agreement_Status__c pick-list. We also preserve contract value as Contract_Value__c and map renewal dates to Renewal_Date__c for alerts. The Account lookup is set to D365 account, and hierarchies are flattened with a Parent_Agreement__c 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.

Dynamics 365 Field Service logo

Dynamics 365 Field Service gotchas

High

Dataverse service protection API limits throttle bulk exports

Medium

Offline profile FetchXML tuning is source-environment-specific

Medium

Project Operations integration has bidirectional sync limitations

Medium

Copilot add-on credits do not migrate and reset at zero

Low

File attachments stored in SharePoint require separate file migration

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

  • Work orders have no native Freshsales equivalent — custom object required for service record integrity

    Dynamics 365 Field Service Work Orders are a distinct entity with sub-components (Work Order Products, Work Order Services, Incident Types, Service Tasks) that reference Accounts, Contacts, Products, and Price Lists simultaneously. Freshsales has no native work order object. We map Work Orders to Deals with a custom Service_Status__c pick-list field and custom fields for work order type, priority, and service territory. However, Freshsales Deals are designed for sales pipelines, not field service dispatch — teams using D365's multi-line work orders with tax calculations and pro-rated pricing will need to configure the Product Catalog and potentially a custom module for service-line tracking. The D365 sub-component model (Work Order → Products → Incident Types) cannot map 1:1 into a flat Deal; we store sub-line data as a JSON blob in a custom field for reference rebuild.

  • Bookable Resource scheduling parameters do not transfer — dispatch logic must be rebuilt

    D365 Field Service Bookable Resources carry scheduling parameters: working hours, travel time, skill categories, territory constraints, and utilization targets. These parameters drive the Schedule Board and Resource Scheduling Optimization engine. Freshsales has no resource scheduling module — Bookable Resource records migrate as User records with a Resource_Type__c custom field, but the scheduling logic (skill-based routing, territory constraints, travel buffers) does not exist in Freshsales. We can export the D365 resource configuration as a reference document for your Freshsales admin to rebuild using Freshsales Workflows and assignment rules, but no automated translation of those rules is possible. Teams relying heavily on automated dispatch should plan for 2–4 weeks of Freshsales workflow configuration post-migration.

  • Customer Asset hierarchies with parent-child relationships require multi-step custom object setup

    D365 Customer Assets support N-level parent-child hierarchies (Equipment → Subcomponents → Warranty Records → Maintenance History). Freshsales has no native asset object. We create a custom object Field_Service_Asset__c with a self-referential Parent_Asset__c lookup field to preserve the hierarchy. However, Freshsales custom objects have display limits — deeply nested hierarchies (5+ levels) may require flattening or grouping by top-level parent asset. We flag hierarchies exceeding three levels during the pre-migration scan and surface them in the migration plan for your review. Asset count also drives custom object record limits on lower Freshsales plans; Enterprise plan is recommended for asset-heavy migrations.

  • D365 Price List hierarchies with tiered pricing do not map directly to Freshsales Product Catalog

    D365 Field Service Price Lists support multi-tier pricing (volume discounts, customer-specific overrides, currency rates, and date-effective pricing). Freshsales Product Catalog supports base pricing and per-user quantity discounts but not multi-tier or date-effective price rules. We migrate the current active price list entries as Product Catalog entries with the base unit price. Volume discount tiers and customer-specific overrides store as a custom Price_Rules__c text field (JSON format) for manual rebuild in Freshsales CPQ. If your organization relies heavily on complex pricing rules, Freshsales CPQ (add-on license) configuration should be scoped as a post-migration task with your Freshsales admin.

  • Work Order to Deal conversion may alter reporting continuity for service KPIs

    D365 Field Service reports track metrics specific to work orders: Mean Time to Repair (MTTR), first-time fix rate, technician utilization, and SLA compliance. Freshsales Deals are sales-cycle metrics (pipeline velocity, win rate, deal age). When work orders migrate as Deals, reports built in Freshsales will show service records in a sales pipeline context, which may not match your historical D365 service KPI definitions. We preserve original D365 work order create dates, completion timestamps, and incident counts as custom fields (Original_WO_Create_Date__c, Work_Order_Completed_Date__c, Incident_Count__c) so your analytics team can build service-specific reports in Freshsales using these fields rather than native deal metrics.

Migration approach

Six steps for a successful Dynamics 365 Field Service to Freshsales data migration

  1. Pre-migration audit: map D365 entities and flag scheduling, asset, and pricing complexity

    We run a structured scan of your Dynamics 365 Field Service instance: account and contact counts, work order volume and type distribution, Bookable Resource headcount, Customer Asset hierarchy depth, and Price List complexity. This scan identifies the custom objects and fields needed in Freshsales, flags asset hierarchies requiring special handling, and surfaces scheduling parameters that cannot migrate automatically. You receive a Migration Readiness Report before any data moves.

  2. Stand up Freshsales custom objects and fields based on migration readiness findings

    Using the Readiness Report, we create the custom objects and fields needed: Field_Service_Asset__c, Service_Territory__c, Incident_Type__c, and Agreement__c custom objects, plus custom fields on the Deal object (Service_Status__c, Work_Order_Type__c, Work_Order__c checkbox, Service_Territory__c, Tax_Amount__c). We also configure field-level security profiles, record type assignments, and pick‑list values to mirror D365 business‑unit segmentation, preserving defaults to reduce post‑migration data entry. Your Freshsales admin reviews the custom field setup plan before it is applied so the schema is aligned with your team's workflow intentions.

  3. Resolve Bookable Resources to Freshsales users by email match

    D365 Bookable Resources are matched to Freshsales users by email address. Resources without a matchable email (equipment resources, generic pool resources) are flagged in the pre-migration report. Your team decides whether to create Freshsales users for those resources or assign their work orders to a fallback owner. During the matching process we also map the D365 resource type (User, Contact, Equipment) to a custom Resource_Type__c field on the Freshsales User record. If no email exists, we write a temporary placeholder and flag the record for manual review. We do not land any record in Freshsales without a confirmed owner.

  4. Sequence migration: Accounts → Contacts → Products → Work Orders → Assets → Bookings

    Freshsales requires Accounts before Contacts and Deals before Activities. We sequence the migration: (1) Accounts and Contacts, (2) Products and Price List entries, (3) Work Orders mapped to Deals, (4) Customer Assets to Field_Service_Asset__c custom object, (5) Bookable Resource Bookings to Events. Foreign-key dependencies resolve in this order so every lookup field in Freshsales has a valid target at insert time.

  5. Run sample migration with field-level diff before full commit

    A representative slice — typically 200–500 records spanning accounts, contacts, work orders, and assets — migrates first. We generate a field-level diff comparing source D365 values against Freshsales target values so you can verify Service_Status__c pick-list mapping, asset hierarchy preservation, and owner resolution. You approve the sample before the full run commits. Any field mapping corrections happen before bulk migration.

  6. Cut over with delta pickup window for in-flight work orders

    The full migration runs against Freshsales. During cutover, your team continues working in D365. A 48-hour delta pickup window captures any work orders modified, created, or completed between the initial extraction and the cutover go-live. Audit log records every operation. One-click rollback is available if reconciliation uncovers missing records or mapping errors. After go-live, your team receives a D365 reference export — a structured JSON file of all migrated D365 entities with original IDs — for any manual verification needed.

Platform deep dives

Context on both ends of the pair

Dynamics 365 Field Service logo

Dynamics 365 Field Service

Source

Strengths

  • Intelligent schedule board with multi-constraint optimization (skills, location, SLA, travel time) reduces manual dispatch effort on large technician fleets.
  • IoT integration via Connected Field Service enables proactive maintenance alerts that auto-create Work Orders before equipment fails.
  • Native mobile app with robust offline mode allows technicians to work disconnected and sync changes when connectivity returns.
  • Deep Dataverse foundation means seamless data sharing with Microsoft Dynamics 365 Sales , Customer Service, and Power Platform apps without middleware.
  • Microsoft's regular release cadence keeps the platform current with AI features, Copilot assistance, and updated compliance certifications.

Weaknesses

  • Per-user licensing at $105/month creates predictable cost inflation as technician headcount grows, with no meaningful volume discounts for large fleets.
  • Implementation and ongoing customization require certified Microsoft partners or developer-staffed IT teams, limiting agility for mid-market organizations.
  • Performance degrades in large datasets without careful FetchXML optimization; offline sync timeouts are common without proactive query tuning.
  • Integration with non-Microsoft ERP systems (SAP, Oracle, NetSuite) requires custom middleware or third-party connectors that add cost and maintenance overhead.
  • Schema changes between release waves can break custom field references, requiring re-validation of data mappings after each major update.
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 Dynamics 365 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

    Dynamics 365 Field Service: Service protection limits enforced per org; specific numeric thresholds are not publicly documented by Microsoft and vary by workload type.

  • Data volume sensitivity

    A

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most D365 Field Service to Freshsales migrations complete in 48–72 hours for under 25,000 records including accounts, contacts, work orders, and assets. Larger setups with 100,000+ records, deep asset hierarchies, or multiple service territories extend to 7–14 days. The pre-migration audit and Freshsales custom-object setup adds 3–5 business days before data moves. The delta pickup window is typically 48 hours during cutover.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Dynamics 365 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