CRM migration
Field-level mapping, validation, and rollback between ServiceMax and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
ServiceMax
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
12 of 12
objects map 1:1 between ServiceMax and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
72–96 hours
Overview
ServiceMax is a field service management platform built on Force.com with work orders, dispatch scheduling, technician skills, asset tracking, entitlements, and parts inventory as its core objects. Dynamics 365 Sales is a sales CRM using the Dataverse table model with Accounts, Contacts, Leads, Opportunities, Quotes, Orders, and custom tables. The fundamental mismatch is that ServiceMax models a service execution chain while Dynamics 365 Sales models a revenue pipeline. FlitStack AI migrates the record data that translates directly — accounts, contacts, products, and work order history as activity logs — and maps ServiceMax assets and entitlements to custom Dataverse tables or reference fields on the Account. Scheduling logic, dispatch rules, technician skill matrices, and entitlement/SLA condition trees have no Dynamics 365 Sales native equivalent and must be exported as configuration summaries for your implementation team to rebuild using Power Automate or Dataverse workflows. We use the ServiceMax REST API and the Dataverse Web API for data extraction and loading, with bulk export for large asset hierarchies. The migration carries forward create dates, owner assignments, and work order status history so D365 reports reflect the full service lifecycle.
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.
Source platform
ServiceMax platform overview
Scorecard, SWOT, gotchas, and pricing for ServiceMax.
Destination platform
Microsoft Dynamics 365 Sales platform overview
Scorecard, SWOT, gotchas, and pricing for Microsoft Dynamics 365 Sales .
Data migration guide
The complete Microsoft Dynamics 365 Sales migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Destination checklist
Microsoft Dynamics 365 Sales migration checklist
Pre- and post-cutover tasks for moving onto Microsoft Dynamics 365 Sales .
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a ServiceMax object lands in Microsoft Dynamics 365 Sales , including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
ServiceMax
Account
Microsoft Dynamics 365 Sales
Account
1:1ServiceMax Accounts map directly to Dynamics 365 Accounts. Address fields, phone, industry classification, and annual revenue transfer as standard D365 Account fields. Parent-account hierarchies in ServiceMax map to the D365 Parent Account lookup — the parent must be migrated first and circular references are flagged.
ServiceMax
Contact
Microsoft Dynamics 365 Sales
Contact
1:1ServiceMax Contacts map 1:1 to D365 Contacts. Name, email, phone, mobile phone, title, and address fields transfer directly. Contacts without a primary Account in ServiceMax are attached to a placeholder 'Unassigned Account' in D365 so every Contact has an AccountId lookup.
ServiceMax
Product (Service)
Microsoft Dynamics 365 Sales
Product
1:1ServiceMax Product records (part numbers, descriptions, pricing, and unit of measure) migrate to D365 Product table entries. Product structures — bundles and individual items — map to D365 Product Type fields. Field Service Product types (billable vs. non-billable) are preserved as a custom field on the Product record.
ServiceMax
Installed Base (Asset)
Microsoft Dynamics 365 Sales
Asset (Field Service) or Custom Table
1:1ServiceMax Installed Base records carry the equipment hierarchy, technical attributes, serial numbers, and installation dates. These map to the D365 Field Service Asset table if the Field Service add-on is licensed, or to a custom Dataverse InstalledBase table when only Sales is deployed. Parent-child IB relationships become Asset Parent serial numbers in D365.
ServiceMax
Work Order
Microsoft Dynamics 365 Sales
Custom WorkOrder Table or Case
1:1ServiceMax Work Orders have no direct D365 Sales equivalent. We map them to a custom Dataverse WorkOrder table with fields for WO number, status, priority, scheduled date, actual start/end times, labor hours, and the linked Account and Asset lookups. Work order line items (tasks, parts used) become WorkOrderDetail child records in the custom table.
ServiceMax
Work Order History / Activity Log
Microsoft Dynamics 365 Sales
Custom WorkOrder Table or Notes
1:1ServiceMax logs all work order status transitions, technician check-ins, and field notes as history entries. These migrate as datetime-stamped entries in the custom WorkOrder table's history section, linked by the source Work Order ID so D365 users can audit the full service record from the Account.
ServiceMax
Entitlement
Microsoft Dynamics 365 Sales
Custom Entitlement Table or Account Field
1:1ServiceMax Entitlements define SLA terms, covered assets, and service level timers against the Installed Base. Since D365 Sales has no native entitlement object, we create a custom Dataverse Entitlement table with fields for entitlement name, SLA tier, start/end dates, covered asset reference, and service type. The Account record links to its active entitlements.
ServiceMax
Service Contract / PM Process
Microsoft Dynamics 365 Sales
Custom Contract Table
1:1ServiceMax Preventive Maintenance (PM) processes and Service Contracts define recurring service schedules tied to assets. These migrate as custom Dataverse Contract records with frequency, interval, next due date, and linked Asset references. Recurrence rules are preserved as text fields for the D365 admin to rebuild in Power Automate.
ServiceMax
Technician / Resource
Microsoft Dynamics 365 Sales
User or Custom Resource Table
1:1ServiceMax Technician records carry skills, certifications, work zone, and working hours. If Dynamics 365 Field Service is licensed, Technicians map to Bookable Resources. If only Sales is licensed, we create a custom Dataverse Technician table and preserve skills as a multi-select pick-list so the implementation team can build routing automations in Power Automate.
ServiceMax
Parts / Inventory Location
Microsoft Dynamics 365 Sales
Product or Custom Inventory Table
1:1ServiceMax parts and inventory locations (stockrooms, trucks) describe on-hand quantities and bin locations. These migrate to a custom Dataverse InventoryLocation table linked to Products, with quantity and bin address preserved as reference data — not as transactional inventory management, since D365 Sales has no native inventory ledger.
ServiceMax
Attachment / File
Microsoft Dynamics 365 Sales
SharePoint or Notes Attachment
1:1ServiceMax file attachments on work orders and assets (photos, PDFs, signatures) are downloaded and re-uploaded to the linked D365 Account or custom WorkOrder record's SharePoint document library. The original file name and upload date are preserved in the document metadata.
ServiceMax
Dispatch Console Views / Scheduling Rules
Microsoft Dynamics 365 Sales
No Equivalent
1:1ServiceMax dispatch console configurations, skill-routing rules, and scheduling constraints are configuration items, not data. These cannot be migrated. We export them as JSON configuration files from the ServiceMax Migration Tool so your implementation team can reference the routing logic when building Power Automate or Field Service scheduling automations in D365.
| ServiceMax | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Account | Account1:1 | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| Product (Service) | Product1:1 | Fully supported | |
| Installed Base (Asset) | Asset (Field Service) or Custom Table1:1 | Fully supported | |
| Work Order | Custom WorkOrder Table or Case1:1 | Fully supported | |
| Work Order History / Activity Log | Custom WorkOrder Table or Notes1:1 | Fully supported | |
| Entitlement | Custom Entitlement Table or Account Field1:1 | Fully supported | |
| Service Contract / PM Process | Custom Contract Table1:1 | Fully supported | |
| Technician / Resource | User or Custom Resource Table1:1 | Fully supported | |
| Parts / Inventory Location | Product or Custom Inventory Table1:1 | Fully supported | |
| Attachment / File | SharePoint or Notes Attachment1:1 | Fully supported | |
| Dispatch Console Views / Scheduling Rules | No Equivalent1: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.
ServiceMax gotchas
API call limits reset on a 24-hour rolling window
SFM Transaction and Wizard dependencies create migration loops
Configuration Profile migration excludes Default profiles
Large Technical Attributes configurations slow the Migration Tool UI
Pricing and Billing UI missing from browser mode
Microsoft Dynamics 365 Sales gotchas
Professional tier 15-table custom table limit blocks migrations
October 2024 pricing increase applies at renewal for all customers
Custom fields must be created in the UI before API writes
Power Platform request limits apply to bulk migrations
Activity records orphaned to inactive owners fail silently
Pair-specific challenges
Migration approach
Discover ServiceMax org structure and data volume
FlitStack AI connects to the ServiceMax org via the Force.com REST API and inventories all objects: Account count, Contact count, Installed Base record depth, Work Order total with activity log volume, Entitlement count, and Product catalog size. We also extract a sample of Work Order records to assess field population rates and identify records with missing Account links. The discovery output includes a record-count table and a sample field-map validation so we can confirm the migration scope before scheduling the first export session.
Design custom Dataverse table schema in D365 Sales
For organizations with Dynamics 365 Sales Professional or Enterprise (no Field Service license), FlitStack AI creates the custom Dataverse WorkOrder, Entitlement, and InstalledBase tables before any data loads. We generate the table schema as a Dataverse solution XML file that your D365 admin imports into the target environment. The schema includes all mapped fields, lookup relationships to the Account and Contact tables, and custom option-set values for status and priority fields. This step gates the migration — data cannot land in custom tables that do not yet exist in D365.
Export and stage data with API throttling and delta tagging
We export ServiceMax data in paginated batches using the Force.com REST API with a throttling layer that respects the 5,000 daily call limit. Each export session is timestamped so delta records (created or modified after the initial export cutoff) are identified for the delta-pickup run. Installed Base records export with parent-child linkage intact so the hierarchy can be reconstructed in D365. Entitlement records export with their condition logic captured as JSON metadata. Work order activity logs are bulk-exported separately and threaded by source Work Order ID.
Resolve ServiceMax technician and owner records to D365 users
ServiceMax Technician and Owner records are matched to D365 user accounts by email address. Any technician with an email not found in the D365 user directory is flagged and assigned to a fallback D365 user designated by your admin. Skill matrices on technician records are preserved as text fields in the custom WorkOrder or BookableResource table so the routing logic can be referenced when Power Automate booking flows are built. Owner resolution must complete before work order records load so every WorkOrder has a valid OwnerId in D365.
Run sample migration with field-level diff
A representative sample — typically 200–500 records covering accounts, contacts, work orders, assets, and entitlements — migrates to D365 first. We generate a field-level diff report showing source value, transformed value, and D365 target field for every mapped column. The diff validates that entitlement SLA tiers map correctly to the custom pick-list, that parent IB records land before child records, and that the WorkOrder Account lookup resolves via email match. Your team reviews the diff and approves the field mapping before the full migration commits.
Execute full migration with delta-pickup cutover
The full migration runs across all staged objects in dependency order: Accounts and Products first, then Contacts (with AccountId resolution), then Installed Base assets (respecting parent hierarchy), then Work Orders linked to Accounts and Assets, then Entitlements linked to Accounts and Assets. A delta-pickup window of 24–48 hours captures any records modified in ServiceMax during the cutover period. All operations are logged to an audit table in D365, and one-click rollback is available for 72 hours post-go-live if reconciliation reveals mapping gaps.
Platform deep dives
ServiceMax
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between ServiceMax and Microsoft Dynamics 365 Sales .
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across ServiceMax and Microsoft Dynamics 365 Sales .
Object compatibility
All 8 core objects map 1:1 between ServiceMax and Microsoft Dynamics 365 Sales .
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
ServiceMax: Salesforce API limits apply—reported ~5,000 API calls per org per 24-hour rolling window, with per-application limits within that.
Data volume sensitivity
ServiceMax 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 ServiceMax to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your ServiceMax to Microsoft Dynamics 365 Sales migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave ServiceMax
Other ways to arrive at Microsoft Dynamics 365 Sales
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.