CRM migration
Field-level mapping, validation, and rollback between Sercom and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
Sercom
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
10 of 11
objects map 1:1 between Sercom and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
48–96 hours
Overview
Sercom operates a unified field-service-management object model where WorkOrders, Locations, Assets, and Activities live in a flat relationship graph. Dynamics 365 Sales uses a modular Dataverse-backed schema with strict parent–child relationships: Contacts require an AccountId lookup, WorkOrders resolve to either Opportunity, Incident (case), or a custom FSM table, and Assets require an AccountId before they can be created. The migration must reconstruct the Account hierarchy from Sercom's customer-level records, reclassify WorkOrder types, and execute value-by-value mapping for status and priority pick-lists. FlitStack AI sequences the migration so Accounts land first, Contacts second, Locations and Assets third, and WorkOrders last — with foreign-key resolution at every stage. We surface the custom-field inventory and FSM data volume before the migration runs so your admin can decide whether Dynamics 365 Sales Professional (15 custom-table ceiling) or Enterprise is the right destination tier, and whether Dynamics 365 Field Service licensing is warranted. The migration uses Sercom's API for record export and the Dynamics 365 Web API for data load, with a 24–48 hour delta-pickup window capturing any in-flight changes during cutover. Activity history, notes, and file attachments migrate; workflows, scheduling rules, and automation logic must be rebuilt in Power Automate or Dynamics 365 Field Service.
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
Sercom platform overview
Scorecard, SWOT, gotchas, and pricing for Sercom.
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 Sercom 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.
Sercom
Contact
Microsoft Dynamics 365 Sales
Contact
1:1Sercom contact records map 1:1 to Dynamics 365 Contacts. FlitStack AI resolves the required AccountId lookup by first identifying unique customer values across all Sercom records and building the Account list before Contacts load. Unresolved contacts attach to a default placeholder Account.
Sercom
Company / Customer
Microsoft Dynamics 365 Sales
Account
1:1Sercom company and customer records map to Dynamics 365 Accounts. FlitStack deduplicates by customer name and domain, then assigns a unique AccountId. Parent–child company hierarchies in Sercom map to the Account.ParentId lookup if available; otherwise they flatten to sibling accounts.
Sercom
WorkOrder
Microsoft Dynamics 365 Sales
Incident (Case) or Opportunity
1:1Sercom WorkOrders are split by type: reactive service tickets map to Dynamics 365 Incidents (cases) using the Incident table with CustomerId = AccountId and Title = WorkOrder description. Scheduled or project-based WorkOrders with revenue amounts map to Opportunity. Your admin decides the split criteria before migration validates.
Sercom
WorkOrder.status
Microsoft Dynamics 365 Sales
Incident.Status or Opportunity.StateCode
1:1Each Sercom WorkOrder status value — including Open, In Progress, On Hold, Closed, and Cancelled — requires explicit mapping to its corresponding Dynamics 365 option-set integer. FlitStack generates a status translation table during discovery that enumerates every unique Sercom status value and its target integer. Your admin reviews and approves the translation table before migration commits to ensure status transitions in Dynamics 365 reflect the original Sercom state correctly.
Sercom
WorkOrder.priority
Microsoft Dynamics 365 Sales
Incident.Priority or custom Priority field
1:1Sercom priority levels — Low, Medium, High, and Critical — map to Dynamics 365 priority option-set values using a direct translation. Custom priority labels defined in Sercom require a custom priority field in Dynamics 365 with explicit value-by-value translation for each unique label. FlitStack surfaces the complete Sercom priority inventory during discovery so your admin can determine whether standard mapping suffices or if custom fields are needed to preserve the full priority taxonomy.
Sercom
WorkOrder.owner
Microsoft Dynamics 365 Sales
Incident.OwnerId or Opportunity.OwnerId
1:1Sercom technician or assignee information on a WorkOrder resolves by matching the email address against Dynamics 365 users. FlitStack performs the email lookup during migration and flags any owners that cannot be matched to an existing Dynamics user. Your team either creates a corresponding Dynamics 365 user before migration runs or assigns those WorkOrders to a fallback queue for manual routing after cutover.
Sercom
Location
Microsoft Dynamics 365 Sales
Account (type=Location) or Address fields on Account
many:1Sercom Locations can become separate Account records with Account.AccountType = 'Location', or their address fields can merge into the parent Customer Account. FlitStack surfaces both options and applies your chosen strategy during migration: if N:1 relationship is used, WorkOrder address fields cross-reference the Location AccountId.
Sercom
Asset
Microsoft Dynamics 365 Sales
Asset (Dynamics 365 Field Service) or Custom Asset Entity
1:1If Dynamics 365 Field Service is licensed, Sercom Assets map to the native Asset table with AccountId = parent customer Account. Without Field Service, Assets require a custom Asset table (subject to the 15-table ceiling in Sales Professional) or a custom entity on the Account with serial number, product name, and installed date as custom columns.
Sercom
Product / Service
Microsoft Dynamics 365 Sales
Product
1:1Sercom products and service types map to the Dynamics 365 Product table using product name as the primary match key. Products with inventory tracking in Sercom require the Product inventory flag to be set in Dynamics if inventory management is enabled; otherwise they function as non-inventoried items.
Sercom
Activity History
Microsoft Dynamics 365 Sales
Task / Email / Phone Call / Appointment
1:1Sercom field visit logs, service notes, and technician check-ins map to Dynamics 365 Activities: site visits map to Appointments, phone call records to Phone Calls, and general notes to Tasks. Original timestamps and technician owners are preserved. Attachments on activities re-upload to Dynamics 365 Notes or SharePoint, whichever your organization configures.
Sercom
WorkOrder.custom_fields
Microsoft Dynamics 365 Sales
Custom columns on Incident, Opportunity, or Account
1:1Sercom custom fields on WorkOrders migrate as custom columns on the target Dynamics 365 table (Incident for reactive tickets, Opportunity for project WorkOrders). FlitStack creates each custom column in Dataverse before the migration load. Note: if the total custom-column count across all tables exceeds 15 in a Sales Professional destination, Enterprise tier or custom-entity consolidation is required.
| Sercom | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Contact | Contact1:1 | Fully supported | |
| Company / Customer | Account1:1 | Fully supported | |
| WorkOrder | Incident (Case) or Opportunity1:1 | Fully supported | |
| WorkOrder.status | Incident.Status or Opportunity.StateCode1:1 | Fully supported | |
| WorkOrder.priority | Incident.Priority or custom Priority field1:1 | Fully supported | |
| WorkOrder.owner | Incident.OwnerId or Opportunity.OwnerId1:1 | Fully supported | |
| Location | Account (type=Location) or Address fields on Accountmany:1 | Fully supported | |
| Asset | Asset (Dynamics 365 Field Service) or Custom Asset Entity1:1 | Fully supported | |
| Product / Service | Product1:1 | Fully supported | |
| Activity History | Task / Email / Phone Call / Appointment1:1 | Fully supported | |
| WorkOrder.custom_fields | Custom columns on Incident, Opportunity, or Account1: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.
Sercom gotchas
No public Sercom migration documentation or API reference
Custom field schema is entirely tenant-defined
Historical Work Order records may lack referential integrity
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 Sercom schema and generate the translation map
FlitStack AI authenticates to Sercom using read-only API credentials and exports the complete object inventory — WorkOrders, Locations, Assets, Products, Contacts, and all custom fields. It enumerates every unique pick-list value across status and priority fields, counts the total custom fields per object, and estimates the custom-table count for the Dynamics 365 destination. The discovery report is shared with your admin for the Account-vs-Location strategy decision, the Asset-vs-custom-entity decision, and the WorkOrder classification (Incident vs. Opportunity) criteria.
Build and validate the Dynamics 365 destination schema
Before any data loads, FlitStack creates the custom columns and custom tables required in Dataverse based on the discovery output: custom fields on Incident, Account, Contact, and the custom Asset entity if needed. It validates that the total custom-table count does not exceed the 15-table ceiling for Sales Professional or flags the Enterprise upgrade requirement. Owner resolution runs against your Dynamics 365 user directory — unmatched technician emails are flagged for queue assignment before the migration begins.
Sequence and load data respecting foreign-key dependencies
Accounts load first. Contacts load second with AccountId lookups resolved. Assets load third only after all Accounts are committed (required by Dynamics 365 AccountId constraint). WorkOrders load last with AssetId and AccountId lookups resolved. FlitStack handles the Account-vs-Location strategy by creating separate Location-type Accounts or merging address fields per your chosen configuration. Pick-list value translation tables are applied at load time — no raw Sercom text values land in Dynamics 365 option-set fields.
Run sample migration with field-level diff before full commit
A representative slice — typically 200–500 records spanning Contacts, Accounts, WorkOrders, Locations, and Assets — migrates first. FlitStack generates a field-level diff between the Sercom source values and the Dynamics 365 destination values for every mapped field. Your admin verifies that status and priority pick-list translations are correct, that AccountId lookups resolved correctly for Assets, and that the Location strategy applied consistently. Only after the diff is approved does the full migration proceed.
Execute full migration with delta-pickup and rollback capability
The full migration runs against Dynamics 365 using the Web API. A delta-pickup window of 24–48 hours captures any WorkOrders created or modified in Sercom during the cutover. FlitStack's audit log records every operation: records loaded, records skipped, translation decisions made. If reconciliation fails — missing AccountIds, pick-list value gaps, or foreign-key violations — one-click rollback reverts the Dynamics 365 environment to its pre-migration state. Your team continues working in Sercom throughout the window with no disruption.
Platform deep dives
Sercom
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 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 Sercom and Microsoft Dynamics 365 Sales .
Object compatibility
1 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
Sercom: Not publicly documented — typical SaaS limits assumed and confirmed during scoping.
Data volume sensitivity
Sercom 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 Sercom to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your Sercom 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 Sercom
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.