Migrate your Dynamics 365 Customer Service data
Microsoft's enterprise helpdesk built on Dataverse with unified Omnichannel routing, configurable SLAs, and Copilot Service Agent. The default choice for organisations already standardised on the Microsoft cloud.
In its favor
Why people choose Dynamics 365 Customer Service
The signal that keeps Dynamics 365 Customer Service on the shortlist. Sourced from G2, Capterra, and customer scoping calls.
Native integration with Outlook, Teams, Power BI, SharePoint, and the broader Microsoft 365 estate eliminates the connector tax that bolt-on helpdesks accrue when stitched into an MS-centric stack.
Unified Routing dispatches Cases, chats, and voice interactions by skills, priority, and agent capacity, which reduces manual triage and improves first-contact resolution for teams running multiple channels in parallel.
Dataverse exposes Cases as relational rows with a full Web API surface, making the platform a credible system of record rather than a black-box ticketing tool — useful for organisations with custom reporting and BI demands.
Configurable SLAs handle tiered support contracts with priority, business hours, pause conditions, and KPI rollups, which is essential for enterprises selling differentiated support entitlements to customer segments.
Total cost of ownership escalates quickly: Premium sits at $195/user/month with annual increases, and most organisations also pay for Power Platform requests, Dataverse storage, and partner implementation fees on top.
The customer service hub UI is cluttered for new agents, the mobile app is feature-limited, and meaningful customisation requires JavaScript and Power Fx skills rather than the click-to-configure experience the marketing implies.
Microsoft support quality is reportedly inconsistent — resolution times vary widely by channel and region, which becomes painful when production Cases stall on a platform issue rather than an agent issue.
Setup and go-live timelines run long because the platform's breadth (queues, routing rules, entitlements, SLAs, knowledge taxonomy, Copilot prompts, Power Automate flows) requires deliberate configuration rather than out-of-the-box defaults.
Reasons to switch
Why people leave Dynamics 365 Customer Service
The recurring reasons buyers give for replacing Dynamics 365 Customer Service. Presented as facts, not knocks.
Platform scorecard
Strengths, weaknesses, and where Dynamics 365 Customer Service fits
Grades across six dimensions, plus a SWOT-style view of where the platform shines and where it falls short.
SWOT — strengths, weaknesses, and use-case fit
Strengths
Weaknesses
Where it works
Where it struggles
Pricing tiers
Dynamics 365 Customer Service pricing overview
Professional starts at $50/user/month, Enterprise at $95, and Premium at $195 — all annual commitments. Pricing excludes Power Platform request capacity, Dataverse storage, and Microsoft 365 Copilot add-ons, which most production deployments need on top of the seat licence.
Customer Service Professional
Tier 1 of 4
$50/user/month (annual commitment)
What's included
Need help selecting your Helpdesk?
Book a free 30 minute consultationPricing is informational. FlitStack AI does not bill on Dynamics 365 Customer Service's schedule — see our quote-based pricing →
What gets migrated
Dynamics 365 Customer Service object support
Object-by-object support for Dynamics 365 Customer Service migrations. Per-pair details surface during scoping.
Cases (Incident)
Fully supportedCases are the primary ticket object stored as the incident table in Dataverse. We migrate Case records with their status, priority, severity, customer linkage, timeline activities, and resolution. State and statuscode transitions are mapped to the destination's status pipeline.
Knowledge Articles
Fully supportedKnowledge Articles live as Dataverse records with title, body, language, category linkage, status, and version history. We preserve article versioning where the destination supports it and flatten language variants where it does not.
Queues
Mapping requiredQueues hold both Cases and Activities awaiting assignment. We export queue definitions, ownership, and routing rules, but Unified Routing decision tables and skill-based assignment logic typically require manual recreation in the destination's routing engine.
Entitlements and Entitlement Templates
Mapping requiredEntitlements represent support contracts with allocated hours or case counts, channel restrictions, and SLA linkage. We migrate the Entitlement record, its terms, and remaining balance, mapping to the destination's contract object where one exists.
Service Level Agreements (SLAs)
Mapping requiredSLAs define KPI targets such as first response and resolution time with business hours, pause conditions, and warning thresholds. We export the SLA definition and active SLA instances on open Cases; the rule logic itself is reconstructed in the destination's SLA engine.
Contacts and Accounts
Fully supportedCustomer records in Dynamics 365 Customer Service use the standard CE Contact and Account tables. We migrate these with their address, communication preferences, and parent-child Account hierarchy intact.
Activities (Email, Phone Call, Task, Appointment)
Fully supportedActivities are polymorphic records linked to a Case or Contact via the regardingobjectid field. We migrate Email, Phone Call, Task, and Appointment activities preserving their parent linkage, owner, and completion state.
Customer Voice surveys
Mapping requiredCustomer Voice survey responses tie back to Cases via Activity records. We export the survey response payload but survey definitions themselves stay in Customer Voice and are not portable to non-Microsoft destinations.
Conversations (Omnichannel)
Mapping requiredOmnichannel conversations from chat, voice, SMS, and social are stored as a session and message tree linked to Cases. We export the session transcript and metadata; channel-specific attachments require separate download per provider.
Custom Tables and Columns
Mapping requiredCustomers extend the data model with custom Dataverse tables and columns. We inventory the source schema, map each custom field to the destination by name and type, and flag option-set values that need value-mapping in the migration plan.
Power Automate cloud flows
Not in this platformCloud flows that trigger on Case create, update, or status change cannot be migrated as data. We document the flow inventory so the customer can recreate the equivalent automation in the destination's workflow engine post-migration.
Attachments (Notes and Files)
Fully supportedAttachments stored on the annotation table (Notes) and as File columns are migrated with their parent record linkage. Large attachments are chunked through the Web API; we respect the per-request size limit during transfer.
| Object | Support | Notes |
|---|---|---|
| Cases (Incident) | Fully supported | Cases are the primary ticket object stored as the incident table in Dataverse. We migrate Case records with their status, priority, severity, customer linkage, timeline activities, and resolution. State and statuscode transitions are mapped to the destination's status pipeline. |
| Knowledge Articles | Fully supported | Knowledge Articles live as Dataverse records with title, body, language, category linkage, status, and version history. We preserve article versioning where the destination supports it and flatten language variants where it does not. |
| Queues | Mapping required | Queues hold both Cases and Activities awaiting assignment. We export queue definitions, ownership, and routing rules, but Unified Routing decision tables and skill-based assignment logic typically require manual recreation in the destination's routing engine. |
| Entitlements and Entitlement Templates | Mapping required | Entitlements represent support contracts with allocated hours or case counts, channel restrictions, and SLA linkage. We migrate the Entitlement record, its terms, and remaining balance, mapping to the destination's contract object where one exists. |
| Service Level Agreements (SLAs) | Mapping required | SLAs define KPI targets such as first response and resolution time with business hours, pause conditions, and warning thresholds. We export the SLA definition and active SLA instances on open Cases; the rule logic itself is reconstructed in the destination's SLA engine. |
| Contacts and Accounts | Fully supported | Customer records in Dynamics 365 Customer Service use the standard CE Contact and Account tables. We migrate these with their address, communication preferences, and parent-child Account hierarchy intact. |
| Activities (Email, Phone Call, Task, Appointment) | Fully supported | Activities are polymorphic records linked to a Case or Contact via the regardingobjectid field. We migrate Email, Phone Call, Task, and Appointment activities preserving their parent linkage, owner, and completion state. |
| Customer Voice surveys | Mapping required | Customer Voice survey responses tie back to Cases via Activity records. We export the survey response payload but survey definitions themselves stay in Customer Voice and are not portable to non-Microsoft destinations. |
| Conversations (Omnichannel) | Mapping required | Omnichannel conversations from chat, voice, SMS, and social are stored as a session and message tree linked to Cases. We export the session transcript and metadata; channel-specific attachments require separate download per provider. |
| Custom Tables and Columns | Mapping required | Customers extend the data model with custom Dataverse tables and columns. We inventory the source schema, map each custom field to the destination by name and type, and flag option-set values that need value-mapping in the migration plan. |
| Power Automate cloud flows | Not in this platform | Cloud flows that trigger on Case create, update, or status change cannot be migrated as data. We document the flow inventory so the customer can recreate the equivalent automation in the destination's workflow engine post-migration. |
| Attachments (Notes and Files) | Fully supported | Attachments stored on the annotation table (Notes) and as File columns are migrated with their parent record linkage. Large attachments are chunked through the Web API; we respect the per-request size limit during transfer. |
Gotchas
What to watch for in Dynamics 365 Customer Service migrations
Issues we've hit on past Dynamics 365 Customer Service migrations, tagged by severity. FlitStack AI handles every one — surfacing them up front because buyer engineering teams want to know.
Service Protection API limits will throttle bulk migration loads
OData v4 paging caps reads at 5,000 records per page
Power Automate flows do not migrate as data
Licensing tier gates which capabilities migrate cleanly
Omnichannel conversation history is fragmented across channels
| Severity | Issue |
|---|---|
| High | Service Protection API limits will throttle bulk migration loads |
| Medium | OData v4 paging caps reads at 5,000 records per page |
| High | Power Automate flows do not migrate as data |
| Medium | Licensing tier gates which capabilities migrate cleanly |
| Medium | Omnichannel conversation history is fragmented across channels |
Leaving Dynamics 365 Customer Service?
Where Dynamics 365 Customer Service customers move next
7 destinations Dynamics 365 Customer Service can migrate to.
How a Dynamics 365 Customer Service migration works
Four steps, Dynamics 365 Customer Service-specific
Connect
OAuth 2.0 via Microsoft Entra ID (Azure AD); application users for server-to-server scenarios into Dynamics 365 Customer Service. Scopes limited to read-only on the data we move.
Map
We translate Dynamics 365 Customer Service-specific structures (custom fields, objects, value lists) to the destination's model.
Sample
Test with a 50–200 record subset to validate Dynamics 365 Customer Service quirks before production.
Migrate
Full migration with Dynamics 365 Customer Service rate-limit handling. Rollback available throughout.
FAQ
Dynamics 365 Customer Service migration FAQ
Answers to the questions buyers ask most during Dynamics 365 Customer Service migration scoping. Not seeing yours? Book a call.
Can't find your answer?
Walk through your Dynamics 365 Customer Service migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationOther helpdesks we support
Ready when you are
Migrate Dynamics 365 Customer Service.
Without the rebuild.
Free scoping call with a migration engineer. Tell us about your Dynamics 365 Customer Service setup and destination — written quote back within a business day.