Helpdesk migration

Migrate from Dynamics 365 Customer Service to Zendesk

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

Dynamics 365 Customer Service logo

Dynamics 365 Customer Service

Source

Zendesk

Destination

Zendesk logo

Compatibility

82%

9 of 11

objects map 1:1 between Dynamics 365 Customer Service and Zendesk.

Complexity

BStandard

Timeline

4-8 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Migrating from Dynamics 365 Customer Service to Zendesk is an architectural shift from a relational Dataverse-backed CRM model to a flat ticket-centric helpdesk. Dynamics stores Cases as incident rows with polymorphic Activities linked via regardingobjectid, while Zendesk collapses every interaction into ticket comments. We resolve this by first exporting parent Account and Contact records into Zendesk Organizations and Users, then importing Cases as Tickets with all Activities flattened into the ticket comment stream and each comment carrying the original Dynamics Activity type and timestamp as metadata. Entitlements and SLA definitions require explicit reconstruction in Zendesk because the destination lacks a direct contractual entitlement model. Power Automate cloud flows, Omnichannel routing rules, and Power Fx customizations do not migrate as data; we document the active inventory for the customer's admin to rebuild inside Zendesk. Service Protection API rate limits on the Dynamics side govern export batch sizing, and Zendesk's API write limits govern ingest pacing.

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 Customer Service logo

Dynamics 365 Customer Service

What's pushing teams away

  • 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.

Choosing

Zendesk logo

Zendesk

What's pulling them in

  • Mature omnichannel routing across email, chat, phone, messaging, and social — one unified inbox for support teams regardless of size or complexity.
  • Deep automation with Triggers, Automations, and SLA Policies lets high-volume teams enforce consistent workflows without manual ticket handling.
  • Large ecosystem of third-party integrations and a public app marketplace reduce friction for teams already using Salesforce, Jira, or Slack.
  • Industry-leading brand recognition and trust signal — many enterprise buyers default to Zendesk as a known quantity in vendor procurement cycles.
  • Generous documentation library and community mean onboarding teams can self-configure without needing a services engagement to get started.

Object mapping

How Dynamics 365 Customer Service objects map to Zendesk

Each row shows how a Dynamics 365 Customer Service object lands in Zendesk, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

Dynamics 365 Customer Service

Case (Incident)

maps to

Zendesk

Ticket

1:1
Fully supported

Dynamics 365 Case records map to Zendesk Tickets. We map case.title to Ticket subject, case.description to the first public comment, case.statecode/statuscode to Ticket status (Open, Pending, Solved, Closed), case.prioritycode to Ticket priority (Low, Normal, High, Urgent), case.customerid to Zendesk User or Organization, and case.ownerid to Ticket assignee. Custom incident columns migrate as Zendesk custom ticket fields. The primary risk is flattening the relational activity tree: all Dynamics Activities attached to a Case become Zendesk ticket comments in chronological order with the original Activity type embedded as comment metadata.

Dynamics 365 Customer Service

Contact

maps to

Zendesk

User

1:1
Fully supported

Dynamics CE Contact records map to Zendesk Users. We map contact.fullname to User name, contact.emailaddress1 to User email (used as the dedupe key), contact.telephone1 to User phone, and contact.address1_composite to User address fields. Contact is migrated after Organization because Zendesk Users reference an Organization as a required field on the end-user side. If the source Contact lacks an email, we generate a placeholder and flag the record for admin verification.

Dynamics 365 Customer Service

Account

maps to

Zendesk

Organization

1:1
Fully supported

Dynamics Account records map to Zendesk Organizations. We map account.name to Organization name, account.website to Organization domain (used for dedupe and auto-association), and account.address1_composite to Organization address. Account is migrated before Contact because Zendesk Users require an Organization lookup. If the source Account has child Contacts, all child Contact records are held until the parent Account insert completes and the Organization ID is available.

Dynamics 365 Customer Service

Knowledge Articles

maps to

Zendesk

Help Center Articles

1:1
Fully supported

Dynamics Knowledge Articles migrate to Zendesk Help Center Articles within the designated Section and Category. We map article.title to article title, article.articlebody (HTML) to article body, article.msdyn_locale to article language, article.status to publish status (Draft, Published, Archived), and article.msdyn_primaryauthor to article author. HTML content is pre-validated because Zendesk Help Center renders a different HTML subset than Dynamics. The article URL structure changes after migration; we produce a redirect map for the customer's web team.

Dynamics 365 Customer Service

Queue

maps to

Zendesk

View

1:1
Fully supported

Dynamics Queues holding Cases and Activities map to Zendesk Views. Queue name becomes View name, and Queue members map to View restrictions by agent group. We preserve the queue type (Public/Private) as a View sharing setting. However, Dynamics Unified Routing decision tables and skill-based assignment logic have no Zendesk equivalent and are documented separately as a routing-rebuild requirement.

Dynamics 365 Customer Service

Entitlement

maps to

Zendesk

SLA Policy

1:1
Fully supported

Dynamics Entitlements representing support contracts with allocated hours, case count limits, channel restrictions, and SLA linkage map partially to Zendesk SLA Policies. We migrate entitlement.name as the SLA policy name, entitlement.totalterm as the entitlement terms summary, and entitlement.budgettype (hours vs case count) as Zendesk SLA target metrics. Channel restrictions and per-entitlement pause conditions do not map because Zendesk SLA policies lack pause-condition logic; these are flagged for manual rebuild.

Dynamics 365 Customer Service

SLA Definition

maps to

Zendesk

Business Hours + SLA Policy

1:1
Fully supported

Dynamics SLA KPI targets (first response time, resolution time), business hours, and warning thresholds map to Zendesk Business Hours configurations and SLA Policy targets. Pause conditions in the source SLA definition have no Zendesk equivalent and are noted as a gap. Active SLA instances on open Cases migrate as Zendesk SLA Policy assignments on those Tickets.

Dynamics 365 Customer Service

Activity: Email, Phone Call, Task, Appointment

maps to

Zendesk

Ticket Comment

1:many
Fully supported

Dynamics polymorphic Activities (Email, Phone Call, Task, Appointment) attached to a Case via regardingobjectid merge into the target Zendesk Ticket as sequential comments. We preserve the original Activity type as a comment metadata tag (e.g., [Dynamics Email], [Dynamics Phone Call]) and the Activity party's email address, call duration, and disposition where present. Activity ordering is maintained by setting the comment timestamp to the original Dynamics Activity createdon value.

Dynamics 365 Customer Service

Attachment (Annotation and File columns)

maps to

Zendesk

Ticket Attachment

1:1
Fully supported

Dynamics Notes (annotation table) and File column attachments attached to Cases or Contacts migrate as Zendesk Ticket or User attachments. We retrieve the file blob via the Dataverse file download endpoint, chunk large files by Zendesk's 20 MB per-request limit, and attach them to the target Ticket or User record. Attachments stored in SharePoint require re-upload to Zendesk's native file storage or a configured Zendesk connected Dropbox/Google Drive integration.

Dynamics 365 Customer Service

Omnichannel Conversation (Session + Message)

maps to

Zendesk

Ticket Comment

1:1
Fully supported

Dynamics Omnichannel chat, voice, SMS, and social session transcripts map to Zendesk Ticket comments as text. We export the session.starttime, session.channel, session.queue, and message body with sender role (agent/customer/system). Voice call recordings and social media attachments do not migrate because Zendesk stores media differently; we produce a separate inventory of channel assets that require re-link or re-upload to Zendesk's media storage.

Dynamics 365 Customer Service

Custom Dataverse Tables

maps to

Zendesk

Custom Ticket Fields or Organizations

lossy
Fully supported

Custom tables and columns added by the customer to Dataverse require a pre-migration schema inventory. We classify each custom table: lookup tables pointing to Contact or Account map to Zendesk Organization fields or User fields; transactional custom tables map to Zendesk custom ticket fields with equivalent type (string, integer, datetime, option-set, boolean). Option-set values are enumerated as Zendesk custom field dropdown options. Tables with no clear Zendesk equivalent are flagged as candidates for Zendesk Explore reporting or a custom database outside the ticket model.

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 Customer Service logo

Dynamics 365 Customer Service gotchas

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

Zendesk logo

Zendesk gotchas

High

Data export requires API scripting on non-Enterprise plans

Medium

Automations cap at 500 active rules and 1,000 tickets per hour

Medium

Help Center has no native export feature

High

Custom Objects and full data export are Enterprise-only

Pair-specific challenges

  • Activity tree flattening loses relational ordering context

    Dynamics stores Cases, Activities, and Notes as separate relational rows linked by regardingobjectid. Zendesk collapses all interactions into a ticket comment stream. We add timestamp metadata to each comment and sort by the original Dynamics createdon value, but the hierarchical structure of threaded replies (where an Activity was a direct reply to a parent Activity) cannot be fully preserved in Zendesk's flat comment model. Cases with complex activity trees spanning multiple channels require a pre-migration review by the customer's service lead to confirm acceptable flattening.

  • Entitlements and SLA pause conditions have no Zendesk equivalent

    Dynamics Entitlements support allocated hours, case-count budgets, channel restrictions, and SLA pause conditions tied to customer wait time. Zendesk SLA policies do not have pause conditions, entitlement-hour tracking, or channel-specific SLA variants. We migrate the entitlement terms and SLA targets as far as Zendesk's model permits, but pause conditions and entitlement budget consumption logic are documented as a manual rebuild item. Skipping this step means open Cases continue accruing against SLAs that had active pause logic in Dynamics.

  • Power Automate cloud flows do not migrate as code

    Cloud flows that trigger on Case create, update, status change, or assignment live in Power Automate, not in Dataverse. They cannot be exported as part of a normal record migration. We document the active flow inventory during scoping, identify which flows reference Case lifecycle events, and deliver a written map of each flow with its trigger, conditions, and actions for the customer's admin to rebuild inside Zendesk triggers and automations.

  • Knowledge article HTML renders differently in Zendesk

    Dynamics Knowledge Articles store content as HTML in the articlebody column, and the HTML often uses Microsoft-specific tags, style classes, and embedded assets that render differently in Zendesk's Help Center. We run a pre-migration HTML validation pass, strip unsupported tags where necessary, and produce a separate inventory of articles containing iframe embeds, SharePoint links, or legacy font styles that need manual remediation after migration.

  • Service Protection API limits govern Dynamics export batch sizing

    Dataverse enforces a default Service Protection threshold of approximately 6,000 requests per user within a rolling 5-minute window. We use a dedicated application user with Bulk Data Loader patterns, batch OData reads within $batch requests of up to 1,000 operations, and handle 429 responses using the Retry-After header with exponential backoff. The migration runbook confirms this throttling pattern before the production export begins so that export duration is accounted for in the overall timeline.

Migration approach

Six steps for a successful Dynamics 365 Customer Service to Zendesk data migration

  1. Discovery and schema inventory

    We audit the source Dynamics 365 Customer Service environment: Case volume and age, Contact and Account counts, Knowledge Article volume and language count, Queue definitions and member assignments, Entitlement records and active SLA instances, Activity record counts by type, and Omnichannel session transcript volume. We inventory all custom Dataverse tables, option-set values, and custom columns on the incident table. We also document active Power Automate cloud flows that trigger on Case lifecycle events and Omnichannel routing rules. This audit produces the migration scope document, a Zendesk plan recommendation (Support Team vs Support Professional vs Support Enterprise), and the feature delta report between the source tier and destination plan.

  2. Zendesk schema design and custom field provisioning

    We configure the Zendesk target environment: ticket fields mapped to every source Dynamics Case column (including custom fields), custom field types matched to source column types (string, integer, datetime, option-set), Help Center structure with Sections matching the Dynamics Knowledge Article categories, SLA Policies with targets derived from the Dynamics SLA definitions, Business Hours matching the Dynamics service calendar, and Views derived from the Dynamics Queue definitions. All configuration is validated in a Zendesk sandbox before production.

  3. Sandbox migration and reconciliation

    We run a full migration into the configured Zendesk sandbox using representative data volume. The customer's service operations lead reconciles record counts: Organizations in, Users in, Tickets in, Articles in, and SLA policy assignments in. We spot-check 25-50 random tickets against the source Dynamics Case records for field-level accuracy and comment ordering. Any mapping corrections are made before production migration begins. This step also surfaces HTML rendering issues in Knowledge Article content for remediation before go-live.

  4. Production migration in dependency order

    We execute production migration in strict dependency sequence: Organizations (from Dynamics Accounts), Users (from Dynamics Contacts with Organization ID resolved), Help Center Sections and Categories, Help Center Articles (with HTML validation pass applied), SLA Policies and Business Hours, Tickets (from Dynamics Cases with User and Organization IDs resolved, SLA policy assigned, and all Dynamics Activities appended as sequential comments), Attachments (filed against the resolved Ticket or User), and Custom Dataverse Table records mapped to Zendesk custom fields or Organizations. Each phase emits a row-count reconciliation report before the next phase begins.

  5. Cutover and delta migration

    We freeze Dynamics write access during cutover, run a final delta migration of any Cases, Activities, or Knowledge Articles modified during the migration window, then enable Zendesk as the system of record. Zendesk is configured as the primary ticket URL for agents and customers at this point. Any SharePoint-hosted or external file attachments that could not be migrated are listed in a supplemental upload guide for the customer's admin team.

  6. Validation, handoff, and automation inventory delivery

    We perform a post-migration validation: record counts match between source and destination, SLA policy assignments are confirmed on open tickets, Knowledge Article publish status mirrors the source, and a random sample of 50 tickets is spot-checked against Dynamics for field accuracy and comment completeness. We deliver the Power Automate cloud flow inventory document and the Omnichannel routing rules gap analysis to the customer's admin team. We do not rebuild Power Automate flows as Zendesk triggers inside the migration scope; that is a separate engagement or an internal admin rebuild task.

Platform deep dives

Context on both ends of the pair

Dynamics 365 Customer Service logo

Dynamics 365 Customer Service

Source

Strengths

  • Dataverse-backed model gives Cases a real relational schema and a full Web API for migration and BI.
  • Unified Routing handles skill-based, capacity-aware case distribution across Omnichannel without bolt-ons.
  • Native Outlook, Teams, SharePoint, and Power BI integration for organisations already on Microsoft 365.
  • Copilot Service Agent and AI summarisation are bundled with Microsoft 365 Copilot at no incremental cost.
  • Configurable SLAs with business hours, pause conditions, and KPI rollups for tiered support contracts.

Weaknesses

  • Licensing stack adds up fast: per-user, Power Platform requests, Dataverse storage, and capacity entitlements.
  • Customisation beyond out-of-the-box configuration requires JavaScript, Power Fx, and partner expertise.
  • Customer service hub UI is dense and the mobile app trails the web experience in functionality.
  • Microsoft support resolution times are inconsistent; partner support is often necessary for production issues.
  • Implementation timeline runs months, not weeks, due to the platform's configurable surface area.
Zendesk logo

Zendesk

Destination

Strengths

  • Well-documented REST API with broad endpoint coverage for Tickets, Users, Organizations, and Help Center.
  • Rich automation primitives: Triggers (event-driven), Automations (time-based), and Macros with variable substitution.
  • Multi-brand support enables large organizations to route and isolate support by product line or subsidiary.
  • Scalable from small teams on Team plan to global enterprises on Enterprise Plus with sandbox and disaster recovery options.
  • Large partner ecosystem and marketplace with hundreds of pre-built integrations reduces integration work at deployment.

Weaknesses

  • Per-agent pricing with aggressive feature gating makes lower tiers feel artificially limited.
  • No native full-KB export — Help Center content requires API scripting to extract.
  • AI features are add-on priced and behave inconsistently, not deeply embedded in core workflows.
  • Implementation timelines for complex multi-channel setups routinely exceed initial estimates by weeks or months.
  • Knowledge base and help center functionality are separate from core ticketing with their own permission model and versioning.

Complexity grading

How hard is this migration?

Standard Helpdesk migration. All 7 core objects map 1:1 between Dynamics 365 Customer Service and Zendesk.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Dynamics 365 Customer Service and Zendesk.

  • Object compatibility

    A

    All 7 core objects map 1:1 between Dynamics 365 Customer Service and Zendesk.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    7-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Dynamics 365 Customer Service: Service Protection API limits — roughly 6,000 requests per user per rolling 5-minute window per web server; 429 responses include Retry-After header.

  • Data volume sensitivity

    A

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Migrations under 50,000 Cases with no custom Dataverse tables and clean Entitlement structures land between four and eight weeks. Migrations with custom Dataverse schemas, large activity histories (over 500,000 activity records), Omnichannel transcript assets, or multi-region SLA configurations move to ten to sixteen weeks because of Dataverse pagination and Service Protection throttling on export, HTML validation across Knowledge Articles, and the manual SLA rebuild scope.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Dynamics 365 Customer Service.
Land in Zendesk, 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