Helpdesk migration

Migrate from Dynamics 365 Customer Service to Intercom

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

Dynamics 365 Customer Service logo

Dynamics 365 Customer Service

Source

Intercom

Destination

Intercom logo

Compatibility

79%

11 of 14

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

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Dynamics 365 Customer Service to Intercom is a shift from a relational Dataverse-backed enterprise platform to a conversation-centric messaging layer. Dynamics 365 Customer Service stores Cases as incident rows with SLA KPIs, Entitlements, Knowledge Articles, and polymorphic Activities all linked through the Dataverse relational model. Intercom represents support as Conversations with Users, Companies, and Message parts — a fundamentally flatter schema that maps cleanly to standard contacts, companies, and tickets but requires deliberate configuration for SLA bridging and Queue-to-Team resolution. We migrate Cases to Conversations, Accounts to Companies, Contacts to Users, and Knowledge Articles to Intercom Articles with their taxonomy flattened to Collections and Sections. SLA contracts are written into a structured custom attribute block on each Conversation since Intercom's SLA engine is tier-gated and must be configured post-migration. Power Automate cloud flows and Omnichannel session transcripts do not migrate; we document the active flow inventory and produce a separate channel-asset report for the customer's admin to address.

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

Intercom logo

Intercom

What's pulling them in

  • Instant chat and message threading on websites and apps gives support teams a single inbox without context-switching, according to reviewers on Capterra and G2 who highlight fast response times as a primary benefit.
  • Fin AI handles repetitive inbound queries automatically, reducing agent workload measurably — G2 reviewers report fewer escalations and faster first-response times once Fin is configured.
  • Automation workflows (Outbound, Operator, and custom bots) allow teams to qualify leads and route tickets without manual intervention, appealing to growth-stage SaaS companies managing high ticket volumes.
  • Help center articles and self-service deflection are natively integrated, so knowledge base content and chat conversations live in the same workspace, simplifying reporting.
  • Multi-channel support (live chat, email, SMS, WhatsApp, Phone) consolidates customer touchpoints into one inbox, reducing the operational overhead of managing separate tools.

Object mapping

How Dynamics 365 Customer Service objects map to Intercom

Each row shows how a Dynamics 365 Customer Service object lands in Intercom, 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

Intercom

Conversation

1:1
Fully supported

Dynamics 365 Customer Service Cases map to Intercom Conversations. The Case title becomes the Conversation subject, casepriority maps to a Conversation priority attribute, incident state (active/resolved/cancelled) maps to Conversation state (open/closed/snoozed). Created-on and modified-on timestamps are preserved. Cases are the root record; we resolve the parent Contact and Account references first so that each Conversation is created against the correct User and Company in Intercom before the Case details are written.

Dynamics 365 Customer Service

Contact

maps to

Intercom

User

1:1
Fully supported

Dynamics CE Contact records map to Intercom Users. We use the contact's email address as the dedupe key. Full name splits to first_name and last_name, and communication preferences map to has_email_opened, has_unsubscribed, and email_verified custom attributes. Contacts without an email address map to Leads in Intercom until an email is available for promotion to User.

Dynamics 365 Customer Service

Account

maps to

Intercom

Company

1:1
Fully supported

Dynamics 365 Account records map to Intercom Companies. The Account name becomes the Company name, address fields map to city, region, country, and postal_code, and the Account website URL maps to the Company website field. Company is created before the linked Contact so that the User can be attached to the Company at migration time.

Dynamics 365 Customer Service

Activity: Email

maps to

Intercom

Message (part)

1:1
Fully supported

Dynamics Email activities linked to a Case via regardingobjectid map to Intercom Conversation Message parts. The email body migrates as an inbound or outbound Message part based on the activity directioncode (incoming = user message, outgoing = admin message). We preserve the original timestamp and sender address. Attachments on the Email activity migrate as Conversation file attachments.

Dynamics 365 Customer Service

Activity: Phone Call

maps to

Intercom

Note (on User or Conversation)

1:1
Fully supported

Dynamics Phone Call activities migrate as Notes attached to the relevant User record (and optionally linked to the Conversation if a Case is associated). Call duration, disposition, direction, and subject map to custom note attributes in Intercom. Voice recordings stored as external SharePoint or blob URLs are listed in the channel-asset report for the customer's admin to re-upload or re-link post-migration.

Dynamics 365 Customer Service

Activity: Task

maps to

Intercom

Conversation Note or Conversation Part

1:1
Fully supported

Dynamics Task activities migrate as Conversation Notes or admin-part type messages depending on whether the task is a customer-facing action. Task subject, due date, priority, and status migrate. Completed tasks set the Conversation to closed if no open items remain; open tasks are logged as internal notes with a due date attribute.

Dynamics 365 Customer Service

Activity: Appointment / Meeting

maps to

Intercom

Conversation Note

1:1
Fully supported

Dynamics Appointment activities migrate as Conversation Notes with the meeting subject, start and end time, location, and required attendees listed as plain text in the note body. No native calendar integration is created in Intercom; the admin configures any calendar sync separately via the Intercom app store or a Zapier or Make workflow.

Dynamics 365 Customer Service

Knowledge Article

maps to

Intercom

Article

1:1
Fully supported

Dynamics Knowledge Articles map to Intercom Articles. Article title and body (HTML content) migrate directly; we strip HTML formatting that Intercom's renderer does not support. The Knowledge Article status (draft, published, archived) maps to Article visibility (draft = internal only, published = live, archived = archived). Article category and section hierarchy in Dynamics maps to Intercom Collections and Sections, which we flatten to match Intercom's two-level taxonomy. Language versioning is preserved where Intercom supports it; multi-language articles are split into separate Intercom articles with locale attributes.

Dynamics 365 Customer Service

Queue

maps to

Intercom

Team

1:many
Fully supported

Dynamics Queues (holding Cases and Activities awaiting assignment) map to Intercom Teams. Each Queue becomes a Team, and queue members map to Team members. Unified Routing decision tables, skill-based assignment, and capacity-based distribution do not migrate because Intercom's routing is rule-based (assignment rules by conversation attribute) rather than capacity-aware. We document the active Queue-to-Routing logic as part of the automation inventory so that the admin can configure equivalent assignment rules in Intercom.

Dynamics 365 Customer Service

Entitlement and Entitlement Template

maps to

Intercom

Custom Attributes (on Conversation)

lossy
Fully supported

Dynamics Entitlements represent support contracts with allocated hours, case count limits, channel restrictions, and SLA linkage. Intercom has no native Entitlement equivalent at lower plans. We write Entitlements as a structured custom attribute block on each migrated Conversation (contract_name, remaining_hours, channel_restrictions, start_date, expiry_date) so that the customer can reference contract terms during support and configure SLA enforcement manually or via an Intercom SLA policy (Advanced plan). We deliver a separate Entitlements inventory document listing every active contract for admin review.

Dynamics 365 Customer Service

SLA (Service Level Agreement)

maps to

Intercom

Custom Attributes (on Conversation) + SLA Policy (Advanced plan)

lossy
Fully supported

Dynamics SLA definitions (first response time, resolution time, business hours, pause conditions, warning thresholds) cannot migrate as operational SLA configurations in Intercom because SLA Policies are only available on Intercom's Advanced plan. We export every SLA definition and active SLA instance on open Cases, then write them as structured custom attributes on each Conversation. If the destination is on Intercom Advanced, we configure the SLA Policy using the migrated SLA terms and document the mapping. If on Growth or lower, the admin sets up manual KPI tracking.

Dynamics 365 Customer Service

Custom Dataverse Tables and Columns

maps to

Intercom

Custom User or Company Attributes

1:1
Fully supported

Dynamics customers extending the data model with custom Dataverse tables and columns are inventoried during scoping. Single-value custom columns on Contact map to Intercom custom User attributes. Single-value custom columns on Account map to Intercom custom Company attributes. Custom tables (standalone objects) have no direct Intercom equivalent; we assess whether the custom table data belongs on a User attribute (serialised as JSON), a Company attribute, or a Note, and document the chosen approach during schema design. Option-set values require a value-map to ensure picklist consistency in Intercom.

Dynamics 365 Customer Service

Attachment (Notes and Files)

maps to

Intercom

Conversation Attachment or Note

1:1
Fully supported

Dynamics attachments on the annotation table linked to Cases, Contacts, or Accounts migrate as Intercom Conversation attachments (for inline attachments on active conversations) or Notes on the relevant User or Company. Files are downloaded from the source (SharePoint or Dataverse file columns), chunked if over Intercom's 10 MB per-file limit, and uploaded via the Intercom attachments API. We preserve the original filename and MIME type.

Dynamics 365 Customer Service

Power Automate Cloud Flows

maps to

Intercom

(not migratable — documented for admin rebuild)

1:1
Fully supported

Cloud flows in Power Automate that trigger on Case create, update, or status change are first-class business logic but live in Power Automate, not in Dataverse rows. They cannot be exported as part of a normal record migration. We inventory every active flow, identify which trigger Case state changes, and deliver a written Flow inventory with trigger, conditions, actions, and a recommended Intercom workflow equivalent (or a Zapier/Make scenario). The customer's admin rebuilds the equivalent automation in Intercom's Workflow builder post-migration.

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

Intercom logo

Intercom gotchas

High

S3 JSON export omits conversation transcripts

High

Workspace isolation prevents workflow migration

Medium

Fin AI resolution fees compound with automation success

Medium

Two-year conversation history limit on historical export

Low

Private app rate limits share workspace quota

Pair-specific challenges

  • Intercom's API rate limit is 74 requests per minute on most plans

    Intercom's REST API enforces a default rate limit of 74 requests per minute for standard apps and higher for enterprise-tier apps. Bulk migrations with thousands of Cases, Contacts, and Knowledge Articles must batch writes and enforce a per-minute throttle against the Intercom API rather than pushing records in parallel. We implement a request scheduler with backoff on 429 responses using the Retry-After header, and we chunk large imports (Knowledge Articles, bulk Contact updates) into queue-based batches to avoid hitting the limit mid-migration. A migration of 20,000 records at 74 req/min in serial mode takes approximately 4.5 hours of pure API time, which affects timeline estimates for large datasets.

  • SLA configuration does not migrate; SLA policies require Intercom Advanced

    Dynamics 365 Customer Service SLA definitions are tied to Entitlements and SLA KPI instances on individual Cases. Intercom SLA Policies are only available on the Advanced plan ($134/seat/month) and cannot be populated from an external source via API — they must be configured manually in the Intercom dashboard. We do not migrate SLA logic as operational configurations. Instead, we write every active SLA term (first response target, resolution target, business hours, pause conditions) as structured custom attributes on each migrated Conversation. The admin must configure the equivalent SLA Policy in Intercom manually or through a partner engagement post-migration. This is the most significant functional gap in the migration scope for Enterprise-tier Dynamics customers who rely heavily on SLA enforcement.

  • Omnichannel voice and social transcripts have fragmented attachment references

    Dynamics 365 Customer Service Omnichannel conversations from chat, voice, SMS, and social are stored as a session-and-message tree with channel-specific attachments (voice recordings, social media media, embedded files) often referencing external storage URLs. We migrate the transcript text and conversation metadata as Message parts on the Intercom Conversation. However, channel-side assets — call recordings, social attachments — live in the original channel provider and are not portable as files. We produce a separate channel-asset report listing every reference that needs re-upload or re-link in Intercom. This report is handed to the customer's admin before cutover so that the re-upload is completed in parallel or immediately after go-live.

  • Dataverse OData paging caps reads at 5,000 records per page

    The Dynamics 365 Customer Service Web API returns a maximum of 5,000 records per page for read operations regardless of client-requested page size. For large source tables (Cases, Activities, Knowledge Articles) we walk the @odata.nextLink continuation tokens explicitly, persist pagination checkpoints between pages, and validate that the total row count in the source matches the total migrated after pagination completes. A migration of 200,000 Cases involves 40 sequential OData pages; without explicit checkpointing, a mid-run interruption would require re-reading from the beginning.

  • Unified Routing logic and skill-based assignment have no Intercom equivalent

    Dynamics 365 Customer Service Enterprise and Premium tier includes Unified Routing with skills-based, capacity-aware, and priority-weighted assignment across queues. Intercom's assignment model is rule-based: assignment rules assign conversations to Teams or specific admins based on conversation attributes. There is no native capacity-based load balancing or skills-matching in Intercom on Growth plans. We map Queue members to Team members, but the routing logic (which Queue a Case enters, what skills it requires, who gets it based on current workload) must be rebuilt as Intercom assignment rules. We document the active routing configuration in the Flow inventory for the admin to translate.

Migration approach

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

  1. Discovery and scoping

    We audit the source Dynamics 365 Customer Service organisation across tier (Professional, Enterprise, Premium), active Queues, SLA definitions, Entitlement inventory, Knowledge Article count and taxonomy depth, custom Dataverse tables and columns, and Power Automate flow inventory. We pair this with an Intercom plan assessment (Starter, Growth, or Advanced) to determine whether SLA Policies are available in the destination. The discovery output is a written migration scope with object inventory, record counts, custom schema map, and a go/no-go decision on each migratable object.

  2. Schema design and Intercom attribute configuration

    We design the Intercom schema before any data moves. This includes provisioning custom attributes on User and Company for Dynamics custom fields (typed as string, number, date, boolean, or list), designing the Knowledge Article-to-Collection-Section taxonomy mapping, configuring Teams to mirror the Dynamics Queue structure, and drafting the Entitlement and SLA custom attribute block structure. Schema is configured in Intercom's settings before migration begins so that incoming records have the correct attribute targets. Any Intercom SLA Policies (Advanced plan only) are stubbed at this stage for the admin to finalise post-migration.

  3. Sandbox migration and reconciliation

    We run a full migration into the customer's Intercom workspace using production-like data volume from a sandbox or test export. The customer's support operations lead reconciles record counts (Conversations in, Users in, Companies in, Articles in), spot-checks 25-50 random Conversations and Articles against the Dynamics source, and signs off the mapping and SLA attribute structure before production migration begins. Any field mapping corrections happen here, not in production.

  4. Owner and Queue reconciliation

    We extract every distinct Queue owner and Queue member from Dynamics Queues and match them to Intercom Admins by email. Teams are created in Intercom to mirror Queue structure. Any Dynamics Queue with no matching Intercom Admin goes to a reconciliation queue for the customer's admin to provision before record import resumes. This step is critical because Conversation assignment requires an Intercom admin reference; without it, migrated Cases appear unassigned.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Companies (from Dynamics Accounts), Users (from Dynamics Contacts with CompanyId resolved), Articles (from Knowledge Articles with Collection-Section taxonomy), then Conversations (from Cases with UserId and CompanyId resolved and SLA attribute block written). Activity history (email, call, task, appointment) is batched and written as Conversation Message parts and Notes via the Intercom API with per-minute throttling. Custom attribute data from Dynamics custom columns is written in a final pass after the parent record exists in Intercom.

  6. Cutover, validation, and automation handoff

    We freeze Dynamics writes during cutover, run a final delta migration of any records modified during the migration window, then enable Intercom as the system of record. We deliver the Flow inventory document and the channel-asset report listing every Omnichannel attachment reference that needs re-upload. We support a one-week hypercare window where we resolve any reconciliation issues raised by the customer's support team. We do not rebuild Power Automate flows as Intercom Workflows inside the migration scope; that is a separate engagement or an internal admin 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.
Intercom logo

Intercom

Destination

Strengths

  • Integrated AI agent (Fin) for automated resolution with per-resolution billing that rewards high automation rates.
  • Multi-channel inbox consolidating live chat, email, SMS, WhatsApp, and Phone into a single threaded view.
  • Native help center with articles, collections, and self-service deflection capabilities.
  • Workflow automation for routing, qualification, and proactive outbound messaging across channels.
  • Strong API ecosystem with 10,000 req/min rate limits for private apps enabling high-throughput migration pipelines.

Weaknesses

  • Pricing model compounds with seat count, AI resolution fees, channel costs, and multiple add-ons, making total cost hard to predict.
  • Workspace-level isolation prevents moving workflows or content between environments, requiring manual rebuilds.
  • S3 JSON export deliberately excludes conversation transcripts, necessitating REST API calls for full message history.
  • Outages are reported as frequent enough to be a concern for always-on support operations.
  • Setup complexity means teams often require internal guidance or professional services to configure bots and automation correctly.

Complexity grading

How hard is this migration?

Standard Helpdesk migration. 2 of 7 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 Customer Service and Intercom.

  • Object compatibility

    B

    2 of 7 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

    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 Intercom 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 Intercom data migrations

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

Can't find your answer?

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

Book a free 30 minute consultation

Straightforward migrations with under 10,000 Cases, 5,000 Contacts, and 1,000 Knowledge Articles complete in three to five weeks. Migrations with custom Dataverse tables, large Omnichannel transcript histories, Entitlement inventory requiring structured attribute reconstruction, or multi-brand Intercom setups move to eight to fourteen weeks because of schema mapping, SLA documentation, and channel-asset reconciliation scope. The Intercom API rate limit of 74 requests per minute is the primary timeline constraint for large datasets.

Adjacent paths

Related migrations to explore

Ready when you are

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