Migration Reference
Microsoft Dynamics 365 to HubSpot Migration
What actually transfers, what quietly does not, and what has to be rebuilt by hand.
We mapped Microsoft Dynamics 365 against HubSpot feature by feature: 82 features, 15 synced objects, 15 documented traps and 26 items that have to be rebuilt. The whole map is on this page, ungated.
The PDF is the same reference, formatted for a procurement file.
Get The Reference And The Calculator
The full Microsoft Dynamics 365 to HubSpot reference as a PDF, plus the Excel calculator we scope these migrations with: every one of the 82 features as a row, enter your counts, get hours.
Three files: the reference as a PDF, the same reference in Markdown for your AI tool, and the full Excel effort calculator.
Microsoft Dynamics 365 to HubSpot is a high migration, typically 3-8 weeks. Of the 82 features we mapped, 22 carry across as they are and 57 land with something lost: the 26 items nothing moves for you is what will actually set your timeline, not the sync.
Migration Scorecard
- Migration complexity
- High
- Typical timeline
- 3-8 weeks
- Recommended method
- Smart transfer
- Native sync
- Data sync, two way
- Smart transfer
- Supported
- HubSpot subscription
- The base integration itself costs nothing beyond whatever HubSpot plan you already hold. Go past the basics and each layer adds its own requirement: a paid Data Hub subscription, Starter or above, for custom field mappings; Enterprise for custom object sync; Professional or Enterprise for workflow automation on sales orders. On the Dynamics 365 side, the account doing the syncing needs Read and Write permissions for every record type it touches, not just the ones you plan to use first.
Feature parity across 82 capabilities
- Maps directly: 22 (27%)
- Maps partially: 57 (70%)
- No equivalent: 3 (4%)
15
Objects synced natively
15
Limitations and traps
26
Manual rebuild items
4
Source editions covered
Where this comes from: Our own research corpus, verified 2026-07-31, behind every number on this page.
The Fifteen Objects That Sync Natively
What the connector moves for you, and which way each one flows.
Contacts
Two wayBecomes Contacts
Contacts sync strictly one-to-one: a single HubSpot contact cannot generate multiple Dynamics leads natively, and Contacts and Leads run as two separate sync configurations rather than one. Set both up expecting that separation, particularly where the same buyer opens more than one opportunity across a group's entities.
Leads
Two wayBecomes Contacts
Dynamics Leads land as HubSpot Contacts through their own configuration, kept apart from the Contacts sync itself, and the native connector still will not let one HubSpot contact map to several Dynamics leads. Any task attached to a Dynamics Lead carries the same one-way limit: Dynamics to HubSpot only, never back.
Accounts
Two wayBecomes Companies
Account hierarchies and the territory rollups built on them do not transfer from Dynamics, and owner mapping is its own separate risk: a Dynamics queue and a HubSpot round-robin rarely agree on who owns an account once both are live. Settle the hierarchy and the ownership question together, since a group structure usually depends on both being right at the same time.
Opportunities
Two wayBecomes Deals
Status codes rarely align cleanly between the two systems, which risks revenue landing against the wrong stage or period, and any price change made on a HubSpot line item never flows back to the Dynamics sales order it created. Reconcile which system holds the authoritative price before finance starts pulling numbers from both.
Products
Two wayBecomes Products
Both Dynamics Products and Bundles land in HubSpot Products, and product syncing counts as a standard object type. The app's HubSpot marketplace listing (read 2026-07-31) lists Products and Bundles as two separate shared objects with different directions, a split from how they were once treated as a single entry, and confirms Products itself syncs both ways.
Bundles
Into HubSpotBecomes Products
Product bundles sync into HubSpot Products as well, but only one way: the marketplace listing (read 2026-07-31) marks this object inbound, Dynamics to HubSpot, with 5 default field mappings and nothing flowing back. Edit a bundle in HubSpot and Dynamics never sees the change.
Invoices
Into HubSpotBecomes Invoices
Invoices sync as a standard object type, with a sync card that appears on invoice records once set up, and the direction is one-way: the app's HubSpot marketplace listing (read 2026-07-31) marks it inbound, Dynamics to HubSpot only.
Sales Orders
Into HubSpotBecomes Orders
Sales order sync has to be switched on deliberately: leave it unconfigured and a new Dynamics sales order simply has no HubSpot counterpart. Even once it is configured, a line item price changed on the HubSpot deal never reaches the sales order it created, and the marketplace listing (read 2026-07-31) confirms the whole object runs inbound, Dynamics to HubSpot, in one direction only.
Appointments
Two wayBecomes Meetings
Dynamics Appointments map onto HubSpot Meetings, sitting inside the broader activities sync category.
Tasks
Two wayBecomes Tasks
A task needs an association, to a lead, a contact or another object, before it will sync from HubSpot into Dynamics at all, and where that association is to a Dynamics Lead, the sync only ever runs the other way, Dynamics to HubSpot.
Notes
Two wayBecomes Notes
Notes belong to the same activities sync category as appointments and tasks.
Emails
Into HubSpotBecomes Emails
Emails sit in the activities sync category too, and travel one way, inbound from Dynamics to HubSpot only, per the marketplace listing (read 2026-07-31). Anything logged offline in Dynamics carries the same risk here as elsewhere: it may never reach HubSpot at all.
Phone Calls
Into HubSpotBecomes Calls
Phone calls logged in Dynamics map onto HubSpot Calls, another activities-category object running inbound only: the marketplace listing (read 2026-07-31) confirms Dynamics to HubSpot with no return path.
Custom Entities
Two wayBecomes Custom Objects
Custom object sync lists Microsoft Dynamics 365 as a supported app, but it needs HubSpot Enterprise underneath, and community reports describe limited native support for anything genuinely complex: a third-party tool or a custom API integration is often what a real custom entity ends up needing. Given how many regional deployments built their most important workflow inside a custom entity, real estate units, tenders, licensed products, this is worth testing early rather than assuming from the listing alone.
Cases
Two wayBecomes Tickets
Dynamics 365 Cases sync to HubSpot Tickets, listed as a shared object on the marketplace page (read 2026-07-31), but with no default field mappings published for it: every ticket property is a mapping decision someone has to make by hand rather than one the connector makes for you.
Fifteen Things the Sync Does Not Tell You
Each one is documented, and each one has ended a migration in a bad week.
One Object Type Synced at a Time
Configure each object type on its own: the native connector will not let you set up contacts, companies and deals together, only one at a time. For a Dynamics estate that has grown complex across several regional entities, that sequential setup is where the real time goes before a single record has moved.
Workaround: Sequence the setup deliberately: contacts, then companies, then deals, then everything else, and let each object finish syncing before the next one starts. Build that sequencing into the project plan you take to committee, since it is time the estimate has to account for rather than a detail to discover mid-build.
Dropdown and Multi-select Fields Sync One-way Only
A dropdown, radio select, multi-select or checkbox field will not sync both ways: it flows one direction only, from Dynamics into a plain text field on the HubSpot side. Structured data arrives unstructured, and that is exactly the field type carrying emirate, jurisdiction and licence-category values that a regional record depends on.
Workaround: Build the matching dropdown or select properties in HubSpot by hand, then use Data Hub or a workflow to turn the arriving text back into structured values. Do this for the regional lists first: emirate, jurisdiction, nationality, since those are the ones most likely to have been typed by hand for years.
Lookup and Reference Fields Do Not Sync
Lookup, or reference, fields are outside what the native connector supports, which means the relational links between Dynamics records carry no equivalent field value once they reach HubSpot. Anything a Dynamics entity model built its structure around is exactly what does not travel.
Workaround: Store the reference as a text-based ID field instead, then map the association by hand once the sync has run. Where the relational structure is genuinely complex, Power Automate, Make or n8n as middleware is worth the setup, particularly for a group structure that never reduces cleanly to a single lookup.
Custom Field Mappings Require Paid Subscription
The default field mappings come free on any HubSpot plan; a custom field mapping between Dynamics and HubSpot does not, and needs a paid Data Hub subscription before it will run. Given how much of a Microsoft-estate deployment is customised beyond the defaults, budget for Data Hub from the outset rather than after the first mapping fails.
Workaround: Move to Data Hub Starter or above, or stay on the default mappings and fill the gaps with CSV imports or an API-based field transfer. Either way, put the decision and its cost into the same procurement submission as the rest of the migration rather than raising it once the committee has already signed off a number.
Deal Line Items Do Not Sync
Line items on a deal sit outside what the native Dynamics 365 connector will sync at all, and the gap runs both ways: a price you change on a HubSpot deal record never reaches the Dynamics sales order it created. Anyone reconciling revenue between the two systems needs to know which side is authoritative before go-live, not after finance finds the mismatch.
Workaround: Move line items by hand, through a CSV import or the API, and if the two systems need to stay in step afterwards, put middleware in place for ongoing synchronisation rather than relying on the native connector to pick it up.
No List-to-list Sync
Dynamics 365 marketing lists have no native path into HubSpot's active lists or segments: nothing keeps the two in sync automatically.
Workaround: Rebuild the lists in HubSpot using filters and properties rather than expecting a transfer, and where the membership itself matters, export it from Dynamics and bring it in as a contact property. Do this early for any list a regional campaign calendar depends on, Ramadan or Eid promotions among them, since those are the lists most likely to be needed again within weeks of cutover.
One-to-one Record Sync Model Only
The native connector holds strictly to one record on each side: a single HubSpot contact cannot generate or sync to more than one Dynamics lead, even though a Dynamics implementation built around repeat enquiries from the same buyer often depends on exactly that. Where a single contact opens more than one opportunity, at different entities in a group or in different markets, that structure does not survive the sync as built.
Workaround: Bring in middleware, Power Automate, Make or n8n, wherever the relationship is genuinely many-to-one or one-to-many, or redesign the data model around the one-to-one constraint the native connector actually enforces. Decide which route before the sync goes live: retrofitting middleware after records have already landed wrong is a second project on top of the first.
Account Hierarchies and Territory Rollups Break
Parent-child account hierarchies and the territory rollups built on top of them do not survive the native sync at all. For a group that trades through a holding company and several operating or free-zone entities, that hierarchy is usually the only record of which accounts actually belong together, and losing it is losing the structure, not just a field.
Workaround: Recreate the parent-child company associations in HubSpot by hand, hold the territory information in custom properties, and rebuild the territory logic itself using HubSpot Teams and workflows. Give this rebuild to whoever already knows which entities in the group are one customer, because that is knowledge no import script carries with it.
Opportunity Status Codes May Not Align
Dynamics opportunity status codes and stages rarely map onto HubSpot deal stages without a gap, and where they do not, revenue gets attributed to the wrong stage or the wrong period. That is the kind of discrepancy a finance committee notices in the first board pack after go-live, not a cosmetic mismatch.
Workaround: Write the stage mapping document before a single opportunity moves, configure the HubSpot pipeline to mirror the Dynamics stages it replaces, and use a milestone-mirroring approach so a deal's position reads the same in both systems while they run in parallel.
Owner Mapping Conflicts Between Systems
Dynamics assigns through queues; HubSpot assigns through round-robin, and the two logics do not translate cleanly, which shows up as lead routing conflicts once both are running. Decide which model the sales organisation will actually keep before the sync is switched on, not while leads are landing with nobody assigned.
Workaround: Set the owner mapping rules before the sync runs, name one system as the source of truth for ownership, and use conditional sync logic to stop the owner field being silently overwritten from the other side. Confirm the source-of-truth decision with the country or division heads who actually run the queues, not with the project team alone.
Offline Dynamics Activities May Not Sync
An activity logged offline in Dynamics, through the mobile app with no connection, for example, may simply never reach HubSpot at all. Where field sales or site visits are the norm rather than the exception, and connectivity on a construction site or a remote project is not guaranteed, that gap can be a meaningful share of the activity record.
Workaround: Make offline sync a habit before go-live, not an assumption: confirm every Dynamics user has synced their offline activity before expecting it in HubSpot. Where that discipline cannot be guaranteed across a distributed field team, sync a summarised Last Activity Date instead of trying to carry every individual entry.
Tasks Associated With Leads Have One-way Sync Only
A task tied to a Dynamics Lead moves one way only, from Dynamics into HubSpot, and never back. Two-way task sync needs the task associated with a Contact or another supported object instead, so the direction a task travels depends on what it is attached to, not on the task itself.
Workaround: Attach tasks to contacts rather than leads wherever the process allows it, and where a task has to sit against a lead, accept the one-way sync rather than building a workaround for it.
Race Conditions With Bidirectional Sync
Sync everything bidirectionally and a race condition becomes possible: whichever system wrote last wins, which can silently overwrite a change someone intended to keep. In a team spread across time zones or working staggered hours around Ramadan, last write wins is not always the same as correct write.
Workaround: Set clear ownership per field rather than leaving every field open to both systems: run owner, stage and revenue one-way only, since those are where conflicts bite hardest, and implement conditional sync logic through middleware for anything more nuanced.
Custom Entity Sync Has Limited Native Support
Microsoft Dynamics 365 is on HubSpot's list of supported apps for custom object sync, but the listing is more optimistic than the field reports: a complex custom entity does not always sync reliably through the native Data Sync connector, and one with genuinely complex relationships may need a third-party tool regardless of what the listing promises. Treat 'supported' as a starting point to test, not a guarantee, particularly for the entities modelling units and towers, tenders, or licensed products that a regional deployment tends to build custom around.
Workaround: Test every custom entity in a sandbox before trusting it in production, and where the sync proves unreliable, move to a third-party tool: Make, Power Automate or a custom Azure Function are all realistic given a Dynamics estate already sits inside Microsoft's ecosystem. An API-based custom integration is the fallback if none of those close the gap.
Attachments and Files Do Not Sync Natively
File attachments and documents held in Dynamics 365 do not move through the native Data Sync connector at all. Trade licence copies, tender submissions and signed contracts sitting on a Dynamics record are exactly the files this gap leaves behind.
Workaround: Smart Transfer's one-time transfer is the route for attachments; for anything it misses, download and re-upload the critical files by hand, and script the transfer through the API where the volume is too large for a manual pass. Prioritise the licence, tender and contract documents first: they are the ones a retention review asks for.
Three Microsoft Dynamics 365 Features HubSpot Cannot Replace
No workaround closes these. Each one is a capability you would be giving up, so decide who in the business can live without it before you commit to a date.
Who Knows Whom
There is no relationship-graph feature in HubSpot to surface who on your team already knows someone at a target account: that intelligence has to come from a third-party tool such as Affinity, the product Nudge.ai became, or LinkedIn TeamLink, run alongside HubSpot rather than inside it.
Field Service
If work orders, route optimisation or technician scheduling run through Dynamics Field Service today, none of that has anywhere to go inside HubSpot: field service management is not a capability HubSpot offers. A dedicated solution, ServiceTitan, Jobber or FieldEdge, has to sit alongside HubSpot and integrate with it instead.
Power Automate - Desktop Flows (RPA)
HubSpot has no robotic process automation capability of its own, so any desktop flow automating a legacy application keeps running exactly where it is: as a standalone RPA platform, UiPath, Power Automate Desktop running on its own, or Automation Anywhere, rather than something the migration folds into HubSpot.
Four Things a Migration Does Not Rebuild
These are Microsoft Dynamics 365's own code and products, and a HubSpot migration will not carry them across: they carry no hours in the estimate. They still need a decision before cutover, because you are the one giving something up.
Power Apps (Model-Driven & Canvas)
Every Power App in your estate needs rethinking from its purpose outward, not a straight port: a model-driven app maps partially onto HubSpot record customisation, while a canvas app has no equivalent at all and needs external web application development to replace it. Work through each app's purpose, its user base and how critical it actually is to the business before committing to a rebuild, because a Power Apps estate of any size is often a major project sitting inside the wider migration rather than a task within it.
Plugins (Custom Code)
Every plugin in your Dataverse estate is custom .NET code with no direct equivalent in HubSpot, so each one needs individual analysis: does the logic become a workflow, a custom code action, or does it need an external service running alongside HubSpot instead? Pre-operation and pre-validation plugins are the hardest of the three, because HubSpot has no server-side point in the save sequence that can block a record from saving the way these do. Count every plugin in the estate before estimating the rewrite, not after.
Azure Integration (Service Bus, Functions, Logic Apps)
An Azure integration is rarely a single connection: Service Bus, Functions, Logic Apps and the rest tend to sit deep inside the wider enterprise architecture, so every touchpoint needs its own evaluation rather than a blanket assumption either way. Some can simply redirect to the HubSpot API; others need rearchitecting from scratch. Where your organisation is heavily invested in Azure, treat this as a major workstream of its own rather than a subtask of the CRM move.
Dual-Write (Finance & Operations)
If your organisation runs Dynamics CRM and Dynamics Finance & Operations together, dual-write is doing real work today keeping customer, product and financial data in step across both, and moving the CRM half to HubSpot breaks that native sync outright. A custom integration between HubSpot and the ERP side has to replace it, so map every data flow running between CRM and ERP before the migration plan is written, not after.
The 26 Items That Get Rebuilt by Hand
This is the list that separates a quote that holds from one that does not.
Data And Objects
Custom Entities and Data Model
Custom entities, their relationships and the wider data model behind them all need redesigning before they are rebuilt in HubSpot: nothing here transfers as configured.
HubSpot: HubSpot Custom Objects
HubSpot caps the number of custom object definitions available, and a Dynamics entity built on complex relationships, many-to-many links or polymorphic lookups, often needs simplifying before it fits inside that limit. Plan the schema carefully, and do it before the entities that model tenders, units or licensed products are redesigned, since those are usually the most complex ones in a regional deployment.
Account Hierarchies
Parent-child account relationships and the territory rollup structures sitting on top of them do not transfer at all.
HubSpot: HubSpot parent-child company associations
Rebuild the hierarchy using HubSpot's company association labels, and where the structure runs several levels deep, a holding company over multiple operating and free-zone entities, for instance, a custom object may be needed rather than the standard association alone.
Marketing Lists
Neither static nor dynamic Dynamics 365 marketing lists sync to HubSpot; both need rebuilding on the other side.
HubSpot: HubSpot Active Lists and Static Lists
Recreate the list criteria inside HubSpot's own filter system, and for a static list, import the membership directly through a CSV rather than trying to rebuild it filter by filter.
Attachments and Documents
File attachments, any SharePoint document linked from Dynamics, and notes carrying their own attachments all fail to sync: three separate gaps rather than one.
HubSpot: HubSpot file manager and record attachments
Smart Transfer's one-time transfer covers attachments, and HubSpot offers a separate SharePoint integration for the linked documents, so the two gaps close through two different tools rather than one.
Deal Line Items
Line items on an opportunity or deal do not sync at all, and a price changed afterwards on a HubSpot deal never reaches the Dynamics sales order it created.
HubSpot: HubSpot Deal Line Items
Import line items through CSV, and set up the HubSpot product library before that import runs, not after, since a CSV import with nothing to match against fails silently.
Automation
Power Automate Flows and Business Process Flows
Power Automate flows, business rules and Business Process Flows all need a full rebuild inside HubSpot: nothing here is a migration, because HubSpot has no import path for any of the three.
HubSpot: HubSpot Workflows
Document every automation that exists today before touching HubSpot's side. HubSpot workflows are visual and branch-based rather than flow-based, and Power Automate's connector ecosystem reaches further, so a flow built against a Microsoft-only connector may need a middleware replacement rather than a direct rebuild.
Business Rules and Plugins
There is no like-for-like HubSpot equivalent for a Dynamics server-side plugin or business rule, though most of the logic finds a new home: rule-style field logic moves into workflows, and Data Hub custom code actions run JavaScript or Python server-side for anything heavier. What genuinely does not map is synchronous execution against the record write path itself: a plugin that fires and completes before the save finishes has no HubSpot equivalent to relocate into.
HubSpot: HubSpot Workflows with custom coded actions (Data Hub) or serverless functions
Where the server-side logic is genuinely complex, move it to an external service and call it through a HubSpot webhook action or a custom coded workflow action rather than trying to force it into a native workflow step.
Email Templates and Sequences
Email templates and sales sequences both need rebuilding from nothing; neither carries across from Dynamics.
HubSpot: HubSpot email templates and Sequences (Sales Hub)
Rebuild every template directly in HubSpot, and while you are at it, build the Arabic and English versions as separate templates rather than one with a language switch: HubSpot's Sequences tool offers more advanced automation than the standard Dynamics email sequence it replaces, which is worth designing for properly rather than matching feature for feature.
Lead Routing and Queue Logic
Queue-based lead routing, round-robin assignment inside a queue and any SLA timer attached to it all need recreating from scratch in HubSpot.
HubSpot: HubSpot lead routing, round-robin assignment, and SLA tools
HubSpot's native lead routing covers a good share of this, though queue-based logic specifically may need a workflow-based alternative built to match it. Design the routing around the actual working week first, Sunday to Thursday across much of the Gulf rather than Monday to Friday, since an SLA timer built on the wrong week misfires from day one.
Approval Flows
Approval flows, whether built in Power Automate or custom, have only a limited equivalent on the HubSpot side. That gap lands hardest on the approval chains a committee-run purchase actually depends on: the discount that needs finance sign-off, the tender response that needs the general manager.
HubSpot: HubSpot Workflows with approval actions or third-party approval tools
HubSpot's native approval tools stay basic, so a genuinely multi-step approval, spanning finance, IT and a business sponsor, usually needs a custom solution built around it rather than a native feature switched on.
Reporting
Dynamics Reports and Views
Every Dynamics 365 report, advanced find view and personal view needs rebuilding in HubSpot; none of it imports.
HubSpot: HubSpot custom reports, with the custom report builder plan-gated
Separate what is actively used from what is legacy before rebuilding either, since HubSpot's reporting works on a different paradigm entirely and a like-for-like copy of an old report rarely lands well. A complex cross-entity report, one drawing on units, tenders or licensed entities together, may need Data Hub to perform the data joins Dynamics did natively.
Power BI Dashboards
Any Power BI dashboard reading from Dynamics loses that data source the moment the CRM changes underneath it.
HubSpot: HubSpot Dashboards or reconnect Power BI to HubSpot API/data export
Rebuild the dashboards natively in HubSpot, or reconfigure Power BI to pull from HubSpot instead, using the Power BI connector HubSpot already provides. Where a board pack is built on Power BI, confirm which route finance actually wants before the dashboards disappear.
Forecasting Configuration
Forecasting models, their hierarchies and every historical forecast built on them stay behind in Dynamics; none of it transfers.
HubSpot: HubSpot Forecasting (Sales Hub)
Rebuild the forecast categories from scratch, and map every Dynamics opportunity stage to its HubSpot deal stage carefully, since accurate pipeline analysis depends entirely on that mapping being right, particularly where a deal's true position tracks a committee approval chain more than the stage label suggests.
Dynamics Dashboards
Interactive dashboards, entity-specific dashboards and the system dashboards underneath them all need recreating; none of the three carries across.
HubSpot: HubSpot Dashboards
HubSpot dashboards are quicker to put together than their Dynamics counterparts, though not every Dynamics chart type has a direct HubSpot match, so check the specific visualisations leadership actually reads before assuming a straight swap.
Sales And Marketing Config
Lead Scoring Models
Lead scoring, whether it ran natively in Dynamics or through Dynamics Marketing and Customer Insights, needs recreating rather than importing.
HubSpot: HubSpot Lead Scoring (Marketing Hub) or Breeze predictive scoring
Rebuild the scoring criteria directly in HubSpot, which supports both rule-based and predictive scoring, and use the rebuild as the moment to weight the criteria toward where regional demand actually arrives: exhibition floors, WhatsApp enquiries and referral within a group, rather than a scoring model inherited unchanged from the old system.
Marketing Campaigns and Customer Journeys
Journeys, segments and the campaign orchestration built in Dynamics Marketing or Customer Insights do not transfer at all; the whole layer needs rebuilding.
HubSpot: HubSpot Marketing Hub campaigns, workflows, and automated email sequences
This is a complete re-architecture of marketing automation rather than a migration: Dynamics Customer Insights and HubSpot Marketing Hub work on genuinely different paradigms, so budget the rebuild as new work, not as a configuration exercise.
Quotes and Sales Literature
Quotes, sales literature and competitor tracking all need rebuilding inside HubSpot; none of the three carries across from Dynamics.
HubSpot: HubSpot Quotes, Playbooks, and Competitor tracking properties
HubSpot's quoting tool is simpler than Dynamics quotes, so check it against what a regional sales process actually needs, multi-currency line items and market-by-market VAT treatment among them, before assuming it covers the same ground. Sales literature itself can move into HubSpot's document tool once the quoting question is settled.
Forms and Lead Capture
Any web form built on Dynamics, or a Power Apps portal used for lead capture, needs replacing entirely rather than migrating.
HubSpot: HubSpot Forms and Landing Pages
HubSpot forms carry more functionality than what they replace, but every website property needs its embed code updated to point at the new form, and that update is where a form quietly keeps submitting to the old system if it is missed.
Knowledge Base Articles
Knowledge base articles held in Dynamics 365 Customer Service do not transfer at all.
HubSpot: HubSpot Knowledge Base (Service Hub)
Export the articles as content and rebuild them inside HubSpot's own knowledge base, and where an article's old URL is indexed or bookmarked, particularly an Arabic-language one that may be harder to rebuild search visibility for, set up a redirect rather than letting the link go dead.
Users And Permissions
Security Roles and Business Units
Security roles, business units and field-level security settings all stay behind in Dynamics: none of the three moves across with the data.
HubSpot: HubSpot Teams, User Roles, and Permission Sets
HubSpot's permission model is simpler than what it replaces, and Dynamics' field-level security in particular has only a limited equivalent there. In a multi-entity regional group, whether someone in one hub may open another entity's customer records is a data protection question as much as a configuration one, and it should be settled with whoever owns that policy before the permission sets are built. Confirm the tier against the feature table too: the advanced permissions are plan-gated, and a control promised before that check is a control that may not exist on the plan actually purchased.
Teams and Business Unit Hierarchy
The business unit hierarchy and the team structures built on it need recreating from the ground up; neither carries across.
HubSpot: HubSpot Teams, with hierarchical teams plan-gated
Map each Dynamics business unit to a HubSpot team, and where the hierarchy runs several levels, a holding structure with mainland and free-zone entities beneath it, for example, expect to simplify it rather than reproduce every level exactly.
User Setup and Owner Mapping
Every Dynamics user record needs mapping to a HubSpot user before owner assignment on any record will be correct.
HubSpot: HubSpot Users with owner properties
Create every HubSpot user before migration starts and map by email address rather than by name, since the same person often appears under more than one entity domain across a regional group. Decide separately how to handle deactivated or historical Dynamics users: leaving their records unowned is a decision, even if nobody makes it deliberately.
Integrations
Outlook Integration
The deep Outlook integration Dynamics 365 offers, the App for Outlook and its server-side sync, needs a full replacement rather than a lighter equivalent.
HubSpot: HubSpot Sales Office 365 add-in and connected email
HubSpot has its own Outlook integration, but the features differ in a real way: Dynamics' server-side sync in particular has no direct equivalent on the HubSpot side, so test the gap against what the sales team actually relies on in Outlook before promising parity.
SharePoint Integration
The document management link between Dynamics and SharePoint does not carry over: it is simply lost on migration.
HubSpot: HubSpot SharePoint integration or file manager
HubSpot offers its own SharePoint integration, though moving to it usually means reconfiguring how documents are stored rather than pointing the old setup at a new system.
Power Platform Connections
Power Apps, Power Automate and Power Virtual Agents built against Dynamics all lose the data source they were reading from the moment Dynamics stops being the CRM of record. For an organisation that bought Dynamics as part of a wider Microsoft estate, Azure, Entra ID and the rest of Power Platform included, this is often where the real scope of leaving Dynamics becomes visible.
HubSpot: HubSpot API + third-party automation (Make, Zapier) or custom apps
A Power Platform connection cannot simply be redirected at HubSpot; assess which of the Power Apps, flows or virtual agents actually matter to the business first, and rebuild only those, rather than trying to preserve everything Dynamics ever fed.
Third-Party Dynamics Apps
Every app currently connected to Dynamics, the accounting software, ERP modules, Slack, Zoom and whatever else sits in the stack, needs reconnecting to HubSpot individually rather than moving across as a set.
HubSpot: HubSpot App Marketplace integrations
Audit every connected app before migration and check the HubSpot Marketplace for an equivalent one by one: some Dynamics-specific apps have no HubSpot version at all. The ERP integration is usually the hardest to replace, and where finance runs the ERP as the actual system of record, that replacement deserves its own line in the project plan rather than a place inside the general integrations task.
The Sequence
Sync First, Then Migrate
Order is the content here. These steps form a dependency chain, and running them out of sequence is a documented way this kind of migration fails.
- 1
Audit Everything First
every Dynamics 365 entity, field, relationship, business rule, Power Automate flow, report and integration, written down before a single record moves, because this list becomes the scope the rest of the project is priced against
- 2
Pre-clean the Data
deduplicate records, standardise field values and validate data quality, giving bilingual records their own pass since a company entered under both an English trading name and a transliterated Arabic one is two records no automatic rule will pair, then export the critical data as CSV backups before anything else touches it
- 3
Plan the Field Mapping
build the document matching every Dynamics field to its HubSpot property, in a form a procurement committee can read, and identify the custom properties and objects HubSpot will need before a single one is created
- 4
Configure HubSpot Itself
custom properties, deal pipelines, ticket pipelines, custom objects, teams and user permissions, deciding at this stage rather than later whether a user in one entity's hub may see another entity's records
- 5
Connect the Integration
find Microsoft Dynamics 365 in the HubSpot Marketplace and connect it using the Dynamics subdomain your organisation actually runs on
- 6
Configure the Object Sync One Type at a Time
contacts first, then companies, then deals, setting the sync direction and field mappings for each before moving to the next
- 7
Test With Sample Data Before Anything Real Is at Stake
5 representative records per object type first, checked for field mapping accuracy, then 50, then the full production set, deliberately including Arabic-script records and multi-part names in every sample, since that is where a split name or a mangled character shows up and a Latin-only sample would show nothing
- 8
Run Smart Transfer for Everything the Ongoing Sync Will Not Carry
attachments, segments and historical data, giving the licence, tender and contract documents in that batch the attention they need rather than treating the transfer as a formality
- 9
Rebuild the Automation
recreate Power Automate flows as HubSpot workflows, and rebuild the business process flows, email templates and sequences alongside them, keeping an Arabic and an English version of anything customer-facing as separate builds rather than one template with a language switch
- 10
Rebuild the Reports
recreate the critical reports and dashboards in HubSpot, built around the cuts a regional board actually asks for, performance by market and by legal entity rather than by team alone, and reconnect Power BI where it is still in use
- 11
Train the Teams
run department-specific sessions for sales, marketing and service rather than one generic walkthrough, and schedule them against the working week the team actually keeps and around Ramadan hours rather than a standard Monday-to-Friday calendar
- 12
Run Both Systems in Parallel for 1 to 2 Weeks to Validate Data Integrity and Workflow Accuracy Before Either One Is Trusted Alone
Run both systems in parallel for 1 to 2 weeks to validate data integrity and workflow accuracy before either one is trusted alone
- 13
Cut Over
make HubSpot the primary CRM, disable the Dynamics sync and update every integration and form submission to point at it, choosing the date against the Hijri calendar as well as the Gregorian one so a cutover the week before Eid does not train half the team and strand the rest
- 14
Monitor for 2 to 4 Weeks After Go-live
check the sync logs, error reports and user-reported issues daily, and treat that window as part of the migration itself rather than as optional aftercare
Typically 3-8 weeks end to end, depending on how much of the source configuration is actually in use.
Effort Estimator
How Big Is This Migration?
A handful of questions, no sign-up required. The ranges come from the research above: every feature we mapped carries an effort figure, and this totals the ones that apply to your instance.
Estimated Effort
Answer a couple of questions and an hours range appears here.
Built from our research on 82 Microsoft Dynamics 365 features. It is a range, not a quote.
A planning range, not a quote. It is delivery effort only, with no project management line. What moves it most in practice is data quality.
What Goes Wrong Most Often
The failures that show up again and again, in roughly the order they bite.
Dropdown and Multi-select Fields Sync One Way Only, Landing as Plain Text
structured data becomes unstructured the moment it crosses over, and the emirate, jurisdiction and nationality lists are usually the first to feel it
Lookup and Reference Fields Carry No Native Sync Path at All, Which Means Relational Data Is Lost Unless It Is Caught and Rebuilt Separately
Lookup and reference fields carry no native sync path at all, which means relational data is lost unless it is caught and rebuilt separately
Account Hierarchies and Territory Rollups Break During Migration, Taking With Them the Only Record of Which Entities in a Group Actually Belong Together
Account hierarchies and territory rollups break during migration, taking with them the only record of which entities in a group actually belong together
Opportunity Status Codes May Not Align Between the Two Systems, and When They Do Not, Revenue Gets Attributed Against the Wrong Stage or Period
Opportunity status codes may not align between the two systems, and when they do not, revenue gets attributed against the wrong stage or period
Owner Mapping Conflicts Arise Between Dynamics Queues and HubSpot's Round-robin Assignment, and They Surface as Leads Landing With the Wrong Owner or None at All
Owner mapping conflicts arise between Dynamics queues and HubSpot's round-robin assignment, and they surface as leads landing with the wrong owner or none at all
Activities Logged Offline in Dynamics, From a Mobile App With No Connection, May Never Appear in HubSpot at All, Which Matters Most for Field Teams Working Sites With Patchy Coverage
Activities logged offline in Dynamics, from a mobile app with no connection, may never appear in HubSpot at all, which matters most for field teams working sites with patchy coverage
Tasks Associated With a Lead Sync One Way Only, Dynamics to HubSpot, and Never Travel Back
Tasks associated with a Lead sync one way only, Dynamics to HubSpot, and never travel back
Deal Line Items Do Not Sync at All and Have to Be Migrated as a Separate Step, on Their Own Timeline
Deal line items do not sync at all and have to be migrated as a separate step, on their own timeline
One HubSpot Contact Cannot Map to More Than One Dynamics Lead, a Real Limit for Any Buyer Who Opens More Than One Opportunity Across a Group's Entities
One HubSpot contact cannot map to more than one Dynamics lead, a real limit for any buyer who opens more than one opportunity across a group's entities
Custom Field Mappings Need a Paid Data Hub Subscription; Without It, Only the Default Mappings Are Available, and the Fields a Regional Record Is Actually Identified By, Trade Licence Number, VAT Registration, Entity of Record, Are Almost Always the Custom Ones
Custom field mappings need a paid Data Hub subscription; without it, only the default mappings are available, and the fields a regional record is actually identified by, trade licence number, VAT registration, entity of record, are almost always the custom ones
Every Power Platform Integration Connected to Dynamics, Power Apps, Power Automate and Power BI Among Them, Loses Its Data Source the Moment Dynamics Stops Being the System of Record, Which Is Often the Moment the True Scope of Leaving a Microsoft Estate Becomes Clear
Every Power Platform integration connected to Dynamics, Power Apps, Power Automate and Power BI among them, loses its data source the moment Dynamics stops being the system of record, which is often the moment the true scope of leaving a Microsoft estate becomes clear
Lifecycle Stages Can Get Silently Overwritten by Automated Marketing Workflows, Which Produces False SQL Counts That a Sales Leader Will Eventually Notice Do Not Match the Pipeline
Lifecycle stages can get silently overwritten by automated marketing workflows, which produces false SQL counts that a sales leader will eventually notice do not match the pipeline
Migrating Everything at Once Over a Single Weekend Is a Reliable Way to Create a Disaster
use the phased approach instead, 5 records, then 50, then full production, validating at each stage before scaling to the next
One Mismatched Column, or a Single Incorrect Field Mapping, Is Enough to Import Thousands of Records Wrong, Which Is Why the 5-record and 50-record Validation Stages Exist Rather Than Trusting the Mapping Document Alone
One mismatched column, or a single incorrect field mapping, is enough to import thousands of records wrong, which is why the 5-record and 50-record validation stages exist rather than trusting the mapping document alone
Questions
Microsoft Dynamics 365 To HubSpot, Answered
Yes. Data sync, two way, covering 15 objects. Smart transfer is supported. What it will not do is rebuild your configuration: that is the 26 items below.
Typically 3-8 weeks. Complexity is driven by automation and reporting depth, not by record count: the connector moves records, so a large database on its own will not extend the timeline.
Of 82 features we mapped, 22 (27%) carry across directly and 57 (70%) map partially, meaning something is lost or reshaped along the way. 3 have no HubSpot equivalent at any tier, worth raising before sign-off rather than after.
26 items have to be rebuilt by hand, and 15 documented limitations are not surfaced by the connector at all. Both lists are on this page, in full, for whoever is scoping the work.
The base integration itself costs nothing beyond whatever HubSpot plan you already hold. Go past the basics and each layer adds its own requirement: a paid Data Hub subscription, Starter or above, for custom field mappings; Enterprise for custom object sync; Professional or Enterprise for workflow automation on sales orders. On the Dynamics 365 side, the account doing the syncing needs Read and Write permissions for every record type it touches, not just the ones you plan to use first.
3: Who Knows Whom, Field Service, Power Automate - Desktop Flows (RPA). If your team depends on one of these, settle it before you sign rather than discovering it at cutover, when the alternative is a custom build.
No. 4 items on this page are Microsoft Dynamics 365's own code and products, which a HubSpot migration does not port and which carry no hours in any estimate you are given. They still need a decision before cutover, because you are the one giving something up.
Only in one direction. The sync is not bidirectional here, so running both systems means choosing a system of record up front and accepting drift in the other.
Ready to Get Started?
Plan Your Migration
Tell us which platform you are leaving, how much of it is custom, and when you need to be live in HubSpot. We will tell you what transfers directly, what needs rebuilding, and how long the move actually takes.