CRM migration
Field-level mapping, validation, and rollback between Xapsys CRM and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
Xapsys CRM
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
5 of 8
objects map 1:1 between Xapsys CRM and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Xapsys CRM to Microsoft Microsoft Dynamics 365 Sales is a schema-first migration. Xapsys's defining architectural characteristic is its custom entity builder: every deployment has a different set of objects and fields, so no generic field map applies. We begin every engagement by extracting the live schema from the source SQL-backed instance, building a per-field map, validating it against a sample export, and only then running the full import. Custom pipeline stages are mapped as D365 Sales Process stage values, and Documents are imported with their parent-company and parent-opportunity references preserved so that file associations survive the cutover. Xapsys workflow rules and the customer portal configuration do not export; we document every active workflow during discovery and deliver a written rebuild spec for the customer's admin to implement in Power Automate or D365 native workflows post-migration. Microsoft Dynamics 365 Sales pricing starts at $65 per user per month for Professional and runs to $150 or more for Premium with AI and Copilot features, making the destination a significant tier step from Xapsys's £29.95 per user per month entry point.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Source platform
Xapsys CRM platform overview
Scorecard, SWOT, gotchas, and pricing for Xapsys CRM.
Destination platform
Microsoft Dynamics 365 Sales platform overview
Scorecard, SWOT, gotchas, and pricing for Microsoft Dynamics 365 Sales .
Data migration guide
The complete Microsoft Dynamics 365 Sales migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Destination checklist
Microsoft Dynamics 365 Sales migration checklist
Pre- and post-cutover tasks for moving onto Microsoft Dynamics 365 Sales .
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Xapsys CRM object lands in Microsoft Dynamics 365 Sales , including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Xapsys CRM
Company
Microsoft Dynamics 365 Sales
Account
1:1Xapsys Company records map directly to Microsoft Dynamics 365 Account. Company name, address fields, classification tags, and any firm-specific custom fields transfer to the equivalent D365 Account fields or custom fields pre-created on the Account object. Account is imported first so that the parent reference is available when Contact import begins. If Xapsys and an ERP (Sage or Xero) share a company record, scoping determines which system is the system of record to avoid duplication.
Xapsys CRM
Contact
Microsoft Dynamics 365 Sales
Contact
1:1Xapsys Contact records map to D365 Contact with the parent Account reference resolved from the Account import phase. Email, phone, job title, address, and classification tags transfer directly. Any Xapsys custom fields on Contact are mapped to pre-created D365 Contact custom fields. A small percentage of Xapsys Contacts may not have a parent Company; these are imported as Contacts without an AccountId and flagged for admin review.
Xapsys CRM
Opportunity
Microsoft Dynamics 365 Sales
Opportunity
1:1Xapsys Opportunities map to D365 Opportunity with AccountId and OwnerId resolved from the preceding import phases. The critical mapping is the pipeline stage: Xapsys stores stage names as user-defined strings, which must be mapped to D365 Sales Process stage values. We capture every distinct Xapsys stage name during discovery and create a corresponding stage entry in D365 with the correct probability percentage before importing any Opportunity records.
Xapsys CRM
Pipeline Stage
Microsoft Dynamics 365 Sales
Sales Process + Stage
lossyEach Xapsys pipeline with its distinct stage sequence maps to a D365 Sales Process. We create the Sales Process in D365 before Opportunity import, whitelist the correct stage values per process, and set probability percentages that match the customer's historical win-rate data. A stage map document is produced during scoping and validated against a sample of live Opportunity records before the full import runs.
Xapsys CRM
Custom Entity
Microsoft Dynamics 365 Sales
Custom Table (Dataverse)
1:manyXapsys custom entities are the defining migration variable. We extract the live schema from the source instance (object names, field names, field types, lookup relationships) and build a per-field map to D365 Dataverse custom tables. We pre-create the destination custom tables with all fields, data types, and lookup relationships before importing any custom entity data. Custom entity data with lookup references to Companies or Contacts is imported after the parent standard records, in dependency order.
Xapsys CRM
Document
Microsoft Dynamics 365 Sales
SharePoint / Note with parent reference
1:1Xapsys associates documents with both Companies and Opportunities. We extract document metadata (name, type, size, created date, linked parent entity and ID) and import them to D365 SharePoint integration or to Note records with the parent reference preserved. If SharePoint is not yet configured, we use D365 Notes as a holding location and flag the document association for the admin to resolve in the SharePoint admin settings post-migration.
Xapsys CRM
Activity / Task
Microsoft Dynamics 365 Sales
Task
1:1Activity history attached to Xapsys Contacts and Opportunities is mapped to D365 Task records. We preserve activity type (call, email, meeting, task), date, description, and owner. The WhoId on Task is resolved to the migrated Contact record; the WhatId is resolved to the migrated Opportunity or Account. Activity records are imported after Contact and Opportunity import so that parent-record lookups are satisfied.
Xapsys CRM
Tag / Classification
Microsoft Dynamics 365 Sales
Multi-Select Picklist
lossyXapsys classification tags on records are extracted as a distinct value set and mapped to D365 multi-select picklist fields on the equivalent object. Tags with no direct D365 equivalent are preserved in a custom text field for admin review. The tag strategy is agreed during scoping, with a preference to use multi-select picklist where the tag set is under 150 distinct values.
| Xapsys CRM | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Company | Account1:1 | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| Opportunity | Opportunity1:1 | Fully supported | |
| Pipeline Stage | Sales Process + Stagelossy | Fully supported | |
| Custom Entity | Custom Table (Dataverse)1:many | Fully supported | |
| Document | SharePoint / Note with parent reference1:1 | Fully supported | |
| Activity / Task | Task1:1 | Fully supported | |
| Tag / Classification | Multi-Select Picklistlossy | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
Xapsys CRM gotchas
Custom entity schemas vary by deployment
Workflows do not export and must be rebuilt
Reporting is not included in standard package
Sage/Xero integration locks in dual-record discipline
Limited public API documentation
Microsoft Dynamics 365 Sales gotchas
Professional tier 15-table custom table limit blocks migrations
October 2024 pricing increase applies at renewal for all customers
Custom fields must be created in the UI before API writes
Power Platform request limits apply to bulk migrations
Activity records orphaned to inactive owners fail silently
Pair-specific challenges
Migration approach
Schema discovery and custom entity extraction
We connect to the Xapsys SQL-backed cloud instance and extract the live object schema: all standard objects (Company, Contact, Opportunity), every custom entity, all field definitions (names, types, required flags), and all lookup relationships. We cross-reference this against a live data sample to identify which custom entities are actively populated versus which are empty shells from past experimentation. The output is a schema map and a field-level mapping document that serves as the blueprint for all subsequent phases.
D365 Sales schema provisioning
We provision the D365 destination environment: custom tables in Dataverse for every Xapsys custom entity, custom fields on Account and Contact for any Xapsys custom fields without direct D365 equivalents, Sales Processes with stage values mapped from the Xapsys pipeline stages discovered in Phase 1, and lookup relationships configured so that parent-record references are enforced. All schema work is deployed to a D365 Sandbox first for validation before production provisioning begins.
Data cleansing and deduplication
We profile the Xapsys data for quality issues: duplicate Company records (same address or domain), duplicate Contacts (same email address against different Accounts), empty required fields, malformed date formats, and special characters that may cause D365 validation failures. We produce a cleansing report with record counts per issue type. The customer's admin approves the cleansing strategy (fix in Xapsys before export, or flag and fix post-import in D365) before the export runs.
Sandbox migration and reconciliation
We run a full migration into a D365 Sandbox using production-like data volumes. The customer's admin reconciles record counts (Accounts in, Contacts in, Opportunities in, Custom Entity records in), spot-checks 20-30 records against the Xapsys source, and validates that document associations, pipeline stages, and owner assignments transferred correctly. Mapping corrections identified during sandbox validation are applied to the production migration scripts before cutover.
Production migration in dependency order
We run production migration in record-dependency order: Accounts (from Xapsys Companies), Contacts (with AccountId resolved), Opportunities (with AccountId, OwnerId, and Sales Process resolved), Custom Entities (last, because they reference Account and Contact as parents), Activities (Tasks via Dataverse Bulk API with WhoId and WhatId resolved), and Documents (with parent-entity reference preserved). Each phase emits a row-count reconciliation report. The Xapsys instance is frozen from new writes during the cutover window.
Cutover, validation, and workflow rebuild handoff
We run a final delta migration of any records created or modified during the cutover window, then mark D365 as the system of record. We deliver the workflow inventory document to the customer's admin team with a recommended Power Automate rebuild path for each active Xapsys workflow. We support a three-day hypercare window to resolve any immediate reconciliation issues. Post-migration workflow rebuilding, report rebuilding in Power BI, and D365 admin training are outside standard scope and can be scoped as a separate engagement.
Platform deep dives
Xapsys CRM
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Xapsys CRM and Microsoft Dynamics 365 Sales .
Object compatibility
1 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
Xapsys CRM: Not publicly documented.
Data volume sensitivity
Xapsys CRM doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Xapsys CRM to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your Xapsys CRM to Microsoft Dynamics 365 Sales migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Xapsys CRM
Other ways to arrive at Microsoft Dynamics 365 Sales
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.