CRM migration
Field-level mapping, validation, and rollback between ContactWise CRM and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
ContactWise CRM
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
6 of 9
objects map 1:1 between ContactWise CRM and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
3-6 weeks
Overview
Moving from ContactWise CRM to Microsoft Microsoft Dynamics 365 Sales is a migration from a smaller, UK-based contact-center platform into Microsoft's enterprise CRM ecosystem. ContactWise lacks a publicly documented REST API for its CRM module, which constrains how we extract data — we rely on the platform's native export function and assess completeness during discovery before committing to a migration scope. We map ContactWise Contacts and Companies to Dynamics 365 Contacts and Accounts, Leads to Dynamics Leads, and Opportunities to Opportunities with pipeline stage mapping handled through Record Types and Sales Processes. Service desk Tickets do not map directly to any standard Microsoft Dynamics 365 Sales object — we create custom Case fields and preserve the ContactWise ticket reference ID for audit. Workflows and automation rules do not migrate; we deliver a written inventory of every active workflow with a recommended Microsoft Dynamics 365 Sales or Power Automate equivalent for the customer's admin to rebuild. Custom contact and opportunity properties require schema pre-creation in Dynamics before any import begins, and data type transformations (such as multi-select picklists) are applied at transform time.
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
ContactWise CRM platform overview
Scorecard, SWOT, gotchas, and pricing for ContactWise 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 ContactWise 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.
ContactWise CRM
Contact
Microsoft Dynamics 365 Sales
Contact
1:1ContactWise Contact records map directly to Dynamics 365 Contact. We preserve standard fields including name, email, phone, address, and any associated owner. Custom contact properties are identified during scoping, destination custom fields are pre-created in Dynamics 365 with matching data types before import, and value transformations are applied for data type differences (such as converting ContactWise multi-select picklists to Dynamics multi-select option sets). Owner assignment resolves by email match against the destination Dynamics User table.
ContactWise CRM
Lead
Microsoft Dynamics 365 Sales
Lead
1:1ContactWise Lead records map to Dynamics 365 Lead. Lead status and source attribution migrate as custom or standard fields in Dynamics. The Dynamics Lead Status field uses the organization's configured status values, which we configure during schema setup. Lead score and qualification data from ContactWise custom fields migrate to corresponding custom fields on the Dynamics Lead object.
ContactWise CRM
Opportunity
Microsoft Dynamics 365 Sales
Opportunity
1:1ContactWise Opportunity records map to Dynamics 365 Opportunity with deal name, amount, stage, expected close date, and owner preserved. The pipeline stage mapping is handled through a Dynamics Record Type and Sales Process configuration that we deploy before migration. Closed-Won and Closed-Lost reasons from ContactWise custom fields migrate to Opportunity custom fields in Dynamics.
ContactWise CRM
Pipeline Stage
Microsoft Dynamics 365 Sales
Opportunity Stage + Sales Process
lossyContactWise pipeline stage definitions are documented during discovery and mapped to Dynamics Sales Process stage values. Each Dynamics Sales Process is associated with an Opportunity Record Type, and the stage probability percentages migrate to Dynamics StageProbability fields. Stage names are mapped via a written mapping table created during scoping.
ContactWise CRM
Company / Account
Microsoft Dynamics 365 Sales
Account
1:1ContactWise Company records map to Dynamics 365 Account. Company name and address fields correspond directly. Account is created before Contact import so that the parent CustomerId or ParentAccountId lookup is satisfied at the moment of Contact insert. Owner assignment migrates by email resolution against the Dynamics User table.
ContactWise CRM
Service Desk Ticket
Microsoft Dynamics 365 Sales
Case (custom extension)
1:manyContactWise service desk tickets do not map directly to any standard Microsoft Dynamics 365 Sales object. Sales Cloud does not include a native ticket entity; Cases belong to Service Cloud. We create a custom Dynamics entity or extend the Account object with custom ticket fields to receive the ContactWise ticket schema. Every ticket attribute (subject, description, status, priority, created date, closed date, contact reference) is explicitly mapped. The original ContactWise ticket ID is preserved in a custom field for audit trail. Ticket-to-contact associations use the contact reference ID carried through the migration.
ContactWise CRM
Workflow Rules
Microsoft Dynamics 365 Sales
Salesforce Flow (inventory only)
lossyContactWise Workflows store automation logic as platform configuration, not as data records. We cannot export and replay these rules. During discovery we document every active workflow (trigger type, conditions, actions, and associated objects), produce a written inventory with recommended Microsoft Dynamics 365 Sales Flow or Power Automate equivalents, and hand off the inventory to the customer's admin. Workflow rebuild is outside migration scope.
ContactWise CRM
Document / Attachment
Microsoft Dynamics 365 Sales
SharePoint + Note / Attachment
1:1ContactWise documents and attachments associated with Contacts, Opportunities, or Tickets are exported to cloud storage (Azure Blob or customer-specified destination) and linked via SharePoint document locations in Dynamics 365 or as Note/Attachment records on the parent entity. The parent record must exist in Dynamics before attachment import, enforcing the dependency order. File metadata (filename, created date, author) is preserved in the SharePoint location or Dynamics Note.
ContactWise CRM
Time Entry
Microsoft Dynamics 365 Sales
Custom Time Entry Entity or Note
1:1ContactWise time entries linked to Contacts, Tickets, or Projects are exported with their association metadata. Because Microsoft Dynamics 365 Sales does not include a native time-tracking entity, we create a custom TimeEntry entity in Dataverse or attach time entries as Notes on the parent record with structured body content. The customer selects the preferred approach during scoping.
| ContactWise CRM | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Contact | Contact1:1 | Fully supported | |
| Lead | Lead1:1 | Fully supported | |
| Opportunity | Opportunity1:1 | Fully supported | |
| Pipeline Stage | Opportunity Stage + Sales Processlossy | Fully supported | |
| Company / Account | Account1:1 | Fully supported | |
| Service Desk Ticket | Case (custom extension)1:many | Fully supported | |
| Workflow Rules | Salesforce Flow (inventory only)lossy | Fully supported | |
| Document / Attachment | SharePoint + Note / Attachment1:1 | Fully supported | |
| Time Entry | Custom Time Entry Entity or Note1:1 | 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.
ContactWise CRM gotchas
Workflow rules do not export as records
Service desk tickets require non-standard field mapping
API documentation is not publicly available for the CRM module
Custom contact properties may require manual field creation in destination
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
Discovery and export completeness assessment
We audit the ContactWise instance across all supported objects (Contacts, Leads, Opportunities, Accounts, Service Desk Tickets, Time Entries, Documents), custom properties, active workflow rules, and pipeline stage definitions. Because ContactWise lacks a documented CRM API, we assess the native export function's completeness by comparing exported record counts against database record counts where the customer has provisioned direct database access. We identify custom properties, ticket schema, and any orphaned or incomplete records. The discovery output is a written migration scope, an export completeness report, and a list of any data gaps requiring manual correction in ContactWise before export.
Schema design and Dynamics environment preparation
We design the destination schema in Microsoft Dynamics 365 Sales . This includes creating any custom fields needed for ContactWise custom properties (with type-mapped Dynamics data types), configuring Opportunity Record Types and Sales Processes for the pipeline stage mapping, creating a custom ticket entity or Account extension for service desk data, and setting up User accounts for owner reconciliation. Schema is deployed to a Dynamics Sandbox first for validation. We resolve the owner mapping by extracting every distinct ContactWise Owner and matching by email against the destination Dynamics User table, placing unmatched owners in a reconciliation queue for the customer's admin to provision.
Sandbox migration and reconciliation
We run a full migration into a Dynamics 365 Sandbox using production-like data volume from the ContactWise export. The customer's admin reconciles record counts across all objects, spot-checks 25-50 records against the ContactWise source, and reviews the custom field values to confirm transformations applied correctly. Any mapping corrections, data type issues, or missing fields identified in Sandbox are resolved before production migration begins. This step is critical because the undocumented API constraint means export completeness must be verified before committing to the production run.
Production migration in dependency order
We run production migration in record-dependency order: Accounts (from ContactWise Companies), Contacts (with AccountId resolved), Leads, Opportunities (with AccountId, OwnerId, and RecordTypeId resolved), Time Entries (as Notes or custom entity), Documents (to SharePoint with parent link), and Service Desk Tickets (to custom ticket entity). Each phase emits a row-count reconciliation report before the next phase begins. We use Dynamics 365 Bulk API or data import jobs with batch chunking and exponential backoff on rate limit responses. Any records rejected by Dynamics validation rules are captured in an error log and retried after the customer admin resolves the underlying rule or data issue.
Cutover, delta migration, and workflow handoff
We freeze writes in ContactWise during the final cutover window, run a delta migration of any records created or modified during the migration, then enable Microsoft Dynamics 365 Sales as the system of record. We deliver the Workflow inventory document to the customer's admin team with a recommended Microsoft Dynamics 365 Sales Flow or Power Automate equivalent for each rule. We support a one-week hypercare window where we resolve any reconciliation issues raised by the sales or service team. We do not rebuild ContactWise Workflows as Dynamics Flow or Power Automate flows inside the migration scope; that is a separate engagement or an internal admin task.
Platform deep dives
ContactWise CRM
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between ContactWise CRM and Microsoft Dynamics 365 Sales .
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across ContactWise CRM and Microsoft Dynamics 365 Sales .
Object compatibility
All 8 core objects map 1:1 between ContactWise CRM and Microsoft Dynamics 365 Sales .
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
ContactWise CRM: Not publicly documented.
Data volume sensitivity
ContactWise 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 ContactWise CRM to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your ContactWise 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 ContactWise 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.