CRM migration
Field-level mapping, validation, and rollback between D-Tools and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
D-Tools
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
11 of 13
objects map 1:1 between D-Tools and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
48–72 hours of active migration clock time
Overview
D-Tools organizes business around Projects, Clients, Locations, Service Plans, and Change Orders—objects optimized for installation tracking and job costing. Dynamics 365 Sales organizes around Accounts, Contacts, Leads, and Opportunities—objects built for relationship management and sales process automation. These models diverge structurally: D-Tools projects have hierarchical line items tied to a product library, while Dynamics 365 stores product records in a separate catalog with price list associations. We map D-Tools Clients to Accounts, Contacts, and Contacts; D-Tools Projects to Opportunities with custom fields carrying project metadata; D-Tools Service Plans to custom fields or Opportunity Products; and D-Tools Invoices to Invoices with Account linkage. D-Tools Locations collapse into address fields on Account and Contact records. We use D-Tools Cloud API (120 calls/minute, 10,000/day limit) for extraction and Dynamics 365 Dataverse Web API for ingestion. Custom fields created in D-Tools migrate as custom columns in Dataverse. Workflows, automations, and the D-Tools product library require manual rebuild in Dynamics 365 Sales—our migration plan exports workflow definitions as a reference document for your admin team.
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
D-Tools platform overview
Scorecard, SWOT, gotchas, and pricing for D-Tools.
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 D-Tools 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.
D-Tools
Client
Microsoft Dynamics 365 Sales
Account
1:1D-Tools Clients map directly to Dynamics 365 Accounts. Client name becomes Account Name; primary contact email maps to Contact.Email. D-Tools company-level billing address migrates to Account.Address fields. Multi-location D-Tools clients collapse to one Account with additional addresses stored as Contact records.
D-Tools
Client
Microsoft Dynamics 365 Sales
Contact
1:1Every D-Tools Client has at least one primary contact. We extract contact first name, last name, email, phone, mobile, and title. These map to Contact.FirstName, Contact.LastName, Contact.Email, Contact.Phone, Contact.MobilePhone, and Contact.JobTitle. Client-level default contact becomes Account.PrimaryContactId lookup. Secondary contacts on the same client create additional Contact records linked to the same Account.
D-Tools
Project
Microsoft Dynamics 365 Sales
Opportunity
1:1D-Tools Projects are the core business object and translate to Dynamics 365 Opportunities. Project name becomes Opportunity.Name; estimated value becomes EstimatedRevenue. Project status (Active, Completed, On Hold) maps to Opportunity.StateCode with Open/Closed system values. Owner assignment maps via email match to Dynamics 365 User records.
D-Tools
Project
Microsoft Dynamics 365 Sales
Lead
1:manyD-Tools Projects in pre-contract Proposal status route to Dynamics 365 Lead records. Once a D-Tools project moves to Awarded or Active status, it becomes an Opportunity. This split preserves pipeline visibility in Dynamics 365 Sales by keeping pre-sale project definitions separate from active deal records.
D-Tools
Project Location
Microsoft Dynamics 365 Sales
Account.Address or Contact.Address
many:1D-Tools Location records attach to Projects and define installation sites. Each unique location address is de-duplicated and mapped to Account.Address fields. Multiple locations per client collapse to a primary Account site address plus secondary Contact addresses for service-specific locations. Site-level contact names and phone numbers become Contact records linked to the relevant location address.
D-Tools
Service Plan
Microsoft Dynamics 365 Sales
Custom Field on Opportunity + Custom Table
1:1D-Tools Service Plans carry dynamic/fixed pricing, billing frequencies, and RMR (recurring monthly revenue) values. These have no native Dynamics 365 Sales equivalent. We migrate Service Plan metadata as custom Opportunity fields (e.g., Service_Plan_Type__c, Recurring_Monthly_Revenue__c). For complex recurring billing, we create a custom Service_Agreement__c table with OpportunityId lookup.
D-Tools
Project Line Item
Microsoft Dynamics 365 Sales
OpportunityProduct
1:1D-Tools Project line items with product, labor, and markup components map to Dynamics 365 OpportunityProduct records. D-Tools product entries (drawn from the i3 Integrated Product Library) require mapping to Dynamics 365 Product records—if a matching Product record exists, we link it; otherwise we create Product catalog entries during migration.
D-Tools
Change Order
Microsoft Dynamics 365 Sales
Custom OpportunityChangeOrder__c Table
1:1D-Tools Change Orders track scope changes on active projects. Dynamics 365 has no native change order entity. We create an OpportunityChangeOrder__c custom table with Name, Amount, ApprovalStatus, and OpportunityId lookup. Original D-Tools change order numbers preserve as a text field for audit continuity.
D-Tools
Task
Microsoft Dynamics 365 Sales
Task
1:1D-Tools Project tasks map to Dynamics 365 Tasks with RegardingObjectId pointing to the parent Opportunity. Task subject, description, due date, status, and priority map directly. Owner assignment resolves via email match. Completed task timestamps map to ActualEnd; open tasks preserve ScheduledEnd.
D-Tools
Invoice
Microsoft Dynamics 365 Sales
Invoice
1:1D-Tools Invoices map to Dynamics 365 Sales Invoices linked to Account and Opportunity. Invoice number, date, due date, line items, tax, and total all translate field-by-field. D-Tools invoice status (Draft, Sent, Paid, Overdue) maps to Invoice.StatusCode. Paid invoices import as closed invoices; unpaid balances surface as open Dynamics 365 invoices.
D-Tools
Attachment / File
Microsoft Dynamics 365 Sales
Note
1:1D-Tools file attachments on Projects, Clients, and Invoices export and re-upload as Dynamics 365 Notes with DocumentBody (base64). File name becomes Note.Title; file type and original upload date preserve in custom fields. Attachments over 25MB split per Dataverse file size limits.
D-Tools
Custom Property
Microsoft Dynamics 365 Sales
Custom Column (Dataverse)
1:1D-Tools custom properties on any entity (Client, Project, Service Plan) migrate as Dataverse custom columns on the corresponding table. Data type mapping: text to Text, number to Integer or Decimal, date to DateTime, picklist to OptionSet. Dynamics 365 Sales Enterprise unlimited custom tables; Professional limited to 15 tables.
D-Tools
D-Tools Owner / User
Microsoft Dynamics 365 Sales
SystemUser
1:1D-Tools users assigned to Projects and Tasks resolve by email address against Dynamics 365 SystemUser records. Unmatched users flagged in a pre-migration owner report. D-Tools user roles (Admin, Project Manager, Technician) have no direct Dynamics 365 equivalent—Security Role assignment is a post-migration configuration step.
| D-Tools | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Client | Account1:1 | Fully supported | |
| Client | Contact1:1 | Fully supported | |
| Project | Opportunity1:1 | Fully supported | |
| Project | Lead1:many | Fully supported | |
| Project Location | Account.Address or Contact.Addressmany:1 | Fully supported | |
| Service Plan | Custom Field on Opportunity + Custom Table1:1 | Fully supported | |
| Project Line Item | OpportunityProduct1:1 | Fully supported | |
| Change Order | Custom OpportunityChangeOrder__c Table1:1 | Fully supported | |
| Task | Task1:1 | Fully supported | |
| Invoice | Invoice1:1 | Fully supported | |
| Attachment / File | Note1:1 | Fully supported | |
| Custom Property | Custom Column (Dataverse)1:1 | Fully supported | |
| D-Tools Owner / User | SystemUser1: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.
D-Tools gotchas
Dual product API split (Cloud vs. SI) requires product identification first
i3 Product Library is a platform resource, not user data
GetClients API caps at 500 records per request with pagination required
Service plan dynamic pricing rules must be manually reconstructed
Custom report definitions do not transfer between D-Tools instances
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
Audit D-Tools data volume and custom property inventory
We query D-Tools Cloud API to enumerate all Clients, Contacts, Projects, Service Plans, Change Orders, Invoices, and custom property definitions. We capture record counts per entity, identify API rate-limit pacing requirements for extraction, and list every custom field with its data type. This discovery output drives the final migration scope document and identifies which D-Tools entities require custom Dynamics 365 table creation.
Design Dynamics 365 schema and custom table structure
We create a Dynamics 365 Sales solution with the Service_Agreement__c and OpportunityChangeOrder__c custom tables, plus all custom fields from D-Tools custom properties mapped to their target tables. We configure OptionSet values for D-Tools pick-lists, set up Price Lists in the Product Catalog for migrated line items, and create the Sales Process with stage mapping derived from D-Tools project statuses. Security roles and field-level security are configured for custom columns before data ingestion begins.
Resolve D-Tools owners and users against Dynamics 365 SystemUser records
We export all D-Tools users assigned as Project owners, Task owners, and Service Plan managers. Each user's email address is matched against existing Dynamics 365 SystemUser records. Unmatched users are flagged in a pre-migration owner report—your team either invites them to the Dynamics 365 tenant or assigns a fallback owner. No Opportunity or Task lands in Dynamics 365 without a resolved OwnerId.
Run sample migration with field-level diff on 100–500 representative records
We extract a representative slice from D-Tools spanning Clients, Projects, Service Plans, and Change Orders, then load into Dynamics 365. We generate a field-level diff comparing source values against destination field values, verifying that D-Tools project status maps to the correct Dynamics 365 Opportunity StateCode, that Service Plan RMR values landed in the custom currency field, and that Change Orders link to the correct parent Opportunity. You review the diff and approve before full migration commits.
Execute full migration with delta-pickup and audit log
Full data extraction from D-Tools runs with API rate-limit pacing. Accounts and Contacts ingest first to satisfy foreign keys, then Opportunities, Service Plans, Change Orders, and Invoices follow. A delta-pickup window (24–48 hours) captures any D-Tools records created or modified during cutover. FlitStack logs every record operation with before/after snapshots in an audit log. One-click rollback reverts the Dynamics 365 environment to pre-migration state if reconciliation detects data integrity issues.
Platform deep dives
D-Tools
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between D-Tools and Microsoft Dynamics 365 Sales .
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across D-Tools and Microsoft Dynamics 365 Sales .
Object compatibility
All 8 core objects map 1:1 between D-Tools 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
D-Tools: 120 API calls per minute and 10,000 API calls per day per key.
Data volume sensitivity
D-Tools 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 D-Tools to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your D-Tools 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 D-Tools
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.