CRM migration
Field-level mapping, validation, and rollback between D-Tools and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
D-Tools
Source
Salesforce Sales Cloud
Destination
Compatibility
10 of 11
objects map 1:1 between D-Tools and Salesforce Sales Cloud.
Complexity
CModerate
Timeline
48–72 hours
Overview
D-Tools serves low-voltage system integrators with a project-centric data model that includes Clients, Companies, Projects, Service Plans, Change Orders, Locations, Tasks, and an integrated product catalog (i3). Salesforce Sales Cloud is an account-and-opportunity CRM that standardizes on Account, Contact, Lead, Opportunity, Case, Contract, Product2, and custom __c fields. The two platforms diverge significantly: D-Tools has no Lead object (deals are tracked as Projects), no native quoting, and no standard workflow engine. Salesforce has no native project-management object — projects map to Opportunities or Cases depending on whether the workflow is sales-cycle or post-sale service. FlitStack AI sequences the migration so parent objects load before children: Companies → Accounts first, then Clients → Contacts (with D-Tools client-type flags preserved as a custom pick-list), then Projects → Opportunities with pipeline mapping. Service Plans translate to Salesforce Contracts. Change Orders migrate as a custom junction object with lookup relationships to the parent Opportunity and the relevant Product2 records. The i3 product library (D-Tools' integrated parts database) is exported as a Product2 reference dataset and can be linked to Salesforce CPQ for quote generation post-migration. D-Tools' middleware API (120 calls/min, 10k/day) is used for extraction under scoped read access — your team continues working in D-Tools throughout the migration. A delta-pickup window captures in-flight changes during cutover.
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.
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 Salesforce Sales Cloud, 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
Salesforce Sales Cloud
Contact
1:1D-Tools Clients map directly to Salesforce Contacts. D-Tools stores client name, phone, email, address, and primary company link. The client_type flag (e.g., Residential, Commercial, Government) is preserved as a custom pick-list field Client_Type__c on the Salesforce Contact record. Clients without an email address are flagged for manual review before migration.
D-Tools
Company
Salesforce Sales Cloud
Account
1:1D-Tools Companies map to Salesforce Accounts. Company name, domain/website, industry classification, number of employees, and annual revenue transfer directly. D-Tools company hierarchies (parent/child) map to Salesforce ParentId. Multi-location D-Tools companies are represented as one Account with multiple Location custom field records or Address records per Salesforce's address model.
D-Tools
Project
Salesforce Sales Cloud
Opportunity
1:1D-Tools Projects are the primary work record and map to Salesforce Opportunities for active sales-cycle work and to Cases for post-sale installation tracking. The D-Tools project status (Estimate, Proposal, Contracted, In Progress, Completed) maps to Salesforce Opportunity StageName with a value-mapping table built per pipeline. Project budget amounts transfer to Opportunity Amount; projected completion dates transfer to CloseDate.
D-Tools
Project
Salesforce Sales Cloud
Case
1:manyPost-sale D-Tools Projects — those already contracted with installation in progress — split to Salesforce Case records. The Case subject carries the D-Tools project name; description carries the full project scope text. Case Origin maps from D-Tools project source. FlitStack creates a custom Project_ID__c field on Case linking back to the original D-Tools project identifier for traceability.
D-Tools
Service Plan
Salesforce Sales Cloud
Contract
1:1D-Tools recurring service plans (monthly, quarterly, annual billing) map to Salesforce Contracts. Plan type (Dynamic or Fixed price) and billing frequency are preserved as custom fields Plan_Type__c and Billing_Frequency__c on the Contract. Contract start and end dates transfer from the D-Tools service plan effective and expiration dates. D-Tools plan features are stored as a long-text custom field Contract_Features__c.
D-Tools
Change Order
Salesforce Sales Cloud
Custom Object (Change_Order__c)
1:1D-Tools Change Orders have no direct Salesforce equivalent and are migrated as a custom Change_Order__c object with lookup relationships to the parent Opportunity and the relevant Product2 record. Change order status (Pending, Approved, Declined) maps to a Status__c pick-list. Approved amount, client approval date, and description fields transfer as custom fields on the custom object.
D-Tools
Location
Salesforce Sales Cloud
Custom Object (Site_Location__c)
1:1D-Tools Locations (site addresses for installations) have no Salesforce standard equivalent. We create a Site_Location__c custom object with address fields (Street, City, State, PostalCode, Country) plus a lookup to the parent Account. Location types (e.g., Commercial, Residential, Government site) are stored as a pick-list field.
D-Tools
i3 Product Library
Salesforce Sales Cloud
Product2 + PricebookEntry
1:1D-Tools i3 Integrated Product Library (manufacturer part numbers, pricing, compatibility data) maps to Salesforce Product2 as a reference dataset. Product names, manufacturer names, part numbers, and list prices transfer. We create a default Pricebook2 and PricebookEntry records for each product so Opportunities can reference line items immediately. Complex i3 compatibility rules are exported as a separate reference CSV for your Salesforce admin to incorporate into CPQ if needed.
D-Tools
Task / Time Entry
Salesforce Sales Cloud
Task / Event
1:1D-Tools Tasks and time entries (logged by technicians in the field) map to Salesforce Tasks. Task subject carries the D-Tools task name; description carries the time entry notes. Billable hours from D-Tools are stored as a custom Number field Billable_Hours__c on the Salesforce Task record. Original create timestamps and owner assignments are preserved.
D-Tools
Attachment / File
Salesforce Sales Cloud
ContentVersion / Attachment
1:1D-Tools file attachments on Projects, Clients, and Change Orders are exported and re-uploaded to Salesforce as ContentVersion (Files) linked to the parent record. File size limits per Salesforce apply (25MB default per file). Inline images in notes are downloaded and rehosted. The original file name and content type are preserved in Salesforce ContentDocument metadata.
D-Tools
User / Owner
Salesforce Sales Cloud
User
1:1D-Tools users and project owners are matched to Salesforce Users by email address. Unmatched owners are flagged before migration with a report listing each D-Tools owner and their record count. Your team either invites them to Salesforce first or assigns their records to a fallback owner. D-Tools user roles map to Salesforce Profiles and Permission Sets — role definitions are exported as a rebuild reference.
| D-Tools | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Client | Contact1:1 | Fully supported | |
| Company | Account1:1 | Fully supported | |
| Project | Opportunity1:1 | Fully supported | |
| Project | Case1:many | Fully supported | |
| Service Plan | Contract1:1 | Fully supported | |
| Change Order | Custom Object (Change_Order__c)1:1 | Fully supported | |
| Location | Custom Object (Site_Location__c)1:1 | Fully supported | |
| i3 Product Library | Product2 + PricebookEntry1:1 | Fully supported | |
| Task / Time Entry | Task / Event1:1 | Fully supported | |
| Attachment / File | ContentVersion / Attachment1:1 | Fully supported | |
| User / Owner | User1: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
Salesforce Sales Cloud gotchas
Workflow Rules and Process Builder are retired
Bulk API batch quota exhaustion during large imports
Storage overage billing is non-obvious
Account-Contact many-to-many relationship mapping
Territory and team member import ordering dependencies
Pair-specific challenges
Migration approach
Audit D-Tools data model and export via middleware API
FlitStack AI connects to D-Tools Cloud using your API credentials and runs a discovery pass across all entities: Clients, Companies, Projects, Service Plans, Change Orders, Locations, Tasks, and the i3 Product Library. We export data using D-Tools' paginated API within the 120-calls-per-minute ceiling, collecting record counts, custom field definitions, and relationship metadata. For D-Tools SI on-premises instances, we use the native CSV and XML export tools. The audit report identifies every D-Tools entity, its field inventory, and the count of records per object — this becomes the migration scope document and the baseline for the price estimate.
Classify D-Tools Projects into Salesforce Lead and Opportunity records
Based on the audit, FlitStack AI applies a classification matrix to every D-Tools Project: Projects with status Estimate or Proposal map to Salesforce Lead; Projects with status Contracted, In Progress, or Completed map to Salesforce Opportunity. This classification drives which Salesforce RecordTypeId each record receives and determines the field-mapping plan. We deliver the classification map to you for approval before any data is loaded. Any Project that does not cleanly fit either category is flagged for a manual routing decision.
Migrate Accounts and Contacts before Opportunities and Cases
Salesforce requires AccountId before Contact and requires both before Opportunity can reference them. We sequence the migration so Companies → Accounts load first (including parent-account hierarchy resolution), then Clients → Contacts (with client_type__c and AccountId lookups resolved), then Projects → Opportunities and Cases with stage-value mapping per pipeline. Service Plans → Contracts load after the relevant Account record exists. This dependency chain ensures that every Salesforce record lands with its correct foreign-key references intact.
Run a sample migration with field-level diff before full commit
A representative slice — typically 100 to 500 records spanning Clients, Companies, Projects, Service Plans, Change Orders, and Tasks — migrates into a Salesforce sandbox first. FlitStack AI generates a field-level diff comparing source values against destination field values for every mapped field. You can verify that project status → Opportunity StageName value mapping is correct, that change order parent relationships resolve, that i3 products land as Product2 with PricebookEntries, and that owner email resolution produced the expected OwnerId assignments. No full migration commits until you sign off on the sample diff.
Execute full migration with delta-pickup window and one-click rollback
The full migration runs against your Salesforce production org (or sandbox, depending on your cutover plan). During and after the migration, a 24–48 hour delta-pickup window captures any D-Tools records created or modified during the cutover window — your team continues working in D-Tools throughout. FlitStack AI maintains an audit log of every record inserted, updated, or de-duplicated. If reconciliation reveals data integrity issues, one-click rollback reverts the Salesforce org to its pre-migration state. After rollback confirmation, the migration can be re-run with corrected mapping logic.
Platform deep dives
D-Tools
Source
Strengths
Weaknesses
Salesforce Sales Cloud
Destination
Strengths
Weaknesses
Complexity grading
Moderate CRM migration. 1 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across D-Tools and Salesforce Sales Cloud.
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
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 Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your D-Tools to Salesforce Sales Cloud 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 Salesforce Sales Cloud
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.