CRM migration
Field-level mapping, validation, and rollback between D-Tools and HubSpot. We move data and schema; workflows are rebuilt natively in HubSpot.
D-Tools
Source
HubSpot
Destination
Compatibility
14 of 15
objects map 1:1 between D-Tools and HubSpot.
Complexity
CModerate
Timeline
3–5 days
Overview
D-Tools is project-management software purpose-built for low-voltage system integrators — its data model centers on Projects, Clients, Locations, Service Plans, and Change Orders with a heavy emphasis on field-technician task management and job costing. HubSpot CRM has no native project-management object; instead it uses Contacts, Companies, Deals, custom Objects, and a property system that accommodates custom fields and value-mapped pick-lists. The fundamental translation challenge is that D-Tools models physical sites and installation phases as top-level entities, while HubSpot models relationships (contact-company-deal) as the primary record structure. FlitStack AI extracts D-Tools data via its public Cloud API (120 calls per minute, 10,000 calls per day ceiling) using paginated bulk exports, then maps Projects to HubSpot Deals with a D_Tools_Project__c custom object overlay for milestone, location, and change-order fields that have no native HubSpot equivalent. Client records migrate as HubSpot Companies; contacts migrate as HubSpot Contacts associated to those companies. Service Plans become a custom object; time entries and invoices map to deal properties or custom fields. Workflow rules and automation triggers in D-Tools do not migrate — those must be rebuilt in HubSpot's Workflows tool. The migration sequence respects HubSpot's dependency model: companies must exist before contacts, contacts before deals, and deal custom objects must be registered before records land.
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 HubSpot, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
D-Tools
D-Tools Client
HubSpot
HubSpot Company
1:1D-Tools Client records (name, address, phone, website) map directly to HubSpot Company. D-Tools stores the primary contact on the client record; that contact migrates separately as a HubSpot Contact associated via Company association. Multi-location clients with separate D-Tools location records map to additional address properties on the HubSpot Company.
D-Tools
D-Tools Contact
HubSpot
HubSpot Contact
1:1D-Tools Contact (name, email, phone, job_title, address) maps 1:1 to HubSpot Contact. Owner resolution happens by email match against HubSpot users. Contacts without a D-Tools client association land as unassociated HubSpot Contacts and are flagged for manual association before the full migration commits.
D-Tools
D-Tools Project
HubSpot
HubSpot Deal + D_Tools_Project__c custom object
1:1D-Tools Project has no native HubSpot equivalent — it combines deal data (name, value, stage), site location, milestone phases, and task lists. We split the D-Tools Project into a HubSpot Deal (for pipeline stage and deal amount) and a D_Tools_Project__c custom object linked via a custom lookup field on the Deal. The deal name uses the D-Tools project name; the custom object stores location, milestone status, and phase data.
D-Tools
D-Tools Project Location
HubSpot
D_Tools_Project__c custom object property
1:1D-Tools Locations entity stores site address and room-level detail for each project. HubSpot has no Locations object. We store the primary project location as a custom address property on D_Tools_Project__c. For multi-location D-Tools projects, additional locations are stored as a JSON-formatted string property or separate D_Tools_Location__c records linked to the project custom object.
D-Tools
D-Tools Milestone
HubSpot
D_Tools_Project__c Milestone_Status__c custom pick-list
many:1D-Tools Milestones represent project phases (Design, Procurement, Installation, Commissioning). Multiple D-Tools milestone records per project merge into a single Milestone_Status__c pick-list property on D_Tools_Project__c with values representing the most recent milestone reached. Phase-entered dates migrate as milestone-specific custom date fields (e.g., Design_Completed_Date__c) on the custom object.
D-Tools
D-Tools Task / Checklist
HubSpot
HubSpot Task (linked to D_Tools_Project__c)
1:1D-Tools Tasks with checklists and due dates tied to a project map to HubSpot Tasks associated to the D_Tools_Project__c record. D-Tools task status (complete/incomplete) translates to the HubSpot Task completion flag. D-Tools sub-checklist items are stored as a multi-line text custom property on the task since HubSpot Tasks do not support nested checklists natively.
D-Tools
D-Tools Service Plan
HubSpot
D_Tools_Service_Plan__c custom object
1:1D-Tools Service Plans include billing frequency, price (dynamic or fixed), and feature list. HubSpot has no native subscription or service-plan object. We create a D_Tools_Service_Plan__c custom object with fields for plan_name, billing_frequency, monthly_price, and dynamic_flag. Each plan is associated to the D-Tools Client (now HubSpot Company) via a lookup relationship. Recurring billing must be handled by a third-party integration post-migration.
D-Tools
D-Tools Invoice
HubSpot
HubSpot Deal Line Item + D_Tools_Invoice__c custom fields
1:1D-Tools Invoices generated from projects carry line-item detail and payment status. Invoice headers (number, date, total, payment status) migrate as D_Tools_Invoice__c custom fields on the associated HubSpot Deal. Line-item detail (product, quantity, price) migrates as HubSpot Deal Line Items linked to the same Deal. D-Tools payment transactions migrate as activity notes on the Deal.
D-Tools
D-Tools Product (i3 Library)
HubSpot
HubSpot Product
1:1D-Tools Integrated Product Library items (manufacturer, part_number, description, list price) map to HubSpot Product records. The HubSpot Product Name uses the D-Tools product name; manufacturer and part_number store as custom properties. D-Tools dealer-specific pricing requires a custom price property on the HubSpot Product since HubSpot Products support only a single list price without quantity-based tiers.
D-Tools
D-Tools Change Order
HubSpot
D_Tools_Change_Order__c custom object linked to Deal
1:1D-Tools Change Orders modify accepted proposals post-contract. Each change order has a description, value delta, approval status, and product adjustments. We create a D_Tools_Change_Order__c custom object with change_order_name, description, value_delta, approval_status, and a lookup to the associated D_Tools_Project__c. The Deal Amount is not automatically updated — a HubSpot Workflow triggers on change order approval to prompt the admin to update the Deal Amount manually.
D-Tools
D-Tools Time Entry
HubSpot
D_Tools_Time_Entry__c custom object linked to D_Tools_Project__c
1:1D-Tools time entries record labor hours against a project or service call, including technician, date, hours, and description. These map to a D_Tools_Time_Entry__c custom object with technician_name, entry_date, hours, description, and a lookup to the related D_Tools_Project__c. D-Tools owner/technician records without HubSpot user matches are stored as text properties and flagged for owner resolution before final migration.
D-Tools
D-Tools Owner / User
HubSpot
HubSpot User (matched by email)
1:1D-Tools users (sales reps, technicians, project managers) are matched to HubSpot users by email address. D-Tools user IDs are stored as Source_Owner_ID__c on migrated records for traceability. Unmatched D-Tools owners are flagged in the migration plan — teams either invite them to HubSpot first or assign their records to a fallback HubSpot user.
D-Tools
D-Tools Workflow Rule
HubSpot
HubSpot Workflow (must be rebuilt)
1:1D-Tools Workflow Rules trigger notifications and field-update actions on SI entities when criteria are met. HubSpot Workflows operate on CRM records and have a different trigger/action model. D-Tools workflow definitions cannot be migrated — FlitStack exports the rule definitions as a JSON reference document that a HubSpot admin can use to rebuild equivalent HubSpot Workflows manually after migration.
D-Tools
D-Tools Report Definition
HubSpot
HubSpot Custom Report (must be rebuilt)
1:1D-Tools Report Definitions define grouping and parameters for pre-built and custom reports. HubSpot's reporting model is contact-company-deal-centric and does not support D-Tools-style project grouping. Report definitions are exported as reference documentation; HubSpot Custom Reports must be rebuilt by the team post-migration. The underlying data (projects, clients, contacts) is present in HubSpot, but the grouping and parameter logic does not transfer.
D-Tools
D-Tools Company (Business) record
HubSpot
HubSpot Company
1:1D-Tools Company (the business-name record distinct from Client in some configurations) maps to HubSpot Company. In D-Tools Cloud, Client and Company may overlap depending on configuration — we deduplicate based on name + domain match before migration to prevent duplicate HubSpot Companies.
| D-Tools | HubSpot | Compatibility | |
|---|---|---|---|
| D-Tools Client | HubSpot Company1:1 | Fully supported | |
| D-Tools Contact | HubSpot Contact1:1 | Fully supported | |
| D-Tools Project | HubSpot Deal + D_Tools_Project__c custom object1:1 | Fully supported | |
| D-Tools Project Location | D_Tools_Project__c custom object property1:1 | Fully supported | |
| D-Tools Milestone | D_Tools_Project__c Milestone_Status__c custom pick-listmany:1 | Fully supported | |
| D-Tools Task / Checklist | HubSpot Task (linked to D_Tools_Project__c)1:1 | Fully supported | |
| D-Tools Service Plan | D_Tools_Service_Plan__c custom object1:1 | Fully supported | |
| D-Tools Invoice | HubSpot Deal Line Item + D_Tools_Invoice__c custom fields1:1 | Fully supported | |
| D-Tools Product (i3 Library) | HubSpot Product1:1 | Fully supported | |
| D-Tools Change Order | D_Tools_Change_Order__c custom object linked to Deal1:1 | Fully supported | |
| D-Tools Time Entry | D_Tools_Time_Entry__c custom object linked to D_Tools_Project__c1:1 | Fully supported | |
| D-Tools Owner / User | HubSpot User (matched by email)1:1 | Fully supported | |
| D-Tools Workflow Rule | HubSpot Workflow (must be rebuilt)1:1 | Fully supported | |
| D-Tools Report Definition | HubSpot Custom Report (must be rebuilt)1:1 | Fully supported | |
| D-Tools Company (Business) record | HubSpot Company1: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
HubSpot gotchas
Marketing Contacts billing model is migration-critical
Feature tier gating is not visible until onboarding
Mandatory onboarding fees inflate year-one cost
HubSpot CSV importer cannot migrate engagements or attachments
Custom objects require Enterprise and a pre-existing schema
Pair-specific challenges
Migration approach
Audit D-Tools data volume and extract strategy
FlitStack AI reviews the D-Tools environment — client count, project count, product catalog size, active service plans, and open change orders. We determine whether bulk CSV export (for large datasets) or API extraction (for delta and real-time records) is the primary path, accounting for D-Tools' 10,000 calls-per-day API ceiling. We also inventory D-Tools Workflow Rules and Report Definitions for the rebuild reference document. This audit produces a migration plan that specifies the HubSpot custom objects (D_Tools_Project__c, D_Tools_Service_Plan__c, D_Tools_Change_Order__c, D_Tools_Time_Entry__c) required before data extraction begins.
Set up HubSpot custom objects and custom fields
Before any data lands, FlitStack AI creates the D_Tools_Project__c, D_Tools_Service_Plan__c, D_Tools_Change_Order__c, and D_Tools_Time_Entry__c custom objects in HubSpot, plus all required custom properties on Company, Contact, and Deal. We deliver a schema setup plan so your HubSpot admin can pre-create the objects (or approve FlitStack's setup if using admin credentials). This step also includes mapping D-Tools pipeline stages to HubSpot Deal stage values and defining the D_Tools_Project__c lookup relationship on the Deal object.
Resolve D-Tools owners to HubSpot users
D-Tools users (sales reps, technicians, project managers) are matched to HubSpot users by email address. FlitStack AI runs an owner-resolution pass before migration — any D-Tools user without a corresponding HubSpot user is flagged in the migration plan. Your team either invites them to HubSpot first or assigns their records to a fallback HubSpot owner. No record lands in HubSpot without a valid owner reference, which prevents orphaned CRM data after migration.
Run sample migration with field-level diff
A representative slice migrates first — typically 50–200 records spanning clients, contacts, projects, service plans, and change orders. We generate a field-level diff between the D-Tools source and the HubSpot destination so you can verify that D-Tools Project data is correctly split between the HubSpot Deal and D_Tools_Project__c custom object, that milestone and location fields landed in the right places, and that owner resolution worked. This sample run surfaces mapping corrections before the full migration commits.
Execute full migration with delta-pickup window
The full migration runs against HubSpot, extracting D-Tools clients, contacts, projects, products, service plans, invoices, change orders, and time entries. A delta-pickup window (typically 24–48 hours after the full run) captures any D-Tools records created or modified during the cutover period. All D-Tools workflow rules and report definitions are exported as a JSON reference document for HubSpot Workflow rebuild. FlitStack AI generates an audit log for every operation, and one-click rollback is available if reconciliation fails at the field level.
Platform deep dives
D-Tools
Source
Strengths
Weaknesses
HubSpot
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 HubSpot.
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 HubSpot migration scoping. Not seeing yours? Book a call.
Walk through your D-Tools to HubSpot 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 HubSpot
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.