CRM migration
Field-level mapping, validation, and rollback between D-Tools and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
D-Tools
Source
Freshsales
Destination
Compatibility
11 of 12
objects map 1:1 between D-Tools and Freshsales.
Complexity
CModerate
Timeline
48–72 hours
Overview
D-Tools organizes data around projects, clients, locations, and items (equipment, labor, packages) for low-voltage system integrators. Freshsales uses the standard CRM object model: Leads, Contacts, Accounts, and Deals. The migration requires translating D-Tools' project-centric schema into Freshsales's relational CRM model. FlitStack AI extracts client data via D-Tools Cloud API (120 calls/min, 10,000/day limit) and maps clients to Freshsales Contacts and Accounts, project associations to Deals, and item custom fields to Freshsales custom fields. D-Tools workflows, service plan billing logic, and integration connections cannot migrate — these require manual rebuild in Freshsales using Freshsales's automation rules, custom fields, and Freshworks Marketplace integrations. The migration runs against Freshsales REST API with field-level validation before full commit. FlitStack AI begins with a pre‑flight audit that inventories D‑Tools objects, custom field definitions, and API rate‑limit constraints, while simultaneously mapping Freshsales pipeline stages and required pick‑list values. Data extraction proceeds under the 120 calls/minute ceiling using batched requests, and the Freshsales REST API ingests records in dependency order—Accounts before Contacts, Contacts before Deals, Products before custom field values. After the initial load, a delta‑capture window of 24–48 hours captures any late changes. Field‑level validation then compares source totals against the destination, generating a diff report for review before final cut‑over.
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 Freshsales, 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
Freshsales
Contact + Account
1:manyD-Tools clients are companies (organizations) with contact persons. Primary contact maps to Freshsales Contact; the client organization maps to Freshsales Account. Additional contact persons within the client become secondary Contact records linked to the same Account. The mapping preserves the original client identifiers and creation timestamps, ensuring audit continuity. When a client has multiple contacts, each contact's role and department are recorded as custom fields to retain hierarchy information.
D-Tools
Client Contact Person
Freshsales
Contact
1:1Individual contact persons within D-Tools clients map directly to Freshsales Contacts. Name, email, phone, job title, and address fields map field-by-field. Each contact links to the corresponding Account record. Phone numbers are normalized to E.164 format, and any missing required fields trigger a pre‑migration review. The mapping also captures the contact’s primary flag to designate the main point of communication.
D-Tools
Project
Freshsales
Deal
1:1D-Tools projects (proposals, active installations, service jobs) map to Freshsales Deals. Project name becomes Deal name; project value or proposal total maps to Deal amount. Project status maps to Deal stage via value mapping against Freshsales pipeline stages. Project attachments and notes are linked to the Deal via the Freshsales Files and Notes objects, preserving all contextual details.
D-Tools
Location
Freshsales
Custom Field on Contact/Account
1:1D-Tools locations define installation sites (building name, room, address). Freshsales has no native location object for contact/company addresses. We map primary location to the standard address fields and store additional locations as a custom multi-value text field or JSON field for reference.
D-Tools
Item (Equipment)
Freshsales
Product
1:1D-Tools equipment items (manufacturer, model, description, price) map to Freshsales Products. Product name, SKU, unit price, and description transfer directly. Product catalog in Freshsales supports inventory tracking on Enterprise plans. If the equipment includes serial numbers or warranty information, those are stored as additional text custom fields on the Product record. Pricing tiers and volume discounts are represented using Freshsales price books.
D-Tools
Item (Labor)
Freshsales
Product or Custom Field
1:1D-Tools labor line items (hours, rate, description) map to Freshsales Products with type 'Service' or stored as custom fields on the Deal. Labor pricing rules from D-Tools need manual reconfiguration in Freshsales Products. Service‑type Products can be associated with Deals as line items, allowing you to track labor revenue separately. Any cost‑plus markup rules from D‑Tools must be re‑implemented as Freshsales product pricing formulas.
D-Tools
Item Custom Fields (75 total)
Freshsales
Custom Fields on Product/Contact/Deal
1:1D-Tools supports 75 item custom fields across 7 types (text, long-text, list, number, date, boolean, hyperlink). We map these to Freshsales custom fields by type: text→text, number→number, date→date, boolean→checkbox. List fields require value mapping. Hyperlink fields store as text URL.
D-Tools
Service Plan
Freshsales
Deal + Custom Fields or Product
1:1D-Tools service plans store billing frequency, pricing model (fixed/dynamic), and feature lists. These map to Freshsales Deals with custom fields for plan details, or to Products for recurring billing items. Billing logic must be rebuilt in Freshsales workflows. Custom fields capture plan tier, renewal date, and feature flags, while the associated Deal tracks the service revenue.
D-Tools
Proposal / Quote
Freshsales
Deal Notes or Custom Field
1:1D-Tools proposals are detailed documents with line items, terms, and pricing. Freshsales has no native proposal object (CPQ is an add-on). We store proposal summary data as Deal notes and key terms as custom fields for reference; the full proposal document is preserved as a file attachment.
D-Tools
Invoice / Payment Record
Freshsales
Custom Field on Deal
1:1D-Tools invoices and payment records map to custom fields on the related Deal (invoice number, total, balance due, payment status). Freshsales lacks native billing; integration with Freshbooks, QuickBooks, or Xero handles billing post-migration. Invoice status, payment method, and due dates are recorded as custom fields on the Deal, and integration with Freshbooks, QuickBooks, or Xero can automate later billing workflows.
D-Tools
User / Owner
Freshsales
User
1:1D-Tools users and project owners resolve to Freshsales Users by email match. Active users in Freshsales receive record assignments; unmatched owners flagged before migration for team invitation or fallback assignment. Inactive D‑Tools users are archived, and their historical assignments are preserved as custom owner fields for reporting continuity. User roles are mapped to Freshsales team roles to maintain permission structures.
D-Tools
Attachment / File
Freshsales
Files
1:1D-Tools file attachments (product images, diagrams, project documents) re-upload to Freshsales Files. File size limits apply; inline images from notes are extracted and rehosted as separate file attachments. Large file uploads are chunked to stay within Freshsales file size limits, and any corrupted files are flagged for manual re‑upload. Attachment metadata such as creation date and uploader are preserved in Freshsales file records.
| D-Tools | Freshsales | Compatibility | |
|---|---|---|---|
| Client | Contact + Account1:many | Fully supported | |
| Client Contact Person | Contact1:1 | Fully supported | |
| Project | Deal1:1 | Fully supported | |
| Location | Custom Field on Contact/Account1:1 | Fully supported | |
| Item (Equipment) | Product1:1 | Fully supported | |
| Item (Labor) | Product or Custom Field1:1 | Fully supported | |
| Item Custom Fields (75 total) | Custom Fields on Product/Contact/Deal1:1 | Fully supported | |
| Service Plan | Deal + Custom Fields or Product1:1 | Fully supported | |
| Proposal / Quote | Deal Notes or Custom Field1:1 | Fully supported | |
| Invoice / Payment Record | Custom Field on Deal1:1 | Fully supported | |
| User / Owner | User1:1 | Fully supported | |
| Attachment / File | Files1: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
Freshsales gotchas
Freddy AI is Pro-tier only despite heavy marketing
Post-migration emails and sequences are disabled
Bot session credits are a one-time 500-session allocation
Phone credits charged per minute with no cap
File storage limits scale with plan tier
Pair-specific challenges
Migration approach
Audit D-Tools data export scope and Freshsales schema readiness
FlitStack connects to D-Tools Cloud API using your API credentials and audits the full record inventory: client count, project count, item count, custom field definitions, and attachment inventory. We simultaneously review your Freshsales account schema — standard objects, existing custom fields, pick-list values, and pipeline configuration. This step produces a migration blueprint: record counts per object, custom field type mapping plan, and any Freshsales schema changes needed before import (e.g., creating pick-list values for D-Tools list fields, creating custom fields for D-Tools item properties).
Resolve owners and users by email match
D-Tools users and project owners are matched to Freshsales Users by email address. We run a pre-flight check: all D-Tools users with active project assignments are matched against Freshsales user list. Unmatched users are flagged — your team either invites them to Freshsales first or assigns their records to a fallback owner. No record migrates without a valid Freshsales owner assignment. Owner history is preserved as custom fields on each record for audit continuity.
Migrate clients to Accounts and Contacts first
Freshsales requires Accounts before Contacts (via AccountId lookup) and Contacts before Deals (via Contact-to-Deal associations). We sequence the migration in dependency order: Accounts → Contacts → Products → Deals → Custom Field Data → Attachments. Each batch validates against Freshsales required fields, pick-list validity, and foreign-key integrity before committing. D-Tools item custom fields attach to Products after base product records exist. Service plan metadata attaches to Deals after Deal records are created.
Run sample migration with field-level diff
A representative slice migrates first — typically 100–500 records spanning clients, contacts, projects, items, and custom fields. We generate a field-level diff between the D-Tools source and the Freshsales destination: field name mapping validation, pick-list value coverage, custom field creation verification, and attachment re-upload confirmation. You review the diff and approve before the full migration run commits. This step catches schema gaps (missing pick-list values, uncreated custom fields) before volume migration begins.
Full migration with delta-pickup and audit log
Full migration runs against Freshsales REST API. A delta-pickup window (typically 24–48 hours) captures any records created or modified in D-Tools during the cutover window. Every operation is logged: record counts by object, API call counts, validation failures, and owner resolution status. One-click rollback is available if reconciliation identifies data integrity issues. After rollback window closes, the Freshsales account reflects D-Tools final state at go-live. Workflows, service plan billing logic, and proposal templates require manual rebuild in Freshsales — we provide a rebuild reference document for each.
Platform deep dives
D-Tools
Source
Strengths
Weaknesses
Freshsales
Destination
Strengths
Weaknesses
Complexity grading
Moderate CRM migration. 2 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 Freshsales.
Object compatibility
2 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 Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your D-Tools to Freshsales 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 Freshsales
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.