CRM migration

Migrate from D-Tools to Freshsales

Field-level mapping, validation, and rollback between D-Tools and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.

D-Tools logo

D-Tools

Source

Freshsales

Destination

Freshsales logo

Compatibility

92%

11 of 12

objects map 1:1 between D-Tools and Freshsales.

Complexity

CModerate

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

D-Tools logo

D-Tools

What's pushing teams away

  • Support response times are slow — customers report delays in resolving queries and slow turnaround on pricing or feature estimates.
  • Steep learning curve for new users, particularly around the integrated product library and change-order workflows, leading to extended onboarding.
  • Small or distributed teams find the platform heavy for their needs, with feature gaps in real-time collaboration across multiple office and field locations.
  • Annual pricing lock-in and limited transparency around renewal increases create billing surprises for long-term subscribers.

Choosing

Freshsales logo

Freshsales

What's pulling them in

  • Lowest barrier to entry among major CRMs — the free tier supports up to 3 users and includes core CRM functionality before committing to per-seat pricing.
  • Built-in chat, email, and phone reduce reliance on third-party integrations for basic sales communication and contact management.
  • Freddy AI contact scoring and deal insights are included on Pro plans at a lower price than comparable HubSpot tiers.
  • Kanban pipeline views across Contacts, Accounts, and Deals provide visual deal management without requiring custom configuration.
  • Integration with the broader Freshworks ecosystem (Freshdesk, Freshchat, Freshservice) reduces tool sprawl for teams already using Freshworks.

Object mapping

How D-Tools objects map to Freshsales

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

maps to

Freshsales

Contact + Account

1:many
Fully supported

D-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

maps to

Freshsales

Contact

1:1
Fully supported

Individual 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

maps to

Freshsales

Deal

1:1
Fully supported

D-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

maps to

Freshsales

Custom Field on Contact/Account

1:1
Fully supported

D-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)

maps to

Freshsales

Product

1:1
Fully supported

D-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)

maps to

Freshsales

Product or Custom Field

1:1
Fully supported

D-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)

maps to

Freshsales

Custom Fields on Product/Contact/Deal

1:1
Fully supported

D-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

maps to

Freshsales

Deal + Custom Fields or Product

1:1
Fully supported

D-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

maps to

Freshsales

Deal Notes or Custom Field

1:1
Fully supported

D-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

maps to

Freshsales

Custom Field on Deal

1:1
Fully supported

D-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

maps to

Freshsales

User

1:1
Fully supported

D-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

maps to

Freshsales

Files

1:1
Fully supported

D-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.

Gotchas + challenges

What specifically takes care here

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 logo

D-Tools gotchas

High

Dual product API split (Cloud vs. SI) requires product identification first

High

i3 Product Library is a platform resource, not user data

Medium

GetClients API caps at 500 records per request with pagination required

Medium

Service plan dynamic pricing rules must be manually reconstructed

Low

Custom report definitions do not transfer between D-Tools instances

Freshsales logo

Freshsales gotchas

Medium

Freddy AI is Pro-tier only despite heavy marketing

High

Post-migration emails and sequences are disabled

Medium

Bot session credits are a one-time 500-session allocation

Medium

Phone credits charged per minute with no cap

Low

File storage limits scale with plan tier

Pair-specific challenges

  • D-Tools item custom fields span 7 data types requiring type-aware mapping

    D-Tools supports 75 item custom fields divided into text (300-char limit), long-text (1000-char), list (dropdown), number (2 decimal places), date, boolean (yes/no), and hyperlink types. Freshsales custom fields support fewer types natively, and pick-list values must be created manually in Freshsales before migration. List fields require value-by-value mapping — if D-Tools uses values not yet defined in Freshsales, those fields flag for admin creation before the import runs. Number and boolean fields map cleanly, but hyperlink fields store as text URLs in Freshsales. This type divergence means custom field creation is the longest planning step for D-Tools migrations with heavy item customization.

  • D-Tools projects map to Freshsales Deals but proposal documents have no native equivalent

    D-Tools proposals contain line items, terms, conditions, and formatted pricing that don't translate to any single Freshsales object. Freshsales offers a CPQ add-on (separate license) for quote management, but without it, proposals store as Deal notes or custom fields. FlitStack preserves the proposal summary (total value, key line items, terms) as Deal-level custom fields and stores the original D-Tools proposal as a file attachment. Any CPQ logic, approval routing, or quote templates must be rebuilt in Freshsales using Freshsales workflows or the CPQ module. Teams relying on detailed D-Tools proposals should budget time for CPQ setup post-migration.

  • D-Tools Cloud API rate limits constrain migration throughput

    D-Tools Cloud API enforces a maximum of 120 API calls per minute and 10,000 calls per day per API key. Freshsales API has its own rate limits by plan. FlitStack sequences extraction from D-Tools within the 120 calls/min ceiling using batched requests and exponential backoff on 429 responses. GetClients API returns up to 500 records per request — we maximize that window to reduce total call count. Large D-Tools datasets (10,000+ records) may require multiple extraction days within the daily limit. We coordinate Freshsales API ingestion to stay within Freshsales plan limits as well.

  • Service plan billing logic cannot migrate — recurring revenue requires Freshsales workflow rebuild

    D-Tools service plans support dynamic pricing (tied to project value), fixed monthly/annual pricing, multiple billing frequencies, and plan features. Freshsales has no native recurring billing object. We map service plan metadata (plan name, pricing type, frequency) to custom fields on the Deal, but the billing automation — generating invoices, applying payments, triggering renewals — must be rebuilt using Freshsales workflows or integrated with Freshbooks, QuickBooks, or a dedicated billing tool. Service plan history (past invoices, payment records) stores as Deal custom fields for reference, not as active billing records.

  • Locations in D-Tools are site-level and multi-valued — Freshsales address fields are single-valued per contact

    D-Tools projects often span multiple locations (e.g., building name, floor, room numbers for an AV installation). Freshsales standard address fields store one address per Contact or Account record. We map the primary installation location to the standard address fields and store additional locations as a custom text field (Location_Sites__c) or JSON-encoded multi-value field. Teams requiring precise location tracking for service dispatch or project management need to either use Freshsales custom fields for all locations or rebuild location tracking within Freshworks' custom objects or a third-party integration.

Migration approach

Six steps for a successful D-Tools to Freshsales data migration

  1. 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).

  2. 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.

  3. 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.

  4. 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.

  5. 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

Context on both ends of the pair

D-Tools logo

D-Tools

Source

Strengths

  • Purpose-built for low-voltage system integrators with industry-specific terminology and workflows.
  • i3 Integrated Product Library delivers real-time manufacturer pricing for accurate proposals.
  • Cloud and on-premises (SI) products cover both SMB and enterprise deployment needs.
  • Field-first mobile experience for technicians reduces office-to-field communication gaps.
  • Service plan management supports recurring revenue and monitoring agreement billing.

Weaknesses

  • Two distinct products (Cloud vs. SI) with separate APIs complicate cross-product migrations.
  • Support responsiveness is a recurring pain point in customer reviews, especially for pricing estimates.
  • Limited third-party integrations outside of QuickBooks and common accounting tools.
  • Custom report definitions do not export — customers must rebuild dashboards at the destination.
Freshsales logo

Freshsales

Destination

Strengths

  • Generous free tier for small teams with core CRM functionality without per-seat costs.
  • All-in-one sales CRM with built-in telephony, chat, and email reducing third-party tool dependency.
  • Freddy AI contact scoring and deal predictions available on Pro tier.
  • Multiple pipeline views with Kanban and list options across all plans.

Weaknesses

  • Reports lack depth compared to competitors like HubSpot, with limited customization options.
  • Integration setup is poorly documented with no clear guides for connecting third-party tools.
  • AI features gated behind $39/user/month Pro tier despite marketing emphasis on Freddy AI.
  • Bot sessions limited to 500 one-time allocation with no monthly refresh.

Complexity grading

How hard is this migration?

Moderate CRM migration. 2 of 8 objects need a mapping; the rest are 1:1.

C

Overall complexity

Moderate migration

Derived from compatibility, mapping clarity, API constraints, and data volume across D-Tools and Freshsales.

  • Object compatibility

    B

    2 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    C

    D-Tools: 120 API calls per minute and 10,000 API calls per day per key.

  • Data volume sensitivity

    B

    D-Tools doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your D-Tools to Freshsales migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about D-Tools to Freshsales data migrations

Answers to the questions buyers ask most during D-Tools to Freshsales migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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 consultation

Most D-Tools to Freshsales migrations complete in 48–72 hours of clock time for under 50,000 records. Larger setups with 500k+ records or extensive item custom field configurations (75 total across 7 types) extend to 5–7 days. The longest planning step is custom field type mapping — particularly D-Tools list fields requiring Freshsales pick-list creation and value-by-value mapping before the import runs.

Adjacent paths

Related migrations to explore

Ready when you are

Move from D-Tools.
Land in Freshsales, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day