CRM migration
Field-level mapping, validation, and rollback between InTouch CRM and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
InTouch CRM
Source
Freshsales
Destination
Compatibility
6 of 9
objects map 1:1 between InTouch CRM and Freshsales.
Complexity
CModerate
Timeline
3-5 weeks
Overview
Moving from InTouch CRM to Freshsales is a schema-remodeling migration. InTouch stores Contacts with inline company data, defined Pipelines with custom stages, and Activities against records. Freshsales separates Contacts from Accounts, requires explicit deal stages, and maintains a distinct Leads module for unqualified prospects. We resolve these structural differences during scoping, remap InTouch pipeline stages to Freshsales Deal Stages, and preserve InTouch activity timestamps through Freshsales bulk import. Custom fields and custom field types in InTouch require pre-creation in Freshsales before migration begins, which adds a schema preparation phase not required in same-platform moves. InTouch has no publicly documented bulk API, so all data moves through CSV with careful field type validation, date format normalization, and owner email resolution. Workflows, automations, and lead scoring models do not migrate; we deliver a written inventory for the customer's admin to rebuild in Freshsales.
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 InTouch CRM 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.
InTouch CRM
Contact
Freshsales
Account + Contact (split required)
1:manyInTouch Contact records carry inline company fields (company name, address, phone). We split these during migration by creating Freshsales Account records first (using the InTouch company name as the Account Name) and then creating Freshsales Contact records linked to those Accounts via the AccountId lookup. Any InTouch Contact without a company name maps to a single Contact without an AccountId, held for customer review.
InTouch CRM
Company (inline on Contact)
Freshsales
Account
1:1The company portion of each InTouch Contact becomes a Freshsales Account. We use company name as the dedupe key to avoid duplicate Accounts when multiple Contacts share the same company. The original InTouch company phone, website, and address fields map to the corresponding Account fields. Any duplicate company names are resolved by appending a sequence suffix after customer review.
InTouch CRM
Deal
Freshsales
Deal
1:1InTouch Deals map to Freshsales Deals. Each InTouch Pipeline becomes a Freshsales Sales Flow, and InTouch pipeline stages map to Freshsales Deal Stages with probabilities remapped to the 0-100 integer scale Freshsales requires. Deal value and close date migrate directly. We flag any Deal without an associated Contact for the customer to resolve before import.
InTouch CRM
Pipeline
Freshsales
Sales Flow + Deal Stage
lossyEach InTouch Pipeline is recreated as a Freshsales Sales Flow with its stages defined as Deal Stages in Admin settings. We preserve InTouch stage ordering and probability values, normalizing percentages to integers. If InTouch used multiple pipelines for different product lines, each becomes a separate Sales Flow in Freshsales.
InTouch CRM
Activity: Call
Freshsales
Task (type = Call)
1:1InTouch call records map to Freshsales Task with Task Type set to Call. Call duration, disposition, and recording link (if available) transfer to custom Task fields. Activity timestamp from InTouch becomes the Freshsales Task Due Date to preserve timeline ordering.
InTouch CRM
Activity: Email
Freshsales
Task + Email
1:1InTouch email activity migrates to Freshsales as a Task record with email body content. The email subject line becomes the Task Subject. We set the Task status to Completed and link to the parent Contact or Account via the WhoId and WhatId fields.
InTouch CRM
Activity: Meeting
Freshsales
Task (type = Meeting) or Event
1:1InTouch meeting records map to Freshsales Task with Task Type set to Meeting, preserving title, date, and attendee information. If the customer uses Freshsales Calendar, meetings can alternatively map to Event records for calendar display.
InTouch CRM
Custom Field
Freshsales
Custom Field
lossyInTouch custom fields require pre-creation in Freshsales Admin settings before migration begins. We map InTouch field types (text, number, date, checkbox, dropdown) to Freshsales field types (Single Line Text, Number, Date, Checkbox, Picklist). Picklist values in InTouch must be recreated as Freshsales Picklist options. Custom fields are created per module (Contact, Account, Deal) and the migration CSV references them by exact field name.
InTouch CRM
Owner
Freshsales
User
1:1InTouch Owners map to Freshsales Users by email address. We resolve owners by email match against the Freshsales User table. Any InTouch Owner without a matching Freshsales User is held in a reconciliation queue. The customer provisions missing Users before record import resumes because OwnerId is required on most standard objects in Freshsales.
| InTouch CRM | Freshsales | Compatibility | |
|---|---|---|---|
| Contact | Account + Contact (split required)1:many | Fully supported | |
| Company (inline on Contact) | Account1:1 | Fully supported | |
| Deal | Deal1:1 | Fully supported | |
| Pipeline | Sales Flow + Deal Stagelossy | Fully supported | |
| Activity: Call | Task (type = Call)1:1 | Fully supported | |
| Activity: Email | Task + Email1:1 | Fully supported | |
| Activity: Meeting | Task (type = Meeting) or Event1:1 | Fully supported | |
| Custom Field | Custom Fieldlossy | Fully supported | |
| 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.
InTouch CRM gotchas
CSV-based import is the primary documented data path
Stage and pipeline label drift across customer instances
Limited custom-object surface
All-in-one bundling means multiple modules' data must be reconciled
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
Discovery and InTouch data extraction
We audit the InTouch portal for record counts (Contacts, Companies, Deals, Activities), custom field names and types, pipeline names and stage definitions, owner list, and any integration points. Because InTouch lacks a bulk export API, we extract data via CSV in multiple passes, combining field sets by record ID. We identify any fields not visible in the export UI and flag them for manual extraction or API-based reads. The discovery output is a written data map and extraction plan.
Freshsales schema preparation
We create the Freshsales schema before any data loads. This includes creating all custom fields with correct types (matching InTouch field types to Freshsales field types), setting up Sales Flows that mirror each InTouch Pipeline, defining Deal Stages with probabilities, and configuring Record Types if the customer uses multiple lines of business. The customer provisions Freshsales Users for each InTouch Owner during this phase so that Owner mapping resolves during import.
Data transformation and field mapping
We transform extracted InTouch data through the mapping matrix. Contacts are split into Accounts (from InTouch company fields) and Contacts (linked to Accounts). Deals are mapped to Freshsales Deals with stage remapping. Dates are normalized to match the Freshsales date format. Custom field values are mapped to the new Freshsales field names. We generate separate CSVs per module (Accounts, Contacts, Deals, Activities) ready for Freshsales import.
Test import and reconciliation
We run a test import into a Freshsales sandbox or the production org with a subset of records (typically 100-200 per module) to validate field mapping, date format acceptance, and owner resolution. Any rejected records are diagnosed, corrected in the transformation layer, and retested. This step repeats until the rejection rate is below 1 percent before full import begins.
Production import and validation
We run the full import in dependency order: Accounts first (from InTouch company data), then Contacts (linked to Accounts), then Deals (with Contact and Account lookups resolved), then Activities. Each phase emits a row-count reconciliation report showing imported, skipped, and errored records. The customer spot-checks 25-50 records per module against the InTouch source before sign-off.
Cutover, automation inventory handoff, and hypercare
We freeze InTouch writes during cutover, run a final delta migration of any records modified during the migration window, then deliver the automation inventory document covering all InTouch workflows, sequences, and lead scoring models. We support a 5-business-day hypercare window for reconciliation issues. Workflow rebuild in Freshsales is outside migration scope and is handled by the customer's admin or a Freshsales implementation partner.
Platform deep dives
InTouch CRM
Source
Strengths
Weaknesses
Freshsales
Destination
Strengths
Weaknesses
Complexity grading
Moderate CRM migration. 1 of 8 objects need a manual workaround.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across InTouch CRM and Freshsales.
Object compatibility
1 of 8 objects need a manual workaround.
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
InTouch CRM: Not publicly documented.
Data volume sensitivity
InTouch CRM 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 InTouch CRM to Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your InTouch CRM 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 InTouch CRM
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.