CRM migration

Migrate from Insightly CRM to Freshsales

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

Insightly CRM logo

Insightly CRM

Source

Freshsales

Destination

Freshsales logo

Compatibility

88%

7 of 8

objects map 1:1 between Insightly CRM and Freshsales.

Complexity

CModerate

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Insightly CRM and Freshsales share overlapping object names (Contacts, Organizations, Opportunities) but differ fundamentally in how data is accessed and mapped. Insightly's native export produces XML files containing only default fields, dropping all custom fields, and Freshsales's own built-in Insightly migration tool enforces this static mapping with a 25,000-record hard cap. We bypass both limitations by exporting directly from Insightly's REST API, retrieving custom field metadata via the /CustomFields endpoints, and writing all records to Freshsales via its API with type-matched field creation first. The Insightly explicit linking model (Contacts linked to Organizations via separate link records) requires us to sequence the import as Organizations first, then Contacts, then link reconstruction. We do not migrate Workflows, automations, or reports; these are documented for your admin to rebuild in Freshsales.

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

Insightly CRM logo

Insightly CRM

What's pushing teams away

  • Workflow automation and AI Copilot are locked behind the Professional tier, pushing teams with automation needs to higher-cost plans quickly as headcount grows.
  • Custom field handling requires referencing FIELD_NAME in API calls, and the UI documentation is described as incomplete and overwhelming by power users.
  • Setup is time-consuming, particularly for automation configuration, with users reporting frequent timeouts during the process.
  • Limited customization compared to enterprise CRMs — some users find field-level tailoring insufficient for complex sales processes.

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 Insightly CRM objects map to Freshsales

Each row shows how a Insightly 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.

Insightly CRM

Lead

maps to

Freshsales

Lead

1:1
Fully supported

Insightly Leads map directly to Freshsales Leads. The Insightly Lead object has its own lifecycle separate from Contacts. We import Leads first since they are top-level records with no parent dependency. Lead status values from Insightly map to Freshsales Lead Status with a custom field insightly_lead_status__c preserving the original value for audit. Email address serves as the dedupe key during import.

Insightly CRM

Organization

maps to

Freshsales

Account

1:1
Fully supported

Insightly Organizations map to Freshsales Accounts. This is the first record type we import in any migration because Contacts have a required AccountId lookup. We export all Organization records first, create them in Freshsales via the Accounts API, and resolve the Freshsales Account ID before importing any Contact records that reference them.

Insightly CRM

Contact

maps to

Freshsales

Contact

1:1
Fully supported

Insightly Contacts map to Freshsales Contacts. We import Contacts after Accounts are created so that the AccountId lookup relationship is satisfied at insert time. Standard fields (name, email, phone, address) migrate directly. Custom fields are retrieved via the /CustomFields/Contacts endpoint at migration start, a FIELD_NAME reference table is built, and all Contact custom field writes reference the correct FIELD_NAME. Contact-Organization links (stored as separate link records in Insightly) are reconstructed after both objects are present in Freshsales by setting the Contact's AccountId to the migrated Organization's ID.

Insightly CRM

Opportunity

maps to

Freshsales

Deal

1:1
Fully supported

Insightly Opportunities map to Freshsales Deals. Pipeline stage names in Insightly are custom strings requiring explicit mapping to Freshsales Deal stages. We create a stage mapping table during scoping, deploy the stage values in Freshsales before migration, and apply the mapping during Deal import. Probability percentages migrate to Freshsales probability fields where supported. Closed-won and closed-lost reasons map to Freshsales deal status notes.

Insightly CRM

Task

maps to

Freshsales

Task

1:1
Fully supported

Insightly Tasks are standalone records linked to any primary object (Contact, Organization, Opportunity). We import Tasks after their parent records exist in Freshsales and resolve the WhatId (Account or Deal) and WhoId (Contact or Lead) references at migration time. Task status values (Not Started, In Progress, Completed, Deferred) map to Freshsales Task status picklist. Note that Freshsales' native Insightly migration tool only supports default task fields; we use the API path to preserve all standard and custom task fields.

Insightly CRM

Note (Comment)

maps to

Freshsales

Note

1:1
Fully supported

Insightly Notes (called Comments in Insightly's UI) are standalone objects that can be linked to any primary record. We preserve note body, author, and creation timestamp. The link relationship to the parent record (Contact, Organization, Opportunity) is reconstructed in Freshsales by resolving the WhatId and WhoId references after parent records are present. Note author is stored as a custom field if Freshsales does not have a native author field.

Insightly CRM

Project

maps to

Freshsales

Task (or Custom Object)

lossy
Fully supported

Insightly Projects do not have a direct Freshsales equivalent. We handle Project migration as a configuration decision made during scoping: either Projects map to Freshsales Tasks with project-level metadata stored in custom fields, or a Freshsales Custom Object named Project is created to hold project records with their associated tasks. The customer chooses the strategy based on how they use Projects in Insightly.

Insightly CRM

Tag

maps to

Freshsales

Tag

1:1
Fully supported

Insightly Tags are flat string labels applied to Contacts, Organizations, Opportunities, and Projects. We export tag arrays as plain string lists and import them to Freshsales' tag field on the corresponding object. Tag semantics are preserved as-is. If the customer uses tags for segmentation, we note that Freshsales tags serve the same flat-label purpose.

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.

Insightly CRM logo

Insightly CRM gotchas

High

Free plan record cap applies to all Insightly objects

High

API rate limits vary by plan and reset daily

Medium

Custom fields require FIELD_NAME lookup before writes

Medium

XML export only captures default fields for migrations out

Medium

Link relationships must be rebuilt via dedicated endpoints

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

  • Freshsales native migration only imports default fields from Insightly XML

    Freshsales' built-in Insightly migration tool accepts only XML files exported from Insightly, and its mapping is static: only default (standard) fields transfer. Custom fields are dropped silently because they are not included in Insightly's XML export and Freshsales cannot parse them. We bypass the XML export path entirely and pull all records directly from the Insightly REST API, including all custom field values retrieved via /CustomFields/{objectName} lookups. We then create matching custom fields in Freshsales via its API before writing any records. Skipping this step means custom field data is permanently lost.

  • Freshsales built-in migration hard caps at 25,000 records

    Freshsales' own migration tool limits instantaneous imports to 25,000 records. Anything above that threshold requires a support ticket and is imported during off-peak hours over 1-2 business days. We do not use Freshsales' built-in migration tool for this reason. We pace our own API writes within Insightly's rate limits (10 req/sec, daily limit per plan) and Freshsales' API write capacity, handling datasets of any size without the 25,000-record ceiling.

  • Insightly explicit link records must be sequenced after parent imports

    Insightly uses a linking model where Contact-to-Organization relationships are stored as separate link records rather than embedded in the Contact object. These link records are not included in the primary Contact export and must be exported separately. During migration, we import Organizations first, then Contacts, then use the resolved Freshsales AccountId values to reconstruct Contact-to-Account relationships. Failing to sequence this correctly results in Contacts with blank AccountId lookups (orphaned records) in Freshsales.

  • Workflows, automation, and reports do not migrate

    Insightly Workflow Automations live in Insightly's configuration layer and are not accessible via the API. Reports and dashboards similarly are platform-specific artifacts. We do not migrate them as code. We deliver a written inventory of every active Insightly Workflow and Report configuration that your admin can use to rebuild equivalent automations in Freshsales. Workflow rebuild is not included in the standard migration scope; it is a separate engagement if you need hands-on rebuild assistance.

  • Insightly free plan 2,500-record cap affects export scoping

    Insightly's free plan caps total records at 2,500 across all objects (Contacts, Organizations, Opportunities, Projects, Tasks). Any export via the API will fail or return partial data if the account is at or near this cap. We confirm the customer's Insightly plan tier at discovery and recommend upgrading to a trial on a paid tier if record counts exceed the free-plan cap before proceeding with export.

Migration approach

Six steps for a successful Insightly CRM to Freshsales data migration

  1. Discovery and plan verification

    We audit the source Insightly account across plan tier (Free, Plus, Professional, Enterprise), record counts per object (Leads, Contacts, Organizations, Opportunities, Tasks, Notes, Projects), custom field metadata per object via the /CustomFields endpoints, active Workflow Automations count, and any link relationship volume. We verify the account plan tier to confirm whether the 2,500-record free-plan cap applies. The discovery output is a written migration scope, a custom field inventory with FIELD_NAME reference table, and a link relationship count for sequencing planning.

  2. Custom field schema creation in Freshsales

    Before any data migration begins, we create all custom fields in Freshsales that exist in Insightly, matched by object and field type. Text fields map to Freshsales text custom fields, date fields to date fields, picklist fields to picklist fields, currency fields to currency fields. This step ensures that when we write Insightly records via the Freshsales API, all custom field values land in correctly typed destination fields. We skip this step when using Freshsales' native XML import, which is why that path loses custom field data.

  3. Export via Insightly REST API

    We export all record types directly from Insightly's REST API, bypassing the XML export function entirely. The export includes all standard fields and all custom field values. We pace requests at 10 requests per second to stay within Insightly's per-second rate limit, and we chunk large datasets across multiple days when the daily request quota (tied to plan tier) is constraining. Link relationship records are exported separately after their parent objects.

  4. Import in dependency order with parent resolution

    We import records into Freshsales in strict dependency order: Accounts (from Organizations) first, then Leads and Contacts with AccountId resolved to the migrated Account, then Deals with AccountId and ContactId resolved, then Tasks and Notes with WhatId and WhoId resolved to the migrated parent records. Each phase emits a row-count reconciliation report before the next phase begins. We use Freshsales' API write endpoints with rate-limit handling and exponential backoff.

  5. Link relationship reconstruction

    After Organizations, Contacts, and Opportunities are present in Freshsales, we reconstruct the Contact-to-Account relationships by updating each Contact record with the resolved Freshsales AccountId. Any Opportunity-to-Contact relationships (if applicable) are also updated at this stage. This step is the critical differentiator from Freshsales' native XML import, which does not handle Insightly's explicit link records.

  6. Cutover, validation, and automation handoff

    We freeze Insightly writes during the cutover window, run a delta migration of any records modified during the migration, then mark Freshsales as the system of record. We deliver a Workflow and Report inventory document listing every active automation and report in Insightly with recommended Freshsales equivalents. We support a one-week hypercare window for reconciliation issues. We do not rebuild Insightly Workflows as Freshsales automations inside the migration scope.

Platform deep dives

Context on both ends of the pair

Insightly CRM logo

Insightly CRM

Source

Strengths

  • CRM, marketing automation, and project management unified in one subscription, reducing tool sprawl for SMBs.
  • Free plan for 2 users and a 2,500-record cap provides a low-risk evaluation environment.
  • AppConnect delivers 500+ no-code integrations with mainstream business tools without requiring developer resources.
  • Modern UI with faster onboarding compared to legacy CRM alternatives, backed by positive ease-of-setup scores on G2.
  • Project creation directly from closed Opportunities keeps post-sale work connected to the originating deal.

Weaknesses

  • Workflow automation and AI Copilot require the Professional tier, making the Plus plan unsuitable for teams with automation needs.
  • Custom field handling requires FIELD_NAME API lookups, which adds complexity to integrations and migrations.
  • Setup time and reported timeouts during automation configuration create friction for new administrators.
  • Documentation is described as incomplete and overwhelming by power users, according to G2 review themes.
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 Insightly CRM 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

    Insightly CRM: 10 requests per second; daily limit varies by plan (starting at 1,000 requests/day for free plan).

  • Data volume sensitivity

    B

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

Estimator

Estimate your Insightly CRM 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 Insightly CRM to Freshsales data migrations

Answers to the questions buyers ask most during Insightly CRM to Freshsales migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Insightly CRM to Freshsales migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations land between two and four weeks for accounts under 10,000 records with no custom objects and clean data. Migrations with custom objects, large task and note histories, or datasets approaching Freshsales' 25,000-record native cap move to six to ten weeks because of custom field schema creation, API-paced export, and link relationship sequencing. The planning and discovery phase typically adds one to two weeks before migration begins.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Insightly CRM.
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