Helpdesk migration
Field-level mapping, validation, and rollback between Insightly Service and Freshdesk. We move data and schema; workflows are rebuilt natively in Freshdesk.
Insightly Service
Source
Freshdesk
Destination
Compatibility
8 of 10
objects map 1:1 between Insightly Service and Freshdesk.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Insightly Service bundles helpdesk capabilities inside a CRM platform, which means ticket records carry CRM foreign keys (ORGANISATION_ID, CONTACT_ID, OPPORTUNITY_ID) that must resolve to valid records at the destination. Freshdesk uses a dedicated helpdesk model where Tickets, Contacts, and Companies are self-contained with no external CRM linkage. We resolve this model gap by establishing Companies and Contacts in Freshdesk first, then importing Tickets with foreign keys updated to point to the freshly created Freshdesk identifiers. Insightly custom fields use FIELD_NAME identifiers in the API; Freshdesk uses field IDs. We enumerate every custom field definition per object during discovery and build a translation table before any data moves. SLA timers, ticket tags, and attachment metadata migrate where the destination API supports them. Workflows, automations, and the Insightly Knowledge Base structure do not migrate as configuration; we deliver a written inventory for the customer's admin to rebuild in Freshdesk.
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 Insightly Service object lands in Freshdesk, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Insightly Service
Ticket
Freshdesk
Ticket
1:1Insightly Service Tickets map directly to Freshdesk Tickets. We preserve ticket subject, description, status, priority, assignee, created/updated timestamps, and SLA timer values where Freshdesk's API supports SLA fields (Garden tier and above). Insightly's ORGANISATION_ID and CONTACT_ID foreign keys are held as temporary references during export and replaced with Freshdesk Company and Contact IDs after the Contacts and Companies phases complete. Ticket tags migrate as Freshdesk tags; category assignments require a translation table if Insightly uses custom categorization beyond standard status and priority.
Insightly Service
Ticket Conversation
Freshdesk
Ticket Conversation (InboundEmail or Reply)
1:1Insightly Ticket Conversations (comments, emails, public and private notes) migrate to Freshdesk Conversation records linked to the parent Ticket. We preserve the author (Agent or Contact), timestamp, body content, and visibility flag (public vs internal note). Inline images and HTML-formatted content are extracted and re-uploaded as Freshdesk attachments to avoid rendering issues. Message direction (inbound from customer, outbound from agent) maps to Freshdesk's incoming/outgoing conversation types.
Insightly Service
Contact
Freshdesk
Contact
1:1Insightly Contacts migrate to Freshdesk Contacts with standard fields (name, email, phone, address) preserved. Custom fields on Contact use Insightly's FIELD_NAME identifiers in the API; we enumerate /CustomFields/Contact during discovery and translate each to a Freshdesk Contact custom field by name match, creating the destination field if it does not exist. The CONTACT_ID is preserved in a migration_reference__c field to allow post-migration audit against the source export.
Insightly Service
Organization
Freshdesk
Company
1:1Insightly Organizations (the CRM Account equivalent) map to Freshdesk Companies. Address data, industry classification, and annual revenue fields translate directly. Organizations linked to Tickets via ORGANISATION_ID are held in the export with their original ID; the Freshdesk Company ID is assigned during the Company import phase and the Ticket foreign key is updated in a second pass. This two-phase approach prevents orphaned Ticket-to-Company references at cutover.
Insightly Service
Agent
Freshdesk
Agent
1:1Insightly Agents migrate to Freshdesk Agents. We extract Agent records from Insightly (name, email, role, team membership) and map team membership to Freshdesk Groups. An Agent must exist in Freshdesk before Tickets can be assigned to them, so Agent import runs before Ticket import. Agents without valid Freshdesk credentials go to a reconciliation queue; the customer provisions the account before migration resumes.
Insightly Service
Team
Freshdesk
Group
1:1Insightly Teams and Team Members map to Freshdesk Groups. Each Team's member list is translated into a Group membership list during import. Group-level ticket routing configurations do not migrate as configuration; we document the routing rules in the automation inventory delivered post-migration so the admin can rebuild in Freshdesk's scenario builder.
Insightly Service
Custom Fields
Freshdesk
Custom Fields
lossyInsightly custom fields use FIELD_NAME identifiers (e.g., CUSTOM_FIELD_1, DROP_D_45) that must be queried from /CustomFields/{objectName} before any data write. We enumerate all custom field definitions per object during discovery, match each to a Freshdesk custom field by label, create any missing destination fields, and build a translation table. Custom field types (checkbox, dropdown, date, number, text) map to equivalent Freshdesk field types; multi-select dropdowns in Insightly map to Freshdesk multi-select fields. Field limits differ: Insightly caps at 50-200 per object by tier; Freshdesk limits vary by plan and are enumerated during scoping.
Insightly Service
Attachment
Freshdesk
Attachment
1:1Insightly Ticket attachments are exported as file metadata (filename, URL, size, MIME type) retrieved via the attachments API. Files are downloaded to a staging bucket and re-uploaded to Freshdesk via the attachments API, with the returned Freshdesk attachment ID linked to the parent Ticket record. Files exceeding Freshdesk's 25 MB per-attachment limit are flagged during discovery and chunked or linked externally. Embedded inline images in ticket conversation HTML are extracted as separate file uploads to preserve rendering.
Insightly Service
Lead
Freshdesk
Contact
many:1Insightly Lead records (distinct from Contacts in Insightly CRM) carry LEAD_STATUS and LEAD_SOURCE fields. Freshdesk does not have a separate Lead object, so we merge Leads into Contacts, preserving the original LEAD_STATUS value in a custom field lead_status__c and the LEAD_SOURCE in lead_source__c. If the customer uses Salesforce or another CRM post-migration, these preserved fields allow a clean Lead-to-Contact split in the downstream system.
Insightly Service
Note
Freshdesk
Note
1:1Insightly Notes (standalone objects linked to Contacts, Organizations, Opportunities, or Projects) migrate to Freshdesk Contact Notes. Notes linked to Insightly Opportunities or Projects without a direct Freshdesk equivalent are attached to the related Company or Contact record and flagged in the migration inventory as requiring manual review.
| Insightly Service | Freshdesk | Compatibility | |
|---|---|---|---|
| Ticket | Ticket1:1 | Fully supported | |
| Ticket Conversation | Ticket Conversation (InboundEmail or Reply)1:1 | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| Organization | Company1:1 | Fully supported | |
| Agent | Agent1:1 | Fully supported | |
| Team | Group1:1 | Fully supported | |
| Custom Fields | Custom Fieldslossy | Mapping required | |
| Attachment | Attachment1:1 | Fully supported | |
| Lead | Contactmany:1 | Fully supported | |
| Note | Note1: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.
Insightly Service gotchas
Annual billing only — no monthly option available
Email sequencing absent across all plan tiers
AppConnect integration add-on has a $3,000 setup fee
Custom field FIELD_NAME lookups required for API writes
Performance timeouts on large data volume operations
Freshdesk gotchas
API access is blocked on the free plan
Per-minute rate limits are account-wide and endpoint-specific
Multi-channel source types do not map 1:1 to all destinations
Custom objects created in-product cannot be accessed by other apps
Contact import requires at least 10 existing tickets in the account
Pair-specific challenges
Migration approach
Discovery and field enumeration
We audit the Insightly Service account across tier, custom field definitions per object (via /CustomFields/{objectName}), ticket volume, conversation count, attachment count, agent roster, team structure, and linked CRM records (Organizations, Opportunities, Projects). We verify Freshdesk destination tier (confirming SLA support and API availability) and retrieve the API key from Profile Settings. The discovery output is a written migration scope, the FIELD_NAME translation table, and a record count estimate used for timeline and price confirmation.
Destination schema preparation
We create any missing Freshdesk custom fields to match the translation table, configure Groups to match Insightly Teams, verify Agent accounts exist or queue them for provisioning, and set up Freshdesk ticket statuses mapped to Insightly ticket states. If the destination includes Service Cloud, we configure Case Record Types for ticket categorization. This phase runs before any data import so that all foreign key references resolve at insert time.
Organizations and Contacts pre-load
We export Insightly Organizations first, import them as Freshdesk Companies, and record the ID mapping (original ORGANISATION_ID to Freshdesk COMPANY_ID). We then export Insightly Contacts, resolve the ORGANISATION_ID to the new Freshdesk COMPANY_ID, and import Contacts with the Company lookup satisfied. The Lead merge (N:1 into Contact) happens at this stage with LEAD_STATUS and LEAD_SOURCE preserved as custom fields. This phase creates the parent records that Tickets reference.
Agent and Group import
We import Insightly Agents as Freshdesk Agents, mapping team membership to Freshdesk Groups. Agents without Freshdesk credentials are held in a reconciliation queue for the customer's admin to provision before the Ticket import phase begins. Groups are imported alongside Agents so that group-based routing configurations are available when Tickets are assigned.
Ticket and conversation import
We export Insightly Tickets with their CONTACT_ID and ORGANISATION_ID foreign keys, translate those references using the ID mapping tables created in phases 3 and 4, and import Tickets with the resolved Freshdesk Contact and Company IDs. Conversation history (comments, emails, notes) imports as Freshdesk Conversation records linked to the parent Ticket. Attachments are downloaded, re-uploaded to Freshdesk, and linked in a second pass. SLA timer values are written to custom fields if the destination tier supports them.
Cutover, delta sync, and automation inventory delivery
We freeze Insightly Service writes during cutover, run a delta migration of any records created or modified during the migration window, then switch the support team to Freshdesk as the system of record. We deliver the automation and workflow inventory documenting every Insightly workflow rule and routing configuration for the customer's admin to rebuild in Freshdesk's scenario builder. We support a five-business-day hypercare window for reconciliation issues.
Platform deep dives
Insightly Service
Source
Strengths
Weaknesses
Freshdesk
Destination
Strengths
Weaknesses
Complexity grading
Standard Helpdesk migration. 2 of 7 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Insightly Service and Freshdesk.
Object compatibility
2 of 7 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
7-object category — typical timelines run 2–7 days end-to-end.
API constraints
Insightly Service: Not publicly documented; varies by plan tier.
Data volume sensitivity
Insightly Service 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 Insightly Service to Freshdesk migration scoping. Not seeing yours? Book a call.
Walk through your Insightly Service to Freshdesk migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Insightly Service
Other ways to arrive at Freshdesk
Same-Helpdesk migrations
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.