Helpdesk migration

Migrate from Hesk to Freshdesk

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

Hesk logo

Hesk

Source

Freshdesk

Destination

Freshdesk logo

Compatibility

70%

7 of 10

objects map 1:1 between Hesk and Freshdesk.

Complexity

BStandard

Timeline

1-2 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Hesk runs on a MySQL database with no public REST API, which is the primary constraint for any migration off the platform. All record extraction happens through direct database queries or XML/Excel UI exports, and all writes to Freshdesk run through the Freshdesk REST API v2. We audit the Hesk MySQL schema first, enumerate custom field definitions, resolve file-system attachment paths, and version-check the Hesk installation to avoid schema mismatches during extraction. Freshdesk's API requires agents to exist before ticket import, so we migrate Agents first, then Contacts, then Tickets with full threading, then Knowledge Base. Custom fields, canned responses, and ticket history are mapped with notes. Freshdesk automations (triggers, SLA policies, macros, scenario automations) do not migrate and are documented for the customer's admin to rebuild post-migration.

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

Hesk logo

Hesk

What's pushing teams away

  • Hesk has no built-in REST API, which blocks teams that need to automate workflows, integrate with CRMs, or connect third-party chatbots at scale.
  • The admin UI is described as functional but dated, with reviewers noting the management panel could benefit from modern design and UX improvements.
  • Larger support teams outgrow Hesk's flat feature set and migrate to platforms like Zendesk, Freshdesk, or JIRA Service Management for automation, SLA management, and multi-channel routing.
  • Hesk Cloud pricing is not transparently published on the site, leading some customers to feel uncertain about total cost when moving off self-hosted.
  • The knowledge base and ticket search are basic compared to enterprise alternatives, with limited customisation of article layouts and no built-in versioning.

Choosing

Freshdesk logo

Freshdesk

What's pulling them in

  • Free tier for 1-2 agents with no credit card makes initial evaluation risk-free and appeals to startups and small support teams.
  • Per-agent pricing is predictable and scales cleanly as teams grow from Growth at $15/agent/month to Enterprise at $89/agent/month.
  • Freddy AI Copilot and Email AI Agent bring AI assistance without forcing a full platform switch, appealing to teams already embedded in Freshdesk.
  • Multilingual help desk and customer portal features serve global SMB teams without requiring enterprise-level investment.
  • Collaborators up to 5,000 included in paid plans allow non-agent stakeholders to view tickets without additional licensing cost.

Object mapping

How Hesk objects map to Freshdesk

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

Hesk

Ticket

maps to

Freshdesk

Ticket

1:1
Fully supported

Hesk tickets (subject, message, status, priority, owner, category, custom fields) map directly to Freshdesk tickets. The ticket body becomes the ticket description, and Hesk ticket replies become Freshdesk conversation notes or replies. We preserve threading order by importing in chronological sequence and setting the Freshdesk incoming timestamp to match the Hesk created_date. Hesk status values (new, open, pending, resolved, closed) map to Freshdesk status values with a custom mapping table agreed upon during scoping. Priority maps to Freshdesk priority with a defined low/medium/high/critical translation.

Hesk

User (End User / Customer)

maps to

Freshdesk

Contact

1:1
Fully supported

Hesk end-user accounts (name, email, IP address, creation date) map to Freshdesk contacts. Hesk allows emailless users for phone-only contacts; Freshdesk requires an email for the primary identifier, so emailless Hesk users are flagged during discovery for the customer to either provide a placeholder email or exclude from migration. GDPR anonymisation flags are preserved as a note field on the contact record.

Hesk

Staff Account

maps to

Freshdesk

Agent

1:1
Fully supported

Hesk staff accounts (name, email, role: administrator/manager/agent) map to Freshdesk agents. Role translation maps Hesk Administrator to Freshdesk Admin, Hesk Manager to Freshdesk Agent with group management permissions, and Hesk Agent to Freshdesk Agent. We create agents via the Freshdesk agents API before any ticket import, because Freshdesk requires an agent association for ticket assignment. Hesk password hashes (bcrypt) do not transfer; agents receive Freshdesk provisioning emails to set passwords.

Hesk

Category (Ticket Category)

maps to

Freshdesk

Group

lossy
Fully supported

Hesk ticket categories (name and description) map to Freshdesk groups. We create groups in Freshdesk via the Groups API before ticket import and store the Hesk category ID as a reference field in our migration manifest. If Hesk categories are hierarchical or overlap with department structures, groups are named to reflect the original category intent.

Hesk

Knowledge Base Article

maps to

Freshdesk

Solution Article

1:1
Fully supported

Hesk KB articles (title, HTML content, category, attachments) map to Freshdesk solution articles within a Freshdesk Help Center folder. We export article content as HTML, import into Freshdesk via the Solutions API, and map Hesk KB categories to Freshdesk folders (created first during KB import). Article status maps to Published/Draft based on the Hesk article's published flag. Inline images require re-hosting; we flag any img tags with relative paths for path remapping before import.

Hesk

Canned Response

maps to

Freshdesk

Snippet

1:1
Fully supported

Hesk canned responses (title and HTML body) map to Freshdesk snippets. Imported via the Freshdesk snippets API as a flat list. Note that Freshdesk snippets are workspace-scoped and not automatically linked to specific ticket fields; the customer's admin reassigns them to the appropriate contexts after migration. Hesk's per-category canned response associations are preserved as snippet group names in Freshdesk.

Hesk

Custom Field (Ticket)

maps to

Freshdesk

Custom Ticket Field

lossy
Fully supported

Hesk custom ticket fields (type, label, options) are enumerated during discovery and pre-created in Freshdesk via Admin > Ticket Fields before ticket migration. We map field types (dropdown, checkbox, date, text) to Freshdesk field types. Dropdown options are bulk-created before ticket records are imported so that option values are valid on insert. The undocumented Hesk custom field cap is checked during discovery; if the customer is near the limit, we flag which fields may not transfer cleanly.

Hesk

Attachment (file-system)

maps to

Freshdesk

Ticket Attachment

1:1
Fully supported

Hesk attachments live on the file system with paths stored in MySQL (hesk_attachments table with file_path and db_id). We export the entire attachments directory, re-upload each file via the Freshdesk attachments API using the ticket ID as the parent reference, and replace the Hesk relative URL with the Freshdesk CDN URL in the ticket body. If the destination Freshdesk domain differs from the Hesk server, all embedded image URLs are rewritten. Attachment files exceeding 15MB cannot be migrated through the Freshdesk API; we flag these for manual handoff.

Hesk

Ticket History / Audit Trail

maps to

Freshdesk

Ticket Conversation

1:1
Mapping required

Hesk ticket history (opened, replied, status change, assignment events) is stored in hesk_ticket_events. We merge these into Freshdesk ticket conversation entries as notes with a timestamp and actor attribution. Not all Hesk event types have a Freshdesk equivalent; we classify Hesk system events as internal notes and customer-initiated events as reply notes to preserve the thread context as faithfully as the destination model allows.

Hesk

Settings and Configuration

maps to

Freshdesk

Configuration Notes (document only)

lossy
Mapping required

Hesk settings (email routing, ticket field labels, status names, branding) are exported as a JSON configuration bundle. We do not apply settings directly to Freshdesk because Freshdesk configuration (status labels, required fields, ticket field ordering) requires manual admin action or separate API calls. The configuration bundle is delivered as a written inventory so the customer's Freshdesk admin can apply equivalent settings post-migration.

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.

Hesk logo

Hesk gotchas

High

No REST API means all migrations are database-first

High

Moving Hesk between servers requires version parity

Medium

GDPR anonymisation may conflict with ticket preservation

Medium

Attachments are file-system references, not database blobs

Low

Custom field limits are undocumented but exist

Freshdesk logo

Freshdesk gotchas

High

API access is blocked on the free plan

High

Per-minute rate limits are account-wide and endpoint-specific

Medium

Multi-channel source types do not map 1:1 to all destinations

Medium

Custom objects created in-product cannot be accessed by other apps

Low

Contact import requires at least 10 existing tickets in the account

Pair-specific challenges

  • Hesk has no REST API; database credentials are required

    All Hesk migrations begin with direct MySQL database access. Hesk exposes no public API for record extraction, so we connect to the customer's MySQL instance, enumerate the full schema, and extract records via SQL queries. This requires the customer to provide database credentials and ensure our migration host can reach port 3306 on the Hesk server or a database replica. Self-hosted Hesk on restrictive hosting (shared hosting without remote MySQL, or hosting behind a firewall) may require the customer to export a MySQL dump and provide temporary database hosting with remote access. We flag any hosting-level access constraints before extraction begins.

  • Attachments are file-system references that must travel separately

    Hesk stores ticket attachments on disk with MySQL path references (hesk_attachments.file_path). Migrating the database records without the corresponding files directory leaves broken attachment links in Freshdesk. We bundle the file-system export with the database export, verify file-path consistency, and re-upload each attachment via the Freshdesk API against the correct ticket ID. Large attachment directories (several GB) add significant migration time because each file is uploaded individually through the Freshdesk API. Files over 15MB cannot be processed by the Freshdesk API; we flag these and deliver them as a separate archive for manual placement.

  • Freshdesk automations must be disabled before import

    Freshdesk triggers, SLA policies, and scenario automations fire on ticket creation events and can assign, escalate, or email on imported records during migration. We require the customer's Freshdesk admin to disable all automations before migration begins and re-enable them after cutover. If this step is skipped, imported tickets may be incorrectly routed, escalated, or have notifications sent to customers for historical tickets that should be silent. The Freshdesk migration checklist from Freshworks recommends this explicitly, and we enforce it as a pre-flight gate.

  • Knowledge base folders must be created before articles import

    Freshdesk's Solutions API requires a folder ID when creating articles, but does not allow bulk folder creation in a single call. We must import folders first (creating each via the API), capture the Freshdesk folder IDs, then import articles referencing those IDs. If Hesk has a large KB with many category levels, this creates a sequential dependency chain that adds migration time. We pre-build the folder map during discovery to avoid re-querying folder IDs mid-import.

  • Canned responses do not link to ticket fields in Freshdesk

    Hesk canned responses are pre-written templates attached to ticket creation or reply workflows. Freshdesk snippets are imported as a flat list and are not automatically scoped to specific ticket fields, triggers, or templates. The customer's Freshdesk admin manually assigns snippets to macro contexts after migration. We deliver a named mapping of Hesk canned response titles to Freshdesk snippet names so that the admin can quickly reconnect them to the appropriate ticket reply or creation macro.

Migration approach

Six steps for a successful Hesk to Freshdesk data migration

  1. Discovery and access provisioning

    We audit the Hesk MySQL database schema to enumerate all tables, custom field definitions, attachment paths, and Hesk version. We confirm the Freshdesk API is active on the target account (Growth tier or above; API is not available on the free Sprout plan), generate a Freshdesk API key, and verify the target Freshdesk domain. We also check whether the customer has existing Freshdesk data that would trigger duplicate detection. The discovery output is a written scope document confirming record counts per object, any custom field types, attachment file count and total size, and a migration timeline estimate.

  2. Schema pre-creation in Freshdesk

    Before any data import, we pre-create Freshdesk objects that are required for referential integrity: groups (from Hesk categories), agents (from Hesk staff), custom ticket fields (from Hesk custom field definitions), and Help Center folders (from Hesk KB categories). Each is created via the Freshdesk REST API and the resulting Freshdesk IDs are stored in our migration manifest alongside the corresponding Hesk IDs for lookup during record import. Freshdesk automations are disabled as a pre-flight gate at this stage.

  3. Database extraction and data cleaning

    We connect to the Hesk MySQL database directly and extract all records in dependency order: users, staff, categories, tickets, KB articles, canned responses, attachments metadata, and ticket history. During extraction we apply any data cleaning agreed upon during scoping (anonymisation, duplicate deduping, date range filters). We export the attachments directory from the Hesk file system as a ZIP archive. All extracted data is validated against expected record counts before transformation begins.

  4. Sandbox migration and reconciliation

    We run a full migration into the customer's Freshdesk sandbox (or a fresh Freshdesk trial account) using the extracted Hesk data. The customer reconciles record counts, spot-checks 25-50 random tickets for threading fidelity, verifies custom field values, confirms attachment visibility, and checks KB article rendering. We correct any mapping errors identified during sandbox reconciliation before the production migration begins. Sandbox migration typically takes one to two days for small-to-medium Hesk instances.

  5. Production migration and attachment upload

    We run production migration in strict dependency order: agents, contacts, groups, custom fields, tickets with conversation threading, KB articles with folder assignment, canned responses, and finally attachments. Attachment upload is the longest step for installations with many files; we chunk uploads in batches and handle API rate-limit responses with exponential backoff. Each object import emits a row-count reconciliation report before the next object begins. Ticket history is merged into conversation notes in chronological order with actor attribution preserved.

  6. Cutover, validation, and automation rebuild handoff

    We freeze Hesk writes during the cutover window, run a delta migration of any records created or updated during the migration, and enable Freshdesk as the system of record. Freshdesk automations are re-enabled by the customer's admin. We deliver the automation and canned response inventory document so the admin can reconnect snippets to Freshdesk macros and rebuild Hesk-style workflow equivalents using Freshdesk triggers and scenario automations. We support a 48-hour post-cutover window for reconciliation issues raised by the support team.

Platform deep dives

Context on both ends of the pair

Hesk logo

Hesk

Source

Strengths

  • Zero-cost self-hosted option with no per-agent or per-ticket billing ever.
  • PHP/MySQL stack runs on any shared hosting or VPS with minimal server requirements.
  • One-time license fee ($49.99) removes branding and includes direct developer support.
  • Unlimited users per installation regardless of plan.
  • Direct MySQL access gives full data portability for teams comfortable with SQL exports.

Weaknesses

  • No public REST API — automation and third-party integrations require custom development or Mods-for-HESK community add-ons.
  • Dated admin interface compared to modern SaaS help desks; UI customisation is limited to CSS themes.
  • Limited automation: no built-in workflow rules, SLA timers, or escalation triggers beyond basic ticket routing.
  • Server maintenance (backups, upgrades, cron jobs, mail server config) is the customer's responsibility on self-hosted.
  • No native multi-channel routing beyond email-to-ticket; chat, phone, and social channels require external tools.
Freshdesk logo

Freshdesk

Destination

Strengths

  • Generous free tier with no credit card required for 1-2 agents for 6 months.
  • Per-agent pricing model is transparent and scales linearly with team growth.
  • Freddy AI Copilot integrates assistance directly into the agent workspace without requiring separate tooling.
  • Multilingual help desk and customer portal serve global teams on Pro and Enterprise plans.
  • Shared inbox, threads, and tasks keep ticket context unified across multi-channel conversations.

Weaknesses

  • Freddy AI is a separate paid add-on charged per session, making AI costs unpredictable and hard to budget.
  • Performance issues including delayed loading and duplicate tickets are recurring user complaints during high-volume periods.
  • Customization is more limited than Zendesk, with fewer workflow options and reporting flexibility.
  • Add-ons for chat, advanced routing, and custom reporting are gated behind higher tiers or separate module purchases.
  • API access is completely disabled on the free plan, blocking any programmatic data export or migration tooling.

Complexity grading

How hard is this migration?

Standard Helpdesk migration. 2 of 7 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Hesk and Freshdesk.

  • Object compatibility

    B

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

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

  • API constraints

    B

    Hesk: Not documented.

  • Data volume sensitivity

    B

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

Estimator

Estimate your Hesk to Freshdesk 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 Hesk to Freshdesk data migrations

Answers to the questions buyers ask most during Hesk to Freshdesk migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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

Book a free 30 minute consultation

Simple migrations with under 5,000 tickets, minimal attachments, and no complex custom field schemas complete in one to two weeks. Migrations with large attachment directories (several GB), extensive knowledge bases, or complex custom field structures move to three to five weeks because of per-file API upload handling, KB folder pre-creation sequencing, and the sandbox reconciliation cycle. The Hesk database audit and schema discovery typically takes two to three business days before any migration work begins.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Hesk.
Land in Freshdesk, 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