Migrate your Hesk data
Open-source PHP help desk that runs on your server for free, with an optional one-time license to remove branding and get direct support.
In its favor
Why people choose Hesk
The signal that keeps Hesk on the shortlist. Sourced from G2, Capterra, and customer scoping calls.
Free self-hosted tier with no per-user or per-ticket fees makes Hesk the default choice for bootstrapped teams and solo operators who need ticketing without vendor lock-in.
The one-page PHP installer gets a running help desk in under five minutes on any LAMP stack, without requiring Docker, root access, or cloud infrastructure.
The creator (Klemen) is personally responsive to support requests, which reviewers cite as a decisive advantage over larger, community-only open-source alternatives.
Unlimited staff and end-user accounts on a single installation means small support teams are never forced to upgrade for headcount reasons.
MySQL as the underlying database makes Hesk portable to any hosting environment and allows direct SQL exports for backup or migration purposes.
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.
Reasons to switch
Why people leave Hesk
The recurring reasons buyers give for replacing Hesk. Presented as facts, not knocks.
Platform scorecard
Strengths, weaknesses, and where Hesk fits
Grades across six dimensions, plus a SWOT-style view of where the platform shines and where it falls short.
SWOT — strengths, weaknesses, and use-case fit
Strengths
Weaknesses
Where it works
Where it struggles
Pricing tiers
Hesk pricing overview
Hesk's self-hosted product is free indefinitely with a one-time optional license ($49.99–$199.99) to remove branding. Hesk Cloud is a separately priced managed hosting option whose pricing is not published on the website and requires a sales inquiry.
Free (Self-Hosted)
Tier 1 of 4
$0
What's included
Need help selecting your Helpdesk?
Book a free 30 minute consultationPricing is informational. FlitStack AI does not bill on Hesk's schedule — see our quote-based pricing →
What gets migrated
Hesk object support
Object-by-object support for Hesk migrations. Per-pair details surface during scoping.
Tickets
Fully supportedHesk's core object. Stores subject, message, status, priority, owner, category, and custom fields in MySQL. Ticket history is preserved including replies. We export via direct database query or XML export from the UI, mapping status codes (opened/resolved/pending/closed) to the destination schema.
Knowledge Base Articles
Fully supportedArticles are stored with title, content (HTML), category association, and optional attachments. Export is via XML or direct DB read. We map KB categories to the destination's article category structure. Custom article fields are migrated as key-value pairs.
Categories (Ticket Categories)
Fully supportedCategories are simple name/description rows referenced by ticket and KB article foreign keys. We preserve the full category tree and re-map foreign key references during import into the destination.
Users (Customers/End Users)
Fully supportedEnd-user accounts store name, email, IP address (for GDPR considerations), and creation date. Hesk allows emailless users for phone-only contacts. We export all user fields and handle anonymisation or deletion of PII on request before import.
Staff Accounts
Fully supportedStaff accounts include name, email, role (administrator/manager/agent), password hash (bcrypt), and permission flags. We migrate staff records and map role hierarchies to the destination's permission model.
Custom Fields
Mapping requiredCustom fields can be added per-ticket and per-user in Hesk. The schema stores field definitions and values as structured rows. We read all custom field definitions and values, then map them to equivalent custom properties in the destination — this requires field-type matching since Hesk supports text, select, radio, and checkbox types.
Canned Responses
Fully supportedPre-written reply templates are stored as title and HTML content rows in the database. We export them as a flat list and import them into the destination's templates or snippets feature.
Attachments
Mapping requiredTicket and KB article attachments are stored on disk (file system) with references in the MySQL database. We export the files alongside the DB records and preserve the attachment-to-ticket linkage by matching file IDs. File paths may need re-mapping on the destination server.
Ticket History / Audit Trail
Mapping requiredHesk logs ticket events (opened, replied, status changes, assignment) in a history table. We export the full history but note that not all help desks preserve a comparable audit trail — we merge events into the destination's native activity log where possible.
Settings and Configuration
Mapping requiredHesk stores configuration (email routing, ticket fields, status labels, branding) in a settings table. We export settings as a configuration bundle and apply equivalent settings to the destination, noting which features have no direct equivalent.
| Object | Support | Notes |
|---|---|---|
| Tickets | Fully supported | Hesk's core object. Stores subject, message, status, priority, owner, category, and custom fields in MySQL. Ticket history is preserved including replies. We export via direct database query or XML export from the UI, mapping status codes (opened/resolved/pending/closed) to the destination schema. |
| Knowledge Base Articles | Fully supported | Articles are stored with title, content (HTML), category association, and optional attachments. Export is via XML or direct DB read. We map KB categories to the destination's article category structure. Custom article fields are migrated as key-value pairs. |
| Categories (Ticket Categories) | Fully supported | Categories are simple name/description rows referenced by ticket and KB article foreign keys. We preserve the full category tree and re-map foreign key references during import into the destination. |
| Users (Customers/End Users) | Fully supported | End-user accounts store name, email, IP address (for GDPR considerations), and creation date. Hesk allows emailless users for phone-only contacts. We export all user fields and handle anonymisation or deletion of PII on request before import. |
| Staff Accounts | Fully supported | Staff accounts include name, email, role (administrator/manager/agent), password hash (bcrypt), and permission flags. We migrate staff records and map role hierarchies to the destination's permission model. |
| Custom Fields | Mapping required | Custom fields can be added per-ticket and per-user in Hesk. The schema stores field definitions and values as structured rows. We read all custom field definitions and values, then map them to equivalent custom properties in the destination — this requires field-type matching since Hesk supports text, select, radio, and checkbox types. |
| Canned Responses | Fully supported | Pre-written reply templates are stored as title and HTML content rows in the database. We export them as a flat list and import them into the destination's templates or snippets feature. |
| Attachments | Mapping required | Ticket and KB article attachments are stored on disk (file system) with references in the MySQL database. We export the files alongside the DB records and preserve the attachment-to-ticket linkage by matching file IDs. File paths may need re-mapping on the destination server. |
| Ticket History / Audit Trail | Mapping required | Hesk logs ticket events (opened, replied, status changes, assignment) in a history table. We export the full history but note that not all help desks preserve a comparable audit trail — we merge events into the destination's native activity log where possible. |
| Settings and Configuration | Mapping required | Hesk stores configuration (email routing, ticket fields, status labels, branding) in a settings table. We export settings as a configuration bundle and apply equivalent settings to the destination, noting which features have no direct equivalent. |
Gotchas
What to watch for in Hesk migrations
Issues we've hit on past Hesk migrations, tagged by severity. FlitStack AI handles every one — surfacing them up front because buyer engineering teams want to know.
No REST API means all migrations are database-first
Moving Hesk between servers requires version parity
GDPR anonymisation may conflict with ticket preservation
Attachments are file-system references, not database blobs
Custom field limits are undocumented but exist
| Severity | Issue |
|---|---|
| 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 |
Leaving Hesk?
Where Hesk customers move next
7 destinations Hesk can migrate to.
How a Hesk migration works
Four steps, Hesk-specific
Connect
X-Auth-Token header (token generated via API Settings in admin area) — only available with the third-party 'Mods for HESK' extension, not core Hesk. into Hesk. Scopes limited to read-only on the data we move.
Map
We translate Hesk-specific structures (custom fields, objects, value lists) to the destination's model.
Sample
Test with a 50–200 record subset to validate Hesk quirks before production.
Migrate
Full migration with Hesk rate-limit handling. Rollback available throughout.
FAQ
Hesk migration FAQ
Answers to the questions buyers ask most during Hesk migration scoping. Not seeing yours? Book a call.
Can't find your answer?
Walk through your Hesk migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationOther helpdesks we support
Ready when you are
Migrate Hesk.
Without the rebuild.
Free scoping call with a migration engineer. Tell us about your Hesk setup and destination — written quote back within a business day.