Helpdesk migration

Migrate from Hesk to Salesforce Service Cloud

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

Hesk logo

Hesk

Source

Salesforce Service Cloud

Destination

Salesforce Service Cloud logo

Compatibility

75%

9 of 12

objects map 1:1 between Hesk and Salesforce Service Cloud.

Complexity

CModerate

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Hesk to Salesforce Service Cloud is a migration from a self-hosted PHP/MySQL ticketing system to an enterprise-grade CRM with Service Cloud. Hesk has no public REST API, so we connect directly to the customer's MySQL instance to extract Tickets, Knowledge Base articles, Categories, Users, Staff Accounts, Custom Fields, Canned Responses, and Ticket History. We resolve ticket-to-contact relationships at migration time, re-map attachment file paths, and import into Salesforce Cases via the Bulk API 2.0. Workflows, automations, SLA rules, and custom scripts do not migrate because Hesk stores these as PHP modifications and community Mods rather than structured data. We deliver a written inventory of these configurations for the customer's admin to rebuild in Service Cloud Flow Builder or Salesforce Omni-Channel.

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

Salesforce Service Cloud logo

Salesforce Service Cloud

What's pulling them in

  • Deep Salesforce ecosystem integration with Sales Cloud, Marketing Cloud, and custom Apex apps creates a single pane of glass for enterprise customer data and cross-functional workflows.
  • Omnichannel case routing — email, chat, phone, social, and messaging — unified under one case object means agents do not lose context when customers switch channels mid-interaction.
  • AI for customer service (Einstein AI / Agentforce) offers automated case classification, suggested replies, and chatbot routing that reduces Tier-1 ticket volume without manual rule authoring.
  • Entitlement and milestone tracking enforces SLA compliance natively, automatically calculating breach windows and surfacing violations to supervisors in dashboards.
  • Salesforce's massive AppExchange ecosystem provides pre-built connectors, industry-specific managed packages, and third-party tools that extend Service Cloud beyond its out-of-box capabilities.

Object mapping

How Hesk objects map to Salesforce Service Cloud

Each row shows how a Hesk object lands in Salesforce Service Cloud, 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

Salesforce Service Cloud

Case

1:1
Fully supported

Hesk Tickets map directly to Salesforce Case records. Hesk's ticket ID becomes the Case CaseNumber or is stored in a custom field hesk_ticket_id__c for audit traceability. Hesk status (open, pending, resolved, closed) maps to Salesforce Case Status picklist values, and Hesk priority (low, medium, high, critical) maps to Case Priority. Owner assignment resolves via email match to the destination Salesforce User. Custom fields on Hesk tickets migrate to custom Case fields with equivalent data types.

Hesk

Ticket

maps to

Salesforce Service Cloud

Contact (requester)

1:1
Fully supported

Hesk stores the requester as a name and email within the ticket record (or as a linked user). We extract the requester into a Contact record first, then set Case ContactId as a Lookup during Case import. If the requester email matches an existing Salesforce Contact, we link to that record; otherwise we create a new Contact. Name, email, IP address (for audit), and creation date transfer. GDPR anonymisation requests are handled before Contact creation if requested.

Hesk

Knowledge Base Article

maps to

Salesforce Service Cloud

Knowledge Article

1:1
Fully supported

Hesk Knowledge Base articles with title, HTML content, category association, and optional attachments map to Salesforce Knowledge articles. Hesk KB categories map to Salesforce Knowledge data category groups that the customer's admin defines during scoping. Articles are imported in Draft status first, reviewed, and then published by the admin post-migration. Inline images in article HTML are handled as ContentDocument attachments linked via ContentDocumentLink.

Hesk

Category (Ticket Category)

maps to

Salesforce Service Cloud

Case Record Type or Business Hours

lossy
Fully supported

Hesk ticket categories (support, billing, technical, etc.) map to Salesforce Case Record Types with corresponding Page Layouts and Business Hours assignments. If the customer uses Hesk category-specific routing, we document the mapping for Omni-Channel routing rule configuration in Service Cloud post-migration.

Hesk

User (End-User / Customer)

maps to

Salesforce Service Cloud

Contact

1:1
Fully supported

Hesk end-user accounts (customers who submit tickets) map to Salesforce Contact records. Fields migrated include name, email, IP address (for compliance and audit), account creation date, and any user-level custom fields. Users without emails (phone-only contacts in Hesk) are created with email as a required field on Salesforce Contact using a generated placeholder if necessary.

Hesk

Staff Account

maps to

Salesforce Service Cloud

User

1:1
Fully supported

Hesk staff accounts (agents and administrators) map to Salesforce User records. Role hierarchy in Hesk (administrator, manager, agent) maps to Salesforce Role hierarchy and Profile assignments that we configure during migration. Password hashes do not transfer; the customer resets passwords post-migration. Staff custom fields migrate to User custom fields.

Hesk

Custom Field (Ticket-level)

maps to

Salesforce Service Cloud

Custom Field (Case)

1:1
Fully supported

Hesk ticket custom fields are stored as field definition rows and value rows in MySQL. We enumerate all custom field definitions during discovery, map each to a Salesforce custom field on Case with the equivalent data type (text, picklist, date, number, checkbox), and import the values during Case migration. Field-level security is set to read-write for the relevant Profiles during import and tightened post-migration.

Hesk

Custom Field (User-level)

maps to

Salesforce Service Cloud

Custom Field (Contact/User)

1:1
Fully supported

Hesk user custom fields migrate to Salesforce Contact or User custom fields depending on whether they are staff or end-user fields. We pre-create the destination fields before user migration and map values during the user import phase.

Hesk

Canned Response

maps to

Salesforce Service Cloud

Email Template or Salesforce Macro

1:1
Fully supported

Hesk canned responses (pre-written reply templates with title and HTML content) map to Salesforce Email Templates or Macros. If the customer uses Salesforce Macros for agent productivity, we map canned responses to Macro definitions with target objects and field values. Email templates are imported as Salesforce Content objects for use in Case Email Actions.

Hesk

Ticket Attachment

maps to

Salesforce Service Cloud

ContentVersion / ContentDocument

1:1
Fully supported

Hesk ticket attachments live on the server file system with paths stored in MySQL. We export the entire attachments directory alongside the database extract, verify path consistency, and re-upload each file as a Salesforce ContentVersion linked to the parent Case record via ContentDocumentLink. If the destination Salesforce org uses a different domain, attachment URLs are re-mapped post-import.

Hesk

Ticket History / Audit Trail

maps to

Salesforce Service Cloud

Case Feed / EmailMessage

many:1
Mapping required

Hesk ticket history logs events (opened, replied, status changes, assignment) in a history table. We merge these into Salesforce as Case Feed entries (via Connect API for Chatter feed) or as EmailMessage records representing each reply and status change. The full original timestamp and actor (staff name) are preserved in the body text. If the destination org does not use Chatter, we document the history mapping for manual reconstruction.

Hesk

Settings and Configuration

maps to

Salesforce Service Cloud

Configuration Documentation

lossy
Mapping required

Hesk settings (email routing, ticket field labels, status names, branding) are exported as a configuration bundle and delivered as a written document. Equivalent settings in Salesforce are applied by the admin during post-migration configuration: Case Status values, Case Priority values, Salesforce Email-to-Case routing, and Org Branding. This is a manual configuration step, not an automated data import.

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

Salesforce Service Cloud logo

Salesforce Service Cloud gotchas

High

Data Export 512MB file size cap breaks large org exports

High

API Daily Request Limits vary by license edition

High

No automatic data backup in base Salesforce

Medium

Picklist dependencies silently break records when unmapped

Medium

Workflow rules fire unexpectedly during data load

Pair-specific challenges

  • Hesk has no REST API — database credentials required

    Hesk does not expose a public API for programmatic record access. All migration work reads from the Hesk MySQL database directly, which requires the customer to provide database credentials (host, port, username, password, database name) and ensure our migration host can reach MySQL port 3306 over the network. Self-hosted Hesk instances may also require an SSL tunnel or VPN if the database is on a private network. We do not use XML or Excel exports from the Hesk UI as primary data sources because they do not capture custom field values or attachment references reliably.

  • Mods-for-HESK custom code has no Salesforce equivalent

    Hesk installations with community Mods-for-HESK add-ons (custom PHP modifications for SLA tracking, extended fields, custom ticket views, or third-party integrations) do not have direct Salesforce equivalents because they are PHP code patches rather than structured data. We document every installed Mod during discovery and map its functional intent to a Salesforce configuration (custom field, Flow, Apex trigger, or Omni-Channel routing rule) that the customer's admin implements. The Mods themselves do not migrate as code.

  • Attachment file paths break on domain change

    Hesk stores ticket attachments on disk with absolute file paths in MySQL (for example, /var/www/hesk/attachments/ticket_123_abc.pdf). When migrating to a new domain or Salesforce instance, these absolute paths are invalid. We export the entire attachments directory, re-upload each file as a ContentVersion to Salesforce, and update ContentDocumentLink records to point to the correct parent Case ID. If the customer uses a cloud-hosted Hesk instance with a CDN-served attachments path, we coordinate the file export separately.

  • GDPR anonymisation reduces ticket migration fidelity

    Hesk provides a built-in anonymisation feature that strips name, email, IP address, and message content from tickets for GDPR compliance while preserving ticket structure for statistics. If a customer requests anonymisation before migration, we must decide whether to preserve ticket subjects and thread structure (which may still contain indirect identifiers) or apply full anonymisation and accept reduced context in Salesforce. We clarify the customer's GDPR scope during discovery and document which records are anonymised and how that affects Case subject lines and description fields.

  • Custom field count may hit Hesk's undocumented limit

    The Mods-for-HESK community code references a hard cap on custom field count per Hesk installation. We discover this limit during the discovery scan when we enumerate custom field definitions. If the customer has built many custom fields and is at or near the limit, some fields may not transfer cleanly to Salesforce because we can only map what exists in the database. We flag near-limit conditions during scoping so the customer understands why certain fields may require a data cleanup pass before migration.

Migration approach

Six steps for a successful Hesk to Salesforce Service Cloud data migration

  1. Discovery and database connectivity

    We request Hesk database credentials from the customer and run a read-only discovery query against the MySQL instance to enumerate all tables, custom field definitions, Mods installed, and attachment file paths. We capture ticket volume, user volume, knowledge base article count, and any anonymisation flags. We verify MySQL port connectivity from our migration host and document any firewall or VPN requirements. The discovery output is a written scope document with record counts, schema map, and a preliminary object mapping table for the customer to review.

  2. Attachment and file system export

    We guide the customer through exporting the Hesk attachments directory (by default located in hesk/attachments/ relative to the Hesk install path) as a compressed archive. We verify the file count matches the attachment reference count in MySQL. If the customer runs Hesk Cloud (managed hosting), we coordinate a file export through the Hesk Cloud admin panel. All exported files are uploaded to a temporary S3-compatible bucket we provision for the migration, where they are staged for Salesforce ContentVersion upload.

  3. Schema pre-creation in Salesforce

    Before any data import, we create the Salesforce destination schema. This includes custom fields on Case and Contact with API names matched to Hesk custom field names, Case Record Types for each Hesk category, Case Status picklist values mapped from Hesk status labels, Salesforce Email Templates from Hesk canned responses, and Business Hours records if the customer uses Hesk SLA timers. Schema is deployed into a Salesforce Sandbox first for validation and into the production org after admin sign-off.

  4. Sandbox migration and reconciliation

    We run a full migration into a Salesforce Sandbox using production-like data volume. The customer reconciles record counts (Cases in, Contacts in, Knowledge Articles in), spot-checks 25-50 random Cases against the Hesk source for subject accuracy, custom field values, and attachment presence, and signs off the mapping before production migration. Any mapping corrections happen in Sandbox, not in production.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Contacts (from Hesk Users, requesters extracted first), Users (from Hesk staff, resolved by email match), Cases (with ContactId lookup resolved and custom field values populated), Knowledge Articles (with data category assignments), ContentVersions (attachments uploaded with parentId pointing to the correct Case), and Case Feed history entries. Each phase emits a row-count reconciliation report before the next phase begins. We use the Salesforce Bulk API 2.0 for Case and ContentVersion imports to handle large volumes without timeout.

  6. Cutover, validation, and automation handoff

    We freeze Hesk ticket writes during cutover, run a final delta migration of any Cases modified during the migration window, then enable Salesforce as the system of record. We deliver the Mods-for-HESK inventory with recommended Salesforce equivalents, the canned response mapping to Email Templates, and the Hesk settings bundle with recommended Salesforce configuration. We support a one-week hypercare window where we resolve any reconciliation issues. We do not rebuild Hesk Mods as Salesforce Apex or Flow inside the migration scope; that is documented separately for the customer's admin or a Salesforce partner.

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.
Salesforce Service Cloud logo

Salesforce Service Cloud

Destination

Strengths

  • Enterprise-grade security, compliance certifications, and audit logging available across all paid editions with Shield offering enhanced event monitoring.
  • Scalable multi-tenant cloud architecture supporting orgs from 5 users to 150,000+ seat enterprises without infrastructure management overhead.
  • Omnichannel contact center unifying email, live chat, phone, messaging, and social into a single Case timeline per customer interaction.
  • Rich workflow automation via Salesforce Flow, Process Builder, and Apex triggers enabling complex case escalation, routing, and field updates.
  • Native AI capabilities (Agentforce / Einstein) for case auto-routing, classification, suggested responses, and chatbot escalation without third-party add-ons.

Weaknesses

  • Per-seat pricing model with no contact limits creates unpredictable cost scaling for large organizations adding many agents over time.
  • No automatic data backup — organizations must purchase a third-party backup solution or build manual Data Loader exports to protect against data loss from human error, failed deployments, or integrations overwriting records.
  • Steep learning curve for non-technical users requiring dedicated admin resources and formal training investment before teams reach productive velocity.
  • Annual contract requirements and limited pro-ration on exit create significant switching cost friction, especially for organizations evaluating alternatives mid-cycle.
  • Add-on licensing (CPQ, Einstein Activity Capture, Shield, Data Cloud) can double effective per-seat cost without clear documentation of which features are included in base tiers.

Complexity grading

How hard is this migration?

Moderate Helpdesk migration. 1 of 7 objects need a manual workaround.

C

Overall complexity

Moderate migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Hesk and Salesforce Service Cloud.

  • Object compatibility

    C

    1 of 7 objects need a manual workaround.

  • 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 Salesforce Service Cloud 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 Salesforce Service Cloud data migrations

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

Can't find your answer?

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

Book a free 30 minute consultation

Most migrations land between three and five weeks for accounts under 15,000 tickets, 5,000 contacts, and no Mods-for-HESK custom code. Migrations with large attachment volumes (over 50,000 files), complex multi-field custom field hierarchies, GDPR anonymisation requirements, or Mods that need equivalent documentation move to eight to twelve weeks because of file re-hosting, field type transformation, and schema reconstruction. Discovery and Sandbox validation add two to three weeks before production migration begins.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Hesk.
Land in Salesforce Service Cloud, 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