Helpdesk migration
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
Source
Salesforce Service Cloud
Destination
Compatibility
9 of 12
objects map 1:1 between Hesk and Salesforce Service Cloud.
Complexity
CModerate
Timeline
3-5 weeks
Overview
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.
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.
Source platform
Hesk platform overview
Scorecard, SWOT, gotchas, and pricing for Hesk.
Destination platform
Salesforce Service Cloud platform overview
Scorecard, SWOT, gotchas, and pricing for Salesforce Service Cloud.
Data migration guide
The complete Salesforce Service Cloud migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Destination checklist
Salesforce Service Cloud migration checklist
Pre- and post-cutover tasks for moving onto Salesforce Service Cloud.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
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
Salesforce Service Cloud
Case
1:1Hesk 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
Salesforce Service Cloud
Contact (requester)
1:1Hesk 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
Salesforce Service Cloud
Knowledge Article
1:1Hesk 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)
Salesforce Service Cloud
Case Record Type or Business Hours
lossyHesk 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)
Salesforce Service Cloud
Contact
1:1Hesk 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
Salesforce Service Cloud
User
1:1Hesk 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)
Salesforce Service Cloud
Custom Field (Case)
1:1Hesk 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)
Salesforce Service Cloud
Custom Field (Contact/User)
1:1Hesk 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
Salesforce Service Cloud
Email Template or Salesforce Macro
1:1Hesk 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
Salesforce Service Cloud
ContentVersion / ContentDocument
1:1Hesk 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
Salesforce Service Cloud
Case Feed / EmailMessage
many:1Hesk 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
Salesforce Service Cloud
Configuration Documentation
lossyHesk 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.
| Hesk | Salesforce Service Cloud | Compatibility | |
|---|---|---|---|
| Ticket | Case1:1 | Fully supported | |
| Ticket | Contact (requester)1:1 | Fully supported | |
| Knowledge Base Article | Knowledge Article1:1 | Fully supported | |
| Category (Ticket Category) | Case Record Type or Business Hourslossy | Fully supported | |
| User (End-User / Customer) | Contact1:1 | Fully supported | |
| Staff Account | User1:1 | Fully supported | |
| Custom Field (Ticket-level) | Custom Field (Case)1:1 | Fully supported | |
| Custom Field (User-level) | Custom Field (Contact/User)1:1 | Fully supported | |
| Canned Response | Email Template or Salesforce Macro1:1 | Fully supported | |
| Ticket Attachment | ContentVersion / ContentDocument1:1 | Fully supported | |
| Ticket History / Audit Trail | Case Feed / EmailMessagemany:1 | Mapping required | |
| Settings and Configuration | Configuration Documentationlossy | Mapping required |
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.
Hesk gotchas
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
Salesforce Service Cloud gotchas
Data Export 512MB file size cap breaks large org exports
API Daily Request Limits vary by license edition
No automatic data backup in base Salesforce
Picklist dependencies silently break records when unmapped
Workflow rules fire unexpectedly during data load
Pair-specific challenges
Migration approach
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.
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.
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.
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.
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.
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
Hesk
Source
Strengths
Weaknesses
Salesforce Service Cloud
Destination
Strengths
Weaknesses
Complexity grading
Moderate Helpdesk migration. 1 of 7 objects need a manual workaround.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Hesk and Salesforce Service Cloud.
Object compatibility
1 of 7 objects need a manual workaround.
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
Hesk: Not documented.
Data volume sensitivity
Hesk 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 Hesk to Salesforce Service Cloud migration scoping. Not seeing yours? Book a call.
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 consultationAdjacent paths
Other ways to leave Hesk
Other ways to arrive at Salesforce Service Cloud
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.