Helpdesk migration

Migrate from HelpDeskZ to Salesforce Service Cloud

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

HelpDeskZ logo

HelpDeskZ

Source

Salesforce Service Cloud

Destination

Salesforce Service Cloud logo

Compatibility

50%

5 of 10

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

Complexity

CModerate

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from HelpDeskZ to Salesforce Service Cloud requires a database-first extraction strategy because HelpDeskZ exposes no REST API. We connect directly to the MySQL/MariaDB source, extract Tickets as Cases, preserve reply thread chronology, and decode PHP-serialized custom fields into Salesforce custom Case fields. Departments map to Salesforce Queues or Groups, and attachment filenames are resolved against the uploads directory and re-uploaded to Salesforce Files. Email threading identifiers from HelpDeskZ are extracted as raw content only; the destination assigns its own thread context. We do not migrate HelpDeskZ workflows, automations, or any email pipeline configuration as code; these require rebuild in Salesforce Flow, Omni-Channel, or case thread templates. Historical SLA data, if present in HelpDeskZ custom fields, maps to Salesforce Entitlements and Milestones during import. The migration scope covers Cases, Contacts (from HelpDeskZ users), Accounts, Attachments, Custom Fields, and Ticket Status remapping.

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

HelpDeskZ logo

HelpDeskZ

What's pushing teams away

  • The feature set has stagnated — without active development, teams outgrow the platform as support volume and complexity increase.
  • Limited to no native integrations with modern tools like Slack, Salesforce, or Zapier, forcing teams to manually bridge workflows or abandon the platform.
  • No public REST API means third-party automation, reporting, and data extraction all require direct database queries, which most non-technical teams cannot maintain.
  • As the vendor (EvolutionScript) has scaled to other products, documentation and community support for HelpDeskZ have thinned, leaving self-hosted customers without guidance for troubleshooting.

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 HelpDeskZ objects map to Salesforce Service Cloud

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

HelpDeskZ

Ticket

maps to

Salesforce Service Cloud

Case

1:1
Fully supported

HelpDeskZ tickets map to Salesforce Case records. The ticket id, subject, description, status, priority, and created/updated timestamps migrate directly. We resolve the ticket's assigned agent to a Salesforce User by email lookup, and the submitting user to a Contact by email on the Case. The flat HelpDeskZ ticket-to-reply thread is preserved as sequential EmailMessage records and CaseComments ordered by the created timestamp, with the original HelpDeskZ ticket_id stored in a custom external ID field hdz_ticket_id__c.

HelpDeskZ

Reply (ticket_replies table)

maps to

Salesforce Service Cloud

EmailMessage + CaseComment

1:many
Fully supported

Each HelpDeskZ reply row maps to a Salesforce EmailMessage (for agent-customer exchanges) or CaseComment (for internal notes). We detect the reply type from the is_customer column and assign IsIncoming=true or false accordingly. Attachment filenames from the replies table are linked to the corresponding Salesforce Files. The created timestamp preserves chronological ordering in the case timeline.

HelpDeskZ

User (agent)

maps to

Salesforce Service Cloud

User

1:1
Fully supported

HelpDeskZ users with role=admin or role=agent map to Salesforce User records by email match. We extract the username, email, and role from the users table. If a matching Salesforce User does not exist, the record is held in a reconciliation queue and the customer provisions the User before migration resumes. Hashed passwords do not migrate and must be reset in Salesforce.

HelpDeskZ

User (client)

maps to

Salesforce Service Cloud

Contact

many:1
Fully supported

HelpDeskZ users with role=client map to Salesforce Contact records. Multiple HelpDeskZ client accounts with identical email addresses are merged into a single Contact. The Contact receives the hdz_user_id__c external ID and the original HelpDeskZ username and registration date as custom fields. If the customer uses Salesforce Person Accounts, we map to that record type instead.

HelpDeskZ

Department

maps to

Salesforce Service Cloud

Queue or Group

1:1
Fully supported

HelpDeskZ departments map to Salesforce Queues (for Case assignment) or Groups (for reporting segmentation). We extract the department id and name from the departments table and create corresponding Queues with the Cases object enabled. Department assignment on tickets becomes the Case.Origin or a custom department__c field linked to the Queue by name. If the customer uses Salesforce Territories or Omni-Channel, we coordinate department mapping with the routing configuration during scoping.

HelpDeskZ

Attachment (filesystem)

maps to

Salesforce Service Cloud

ContentDocument + ContentVersion

1:1
Fully supported

HelpDeskZ stores files on disk in the uploads/ directory. We resolve each filename from the tickets and replies tables against the configured uploads_path, validate the file exists, and upload it to Salesforce as a ContentVersion with the IsMajorVersion flag set. The ContentDocumentLink associates the file with the parent Case by linking via LinkedEntityId. Files without a valid on-disk presence are logged as warnings and skipped to allow migration to continue.

HelpDeskZ

Custom Fields (serialized PHP)

maps to

Salesforce Service Cloud

Custom Case Fields

lossy
Fully supported

The custom_fields column on HelpDeskZ tickets holds a PHP serialized string. We unserialize it using the detected PHP version on the source server (falling back to regex extraction for corrupted data), extract each key-value pair, and create corresponding custom fields on the Salesforce Case object before migration. Field types are inferred from value format: numeric strings become Number fields, ISO dates become Date fields, and remaining values become Text fields. Custom field names are prefixed with hdz_ to avoid naming collisions.

HelpDeskZ

Ticket Status

maps to

Salesforce Service Cloud

Case Status

lossy
Fully supported

HelpDeskZ ships with integer-coded statuses (typically 0=Open, 1=Pending, 2=Resolved, 3=Closed). We map these integer codes to Salesforce Case Status values (New, Working, Escalated, Closed) in the status field during import. If the customer has added custom status labels in the database, we document them and either create custom Status values or map to the nearest standard value during scoping.

HelpDeskZ

Ticket Priority

maps to

Salesforce Service Cloud

Case Priority

1:1
Fully supported

HelpDeskZ priority values (Low, Normal, High, Urgent) map directly to Salesforce Case Priority values (Low, Medium, High, Highest). The mapping is straightforward because both platforms use equivalent vocabulary for urgency levels.

HelpDeskZ

Email Pipeline (POP3/IMAP)

maps to

Salesforce Service Cloud

Email-to-Case Configuration

lossy
Fully supported

HelpDeskZ stores POP3/IMAP mailbox credentials and email-to-ticket rules in the database. We extract the source email address, mailbox type, and thread identifier settings. Email threading identifiers (Message-ID, In-Reply-To) are extracted as raw text only and do not reconstruct into Salesforce thread relationships, because Salesforce assigns its own thread IDs at Email-to-Case insertion time. We document the original mailbox settings for the customer to configure Salesforce Email-to-Case 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.

HelpDeskZ logo

HelpDeskZ gotchas

High

No REST API — migration requires direct database reads

Medium

Custom fields are stored as serialized PHP arrays

Medium

Email-to-ticket threading does not migrate cleanly

Low

Attachment files are stored on disk, not in the database

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

  • HelpDeskZ has no REST API — migration requires direct database reads

    HelpDeskZ exposes no HTTP API. All data extraction is done via direct MySQL/MariaDB queries against the source database. We require read credentials (host, port, database name, table prefix) and confirm the uploads directory path during scoping. If the database is on a private network, behind a firewall, or uses a non-standard port, the customer must open access or provide an SSH tunnel before migration can proceed. This is a pair-specific constraint: the absence of an API is the primary driver for manual scoping work that does not apply to API-equipped source platforms.

  • PHP-serialized custom fields require version-aware decoding

    HelpDeskZ stores custom field values as a single PHP serialized string in the tickets table. PHP 7 and PHP 8 produce incompatible serialization formats, and corrupted serialized data fails silently with the standard unserialize() call. We detect the PHP version on the source server, apply the correct unserialization method, and fall back to regex extraction for any records that fail. This step adds processing time per ticket and must be validated against a sample of at least 100 records before production migration.

  • Email threading relationships do not reconstruct in Salesforce

    HelpDeskZ converts incoming emails to tickets and stores Message-ID, In-Reply-To, and References headers from the source mail system. These identifiers point to the HelpDeskZ mail spool and are not valid in Salesforce's Email-to-Case thread model. We extract the raw email body content and attachment filenames and insert them as CaseEmailMessage records, but Salesforce assigns its own thread ID at insert time. Agents will see a new thread in Salesforce rather than a continuation of the HelpDeskZ thread. We document this for the customer's admin and recommend setting the Email-to-Case thread ID pattern to match existing case numbering conventions.

  • Salesforce API rate limits cap bulk attachment upload throughput

    Salesforce enforces concurrent and daily API request limits by org edition. Uploading thousands of attachment files as individual ContentVersion inserts can exhaust the Bulk API daily limit on large migrations. We chunk file uploads into batches of 200 ContentVersions, apply exponential backoff on 429 responses, and monitor the daily limit reset during multi-day migrations. If the customer has an active Salesforce org with heavy API usage during the migration window, we recommend scheduling uploads during off-peak hours or requesting a temporary limit increase from Salesforce support.

  • Custom field schema must be created before data load

    HelpDeskZ custom fields are discovered only by decoding the serialized column at extraction time, after the database schema is known. We create Salesforce custom Case fields during the schema design phase based on a sample decode, but the full set of custom field names and types is confirmed after the first extraction pass. Any schema changes after data load require a delta migration of the affected records. We coordinate custom field creation with the customer's Salesforce admin to avoid field name collisions with existing custom fields in the destination org.

Migration approach

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

  1. Database access and scoping

    We confirm database credentials (MySQL host, port, database name, table prefix) and validate read access to the HelpDeskZ database. We inspect the tickets table schema, the ticket_replies table, the users table (role distribution), the departments table, and the system_settings table for uploads_path and PHP version indicators. We run a record count query across all tables and sample 50 tickets to verify the custom_fields serialization format. The scoping output is a written migration scope document with record counts, a preliminary field map, and any database access blockers flagged for resolution.

  2. Custom field discovery and Salesforce schema provisioning

    We run a full extraction pass on the custom_fields column across all tickets to collect every unique field key and infer the data type. We deduplicate the field list and create corresponding custom fields on the Salesforce Case object (prefixed with hdz_). If the destination org uses record types on Case, we assign custom fields to the appropriate record type. Custom field creation happens in a Salesforce Sandbox first for validation, then is promoted to production. We coordinate field creation with the customer's Salesforce admin to avoid naming collisions.

  3. User and Contact reconciliation

    We extract all HelpDeskZ users and classify by role (admin, agent, client). Agents and admins are matched by email to existing Salesforce Users; unmatched agents are flagged in a reconciliation report for the admin to provision before production migration. Clients are extracted as Contact candidates with hdz_user_id__c as the external ID. We deduplicate contacts by email to handle cases where a single email has multiple HelpDeskZ client accounts. This reconciliation report is signed off before the Contacts phase begins.

  4. Department to Queue mapping and configuration

    We map HelpDeskZ departments to Salesforce Queues with Cases enabled. Each Queue is created in the destination org with the corresponding department name. Department assignment on tickets is mapped to Case.Origin or a custom department__c field linked to the Queue. If the customer uses Omni-Channel, we document the routing configuration needed post-migration rather than implementing it during data migration scope.

  5. Production migration in dependency order

    We run migration in this order: Salesforce custom fields and Queues (schema ready), Contacts (from HelpDeskZ client users), Cases (with CaseContactId resolved to the Contact record by email), CaseComments and EmailMessages (replies ordered by created timestamp), ContentVersions (attachments from disk), and finally delta verification. Each phase emits a row-count reconciliation report. The Salesforce Bulk API is used for Cases and Contacts; individual API calls are used for ContentVersion uploads with chunking and backoff.

  6. Cutover, validation, and handoff

    We freeze HelpDeskZ writes during cutover, run a final delta migration of any tickets modified during the migration window, and enable Salesforce Service Cloud as the system of record. We deliver a migration summary report with record counts by object, a list of skipped records with reasons, and a custom field inventory showing which HelpDeskZ custom fields mapped to which Salesforce fields. We do not rebuild HelpDeskZ email pipeline configuration, assignment rules, or any workflow logic; these are documented as rebuild items for the customer's Salesforce admin or a Service Cloud implementation partner.

Platform deep dives

Context on both ends of the pair

HelpDeskZ logo

HelpDeskZ

Source

Strengths

  • Zero licensing cost — GPL-licensed PHP software with no subscription or per-seat fees.
  • Complete data ownership via self-hosting — the database and uploads live on your own server.
  • Email-to-ticket via POP3/IMAP allows support teams to operate from existing mailboxes without a separate portal interface.
  • Lightweight and fast on modest hardware — designed for low-traffic environments where simplicity matters more than enterprise features.

Weaknesses

  • No documented public REST API, which blocks programmatic integrations and makes migration tooling development a custom database exercise.
  • Open-source community is small and fragmented — few plugins, no active forum, and the official vendor focuses on paid products instead.
  • Lacks built-in SLA tracking, canned responses, reporting dashboards, and multi-channel support that are standard in modern SaaS help desk platforms.
  • Self-hosting places server maintenance, security patching, and backup management entirely on the customer, with no managed hosting option from the vendor.
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 HelpDeskZ 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

    HelpDeskZ: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

Estimate your HelpDeskZ 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 HelpDeskZ to Salesforce Service Cloud data migrations

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

Can't find your answer?

Walk through your HelpDeskZ 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 two and four weeks for accounts under 10,000 tickets with no custom objects and straightforward department structures. Migrations with PHP-serialized custom fields requiring field-by-field decoding, large attachment sets exceeding 5 GB, or multiple departments mapping to Salesforce Queues extend to five to eight weeks because of the database extraction overhead, the transformation pipeline for serialized data, and the Salesforce Files upload choreography. Large attachment sets are the most common timeline driver because each file requires individual ContentVersion API calls.

Adjacent paths

Related migrations to explore

Ready when you are

Move from HelpDeskZ.
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