Helpdesk migration

Migrate from HelpDeskZ to Zoho Desk

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

HelpDeskZ logo

HelpDeskZ

Source

Zoho Desk

Destination

Zoho Desk logo

Compatibility

83%

10 of 12

objects map 1:1 between HelpDeskZ and Zoho Desk.

Complexity

CModerate

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from HelpDeskZ to Zoho Desk is a structural migration from a stalled open-source self-hosted system to a cloud-native SaaS help desk with department hierarchy, multi-channel support, and built-in SLA management. HelpDeskZ exposes no public REST API, so we connect directly to the MySQL/MariaDB database, extract tickets and reply threads from the flat conversation table, decode PHP serialized custom field columns, and resolve filesystem paths for attachment uploads before inserting into Zoho Desk via its REST API. The Zoho Desk department-centric hierarchy requires HelpDeskZ departments to be mapped to Zoho Teams or sub-departments, and HelpDeskZ ticket statuses must be remapped to Zoho's status vocabulary. Email threading relationships do not survive the migration because HelpDeskZ stores Message-ID references pointing to its own mail system. Workflows, canned responses, and knowledge base articles from HelpDeskZ (where they exist via the ViktorNova fork) do not migrate as code; we deliver a written inventory for the customer's admin to rebuild inside Zoho Desk.

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

Zoho Desk logo

Zoho Desk

What's pulling them in

  • Deep Zoho ecosystem integration lets support data tie directly to CRM contacts, invoice records in Zoho Books, and custom apps built in Zoho Creator, providing a unified customer view without third-party middleware.
  • Pricing undercuts comparable platforms significantly: Enterprise at roughly $40 per agent per month versus Zendesk at comparable tiers, making it attractive for cost-sensitive teams scaling past 10 agents.
  • Blueprints and multi-level escalations allow teams to codify support workflows and enforce SLA routing automatically, reducing manual triage for mid-size support operations.
  • Multi-channel ticket ingestion unifies email, social media, live chat, and phone into a single queue view, giving agents one inbox without context-switching across channels.
  • The free tier up to 3 agents lets small teams validate the platform before committing, reducing financial risk for startups and micro-businesses evaluating help desk software.

Object mapping

How HelpDeskZ objects map to Zoho Desk

Each row shows how a HelpDeskZ object lands in Zoho Desk, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

HelpDeskZ

User (agents, admins, clients)

maps to

Zoho Desk

Agent

1:1
Fully supported

HelpDeskZ users table (name, email, role, hashed password) maps to Zoho Desk Agents. Role mapping: HelpDeskZ admin maps to Zoho Desk Administrator profile; HelpDeskZ agent maps to Zoho Desk Agent profile; HelpDeskZ client role maps to a Zoho Desk Contact if the customer uses Zoho's contact-facing portal, or is flagged for admin decision. We extract email as the primary match key and resolve against Zoho's Agent email field during import. HelpDeskZ password hashes do not transfer; agents receive Zoho Desk onboarding invitations at insert time.

HelpDeskZ

Department

maps to

Zoho Desk

Department / Team

1:1
Fully supported

HelpDeskZ departments table (id, name) maps to Zoho Desk Departments. Zoho Desk supports hierarchical sub-departments; if the HelpDeskZ instance uses a flat department list, we create top-level Departments in Zoho. If the ViktorNova fork has been used to create nested departments, we map to Zoho's sub-department hierarchy by parsing the parent_id column. Department-specific SLAs in Zoho Desk are flagged for the customer to configure post-migration as SLA policies require ZohoDesk Enterprise or the Service Plus bundle.

HelpDeskZ

Ticket

maps to

Zoho Desk

Ticket

1:1
Fully supported

HelpDeskZ tickets table maps to Zoho Desk Tickets. The ticket subject maps to Subject, ticket content maps to Description, status (Open/Pending/Resolved/Closed as integer codes) maps to Zoho Desk Status using a remapping table defined at scoping, priority maps to Priority, and the ticket created timestamp maps to Created Time. We extract the department_id foreign key and map it to the corresponding Zoho Department via the department lookup established in the previous step.

HelpDeskZ

Ticket Reply / Thread

maps to

Zoho Desk

Ticket Comment / Thread

1:1
Fully supported

HelpDeskZ stores ticket conversation history as sequential rows in a separate replies table linked by ticket_id. Each row has a type field (customer reply, agent response) and a message field. We extract these rows in chronological order and insert them into Zoho Desk as Ticket Comments with the author resolved to the corresponding Agent or Contact by email match. The direction (incoming/outgoing) is preserved using the type field mapped to Zoho's Comment direction. Thread ordering is preserved by setting the comment timestamp to the original HelpDeskZ reply timestamp.

HelpDeskZ

Custom Fields

maps to

Zoho Desk

Custom Fields

lossy
Mapping required

HelpDeskZ stores custom fields as a PHP serialized string in a single column on the tickets table. We detect the PHP version on the source server (PHP 7 vs PHP 8) and apply the correct unserialization method, falling back to regex extraction for corrupted serialization. Each key-value pair is extracted, the field type is inferred from the value format (string, integer, date), and a corresponding custom field is pre-created in the Zoho Desk layout via the Custom Fields API before the ticket insert phase. Non-standard field names are normalized to Zoho's field naming constraints.

HelpDeskZ

File Attachment

maps to

Zoho Desk

Ticket Attachment

1:1
Fully supported

HelpDeskZ stores attachments on disk in the uploads/ directory with filenames referenced in the tickets and replies tables. We verify the uploads directory path via the uploads_path configuration value, extract file paths for each attachment reference, validate file existence, and upload each file to Zoho Desk via the Attachments API linked to the corresponding Ticket Comment. Missing files are logged as warnings and skipped to allow migration to proceed without blocking on a single lost file. Inline images within ticket content are extracted and re-uploaded separately.

HelpDeskZ

Email-to-Ticket Pipeline

maps to

Zoho Desk

Email Channels

1:1
Fully supported

HelpDeskZ email-to-ticket via POP3/IMAP is stored as mailbox configuration in the database. We extract the source email address and IMAP/POP3 settings and flag them for the customer to reconfigure as Zoho Desk Email Channels (Setup > Channels > Email > Add Email Account). The Message-ID and In-Reply-To threading relationships stored in HelpDeskZ tickets are not valid in Zoho Desk and are not preserved; the raw email content and attachment filenames are migrated but the email threading context is re-established by Zoho Desk's own thread assignment.

HelpDeskZ

Ticket Status

maps to

Zoho Desk

Ticket Status

lossy
Fully supported

HelpDeskZ ships default statuses as integer codes (0=Open, 1=Pending, 2=Resolved, 3=Closed) stored in the status column. We build a remapping table at scoping: HelpDeskZ Open maps to Zoho Open, Pending maps to Pending, Resolved maps to Resolved, and Closed maps from both Resolved and Closed (combined in the remap). Customers who have added custom status values via ViktorNova fork or database patches have those statuses flagged for manual Zoho Desk status creation before the ticket insert phase.

HelpDeskZ

Account / Company

maps to

Zoho Desk

Account

1:1
Fully supported

The upstream HelpDeskZ does not have a native Account or Company object. If the customer has been using ViktorNova fork with account support or has extended the database schema with a companies table, we map that to Zoho Desk Accounts. Accounts in Zoho Desk link to Contacts and Tickets, providing the organizational context that HelpDeskZ lacks. We flag this as a lookup mapping: if no companies table exists, we skip the Account object and link Tickets directly to Contacts.

HelpDeskZ

Contact

maps to

Zoho Desk

Contact

1:1
Fully supported

HelpDeskZ client-role users map to Zoho Desk Contacts when ticket submitter records exist. We extract the client email, name, and phone (if populated) from the HelpDeskZ users table for users who have submitted tickets, and create Zoho Desk Contact records. Contacts are resolved as parent records for Tickets before the ticket insert phase begins. If the customer also uses Zoho CRM, Contacts are looked up against the CRM API to avoid duplication.

HelpDeskZ

Knowledge Base

maps to

Zoho Desk

Knowledge Base Article

1:1
Fully supported

The upstream HelpDeskZ distribution does not include a knowledge base module. Customers running the ViktorNova fork who have built KB content in a separate table must provide the schema details during scoping. We flag Knowledge Base migration as out-of-scope for the standard migration unless the customer supplies the exact table structure and we can verify the data model is stable. Zoho Desk Knowledge Base attachments do not migrate via any available method (Zoho's own Zwitch notes this limitation explicitly).

HelpDeskZ

Reports and Dashboard Configuration

maps to

Zoho Desk

Reports

1:1
Fully supported

HelpDeskZ does not have a built-in reporting dashboard. Any custom reports the customer has constructed via direct SQL queries against the HelpDeskZ database must be translated to Zoho Desk's report builder (available from Standard tier) or Zoho Analytics. We do not migrate reports as code or SQL queries. We deliver a written inventory of all identified custom SQL reports with the equivalent Zoho Desk report type and field references for the customer's admin to rebuild.

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

Zoho Desk logo

Zoho Desk gotchas

High

Agent email identity determines comment ownership after migration

High

Blueprints and SLA policies do not export via API

Medium

File upload capped at 10GB per migration batch

Medium

Tier-gated export and migration capabilities

Low

Inbound migration is two-phase with a hard Phase 2 cutoff

Pair-specific challenges

  • HelpDeskZ has no REST API — database read access is mandatory

    HelpDeskZ exposes no HTTP API of any kind. Every object in scope (tickets, replies, users, departments, custom fields, attachment filenames) must be extracted via direct MySQL/MariaDB queries. We require read credentials to the database server (host, port, database name, table prefix, and credentials) during scoping. If the HelpDeskZ database is on a private network, behind a firewall, or on a shared hosting environment with phpMyAdmin-only access, the customer must provision direct MySQL access or an SSH tunnel before extraction can begin. Without this access, migration cannot proceed.

  • PHP serialized custom fields require version detection and fallback handling

    HelpDeskZ stores custom field values as PHP serialized strings in a single column on the tickets table. PHP 7 and PHP 8 produce incompatible serialized output for certain data types (objects, references). We detect the PHP version on the source server during extraction and apply the corresponding unserialization method. If the serialized data is corrupted (common in long-running HelpDeskZ instances where PHP errors were suppressed), we fall back to regex extraction of key-value pairs. Corrupted custom field data is logged and skipped, with the full list of skipped fields delivered in the reconciliation report.

  • Email threading relationships do not survive migration to Zoho Desk

    HelpDeskZ stores Message-ID and In-Reply-To email headers when converting inbound emails to tickets. These references point to the HelpDeskZ mail system and are not valid identifiers in Zoho Desk. We extract the raw email body content and attachment filenames but do not attempt to reconstruct the email threading tree because Zoho Desk assigns its own thread identifiers at insert time. Customers who rely on email threading context in old tickets will find that context absent in migrated tickets.

  • Zoho Desk Knowledge Base attachments are not migratable by any tool

    Zoho's own Zwitch documentation explicitly states that Knowledge Base article attachments do not migrate. This limitation applies to all migration paths into Zoho Desk, including engineer-led services. If the HelpDeskZ ViktorNova fork has been used to publish knowledge base articles with attachments, those files cannot be automatically transferred. We flag KB attachment files separately in the extraction report and recommend manual re-upload or a Zoho-supported upload process post-migration.

  • Zoho Desk uses a credit-based API rate limit that can throttle large migrations

    Zoho Desk's API operates on a credit system tied to the subscription tier. Standard tier grants a limited daily API credit budget that can be exhausted during large attachment upload batches or bulk ticket inserts. We implement exponential backoff on 429 responses, batch requests to minimize credit consumption, and chunk attachment uploads to stay within per-minute and per-day limits. If the Zoho Desk portal is on a trial or Free tier, API access is restricted and migration must be upgraded to Standard or above before insert begins.

Migration approach

Six steps for a successful HelpDeskZ to Zoho Desk data migration

  1. Database access and source audit

    We establish a read-only MySQL/MariaDB connection to the HelpDeskZ database using credentials provided by the customer. We audit the database schema across all tables (tickets, replies, users, departments, attachments reference columns, custom field serialized column), identify the table prefix if non-standard, detect the PHP version running on the source server, and verify the uploads/ directory path via the helpdesk configuration. We also identify any ViktorNova fork extensions that add tables (accounts, knowledge base) and flag them for scope confirmation.

  2. Scope confirmation and mapping specification

    We deliver a written migration scope document covering record counts per object (tickets, replies, agents, departments, attachments), the custom field unserialization plan, the status remapping table, the department-to-team hierarchy mapping, and the email threading flag. The customer reviews and signs off before extraction begins. Any ViktorNova-specific schema extensions are confirmed here. Zoho Desk subscription tier is verified (Standard minimum for custom fields API access; Enterprise or Service Plus for SLA policies).

  3. Extraction from HelpDeskZ MySQL database

    We run a structured extraction script against the HelpDeskZ database in read-only mode. Tickets are extracted in full including status, priority, department_id, created timestamp, and last-modified timestamp. Replies are extracted with ticket_id linkage and type field (customer/agent). Users are extracted with role and email. Custom fields are extracted, unserialized per PHP version, and normalized to key-value pairs. Attachment filenames are extracted with ticket and reply linkage. All extracted data is validated against row counts before transformation begins.

  4. Transformation and Zoho Desk schema pre-creation

    We transform extracted data into Zoho Desk API-compatible JSON payloads. Status integers are remapped to Zoho Desk status vocabulary. Department IDs are resolved to Zoho Department IDs via the department mapping. Custom field key-value pairs are validated against Zoho Desk field types and pre-created via the Custom Fields API before ticket inserts. Agent email addresses are resolved to Zoho Agent IDs via the Agents API. Attachment filenames are validated against the filesystem and queued for upload. The customer provisions any missing Zoho Agents that were identified in the owner reconciliation step.

  5. Sandbox migration and reconciliation

    We run a full migration into the customer's Zoho Desk sandbox (or a trial account provisioned for validation) using production data volume. The customer reconciles record counts (Tickets in, Comments in, Attachments in, Agents in, Custom Fields in), spot-checks 25-50 random tickets against the HelpDeskZ source for content accuracy, custom field fidelity, and comment ordering, and signs off the mapping before production migration. Any corrections to the status remapping, department mapping, or custom field type definitions are applied here.

  6. Production migration in dependency order

    We run production migration in object dependency order: Agents first (Users must exist for ticket assignment), Departments and Teams second, Custom Fields third, Contacts fourth, Tickets fifth (with Comments inserted in thread order), Attachments last (uploaded and linked to Comments). Each phase emits a row-count reconciliation report. We implement delta migration of any tickets modified during the production migration window before final cutover. Zoho Desk API rate limits (credit-based) are managed with exponential backoff and batch chunking throughout.

  7. Cutover, validation, and workflow handoff

    We freeze HelpDeskZ to read-only during final cutover, run the last delta migration, then deliver the completion report including migrated record counts, skipped records with reasons, and a list of any emails that could not be threaded in Zoho Desk. We deliver a written inventory of HelpDeskZ email pipeline settings (POP3/IMAP) and knowledge base articles (where ViktorNova fork exists) for the customer's admin to reconfigure inside Zoho Desk. We do not rebuild HelpDeskZ automations or ViktorNova cron jobs as Zoho Desk Workflow Rules; that is a separate rebuild scope.

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.
Zoho Desk logo

Zoho Desk

Destination

Strengths

  • Generous free tier for teams of up to 3 agents with no time limit, reducing financial risk for small support operations.
  • Per-agent flat pricing across tiers is significantly lower than Zendesk, Freshdesk, or Intercom at equivalent feature levels.
  • Tight integration with Zoho CRM, Zoho Books, and Zoho Creator provides a unified data ecosystem without third-party middleware.
  • Multi-channel ticket aggregation consolidates email, social, chat, and phone into a single queue view.
  • Assisted migration service handles the two-phase transfer process with Zoho's own migration team for inbound moves.

Weaknesses

  • The UI is frequently described as dated, clunky, and inconsistent across modules compared to modern SaaS competitors.
  • Advanced automation features including Blueprints, multi-brand, and live chat are tier-gated, limiting the free and Express plans to basic ticketing.
  • Non-Zoho integrations require custom Deluge scripting or external middleware, reducing flexibility for heterogeneous tech stacks.
  • Steep learning curve and complex customization options mean slower onboarding for new agents and ongoing training investment.
  • Export and migration capabilities are gated by plan tier, with data backup only available on higher plans.

Complexity grading

How hard is this migration?

Moderate Helpdesk migration. 4 of 7 objects need a mapping; the rest are 1:1.

C

Overall complexity

Moderate migration

Derived from compatibility, mapping clarity, API constraints, and data volume across HelpDeskZ and Zoho Desk.

  • Object compatibility

    C

    4 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

    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 Zoho Desk 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 Zoho Desk data migrations

Answers to the questions buyers ask most during HelpDeskZ to Zoho Desk migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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

Book a free 30 minute consultation

Most HelpDeskZ migrations land between three and five weeks for instances under 10,000 tickets and five departments with no more than ten custom fields. Migrations with high-volume attachment sets (over 50,000 files on disk), more than ten custom fields requiring unserialization and type mapping, or multi-department hierarchies requiring Zoho sub-department restructuring move to six to ten weeks because of filesystem traversal time, PHP version detection on source, and Zoho API batch chunking for large attachment uploads.

Adjacent paths

Related migrations to explore

Ready when you are

Move from HelpDeskZ.
Land in Zoho Desk, 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