Helpdesk migration
Field-level mapping, validation, and rollback between HelpDeskZ and Gorgias. We move data and schema; workflows are rebuilt natively in Gorgias.
HelpDeskZ
Source
Gorgias
Destination
Compatibility
9 of 12
objects map 1:1 between HelpDeskZ and Gorgias.
Complexity
CModerate
Timeline
3-5 weeks
Overview
Moving from HelpDeskZ to Gorgias is a self-hosted-to-SaaS migration with no native API bridge, which makes it structurally different from migrations between two API-enabled platforms. HelpDeskZ exposes no public REST API; all data extraction is done via direct MySQL/MariaDB queries against the source database. We connect over a read-only database credential set (or SSH tunnel if the database is on a private network), decode the PHP serialized custom_fields column for every ticket, resolve the flat ticket-to-reply thread model into Gorgias's conversation structure, and upload attachment files from the HelpDeskZ uploads directory. We then write migrated records into Gorgias using the REST API with rate-limit handling and batch chunking. Departments map to Gorgias Teams; HelpDeskZ ticket statuses map to Gorgias ticket states; and users map to Gorgias agents. We do not migrate HelpDeskZ automations, email-to-ticket pipelines, or the POP3/IMAP mailbox configuration because these are infrastructure configurations that do not translate to Gorgias settings. We deliver a written inventory of these for your team to configure post-migration.
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.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a HelpDeskZ object lands in Gorgias, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
HelpDeskZ
Ticket
Gorgias
Ticket
1:1HelpDeskZ tickets map to Gorgias tickets. We extract ticket_id, subject, priority (mapped to Gorgias priority), status (integer code remapped to Gorgias state), created datetime, and updated datetime. Each HelpDeskZ ticket's reply thread (stored as sequential rows in a separate replies table) is reconstructed in chronological order and inserted as individual message records in the Gorgias conversation via the /tickets/{id}/messages endpoint. We preserve the original ticket_created timestamp as a custom property for audit.
HelpDeskZ
User (agent)
Gorgias
Agent
1:1HelpDeskZ users with role=admin or role=agent map to Gorgias agents. We extract user_id, name, email, and role from the users table. We create the corresponding agents in Gorgias using the /agents endpoint with the same email as the identifier. HelpDeskZ admin users get Gorgias admin privileges; agent users get standard agent permissions. We set a temporary password for each migrated agent; the customer resets credentials during onboarding.
HelpDeskZ
User (client)
Gorgias
Customer
1:1HelpDeskZ users with role=client map to Gorgias customers. We extract name, email, and created datetime. Gorgias deduplicates customers by email, so if a customer already exists from a previous import or live ticket, we update rather than duplicate. Phone and language data from HelpDeskZ map to the corresponding Gorgias customer fields if present in the source database.
HelpDeskZ
Department
Gorgias
Team
1:1HelpDeskZ departments (stored as a simple id-name lookup table) map to Gorgias Teams. We extract all distinct department assignments from tickets and create Teams in Gorgias with matching names. Tickets are then tagged with the appropriate Team via the ticket's dst_team_id field during import. Some HelpDeskZ setups use hierarchical departments; we flatten these to single-level Teams since Gorgias does not support nested team hierarchies.
HelpDeskZ
Ticket Status
Gorgias
Ticket State
lossyHelpDeskZ stores ticket status as integer codes (e.g., 1=Open, 2=Pending, 3=Resolved, 4=Closed). We map these integer codes to Gorgias ticket states (open, pending, solved, closed) based on the customer's status configuration. If the customer has added custom status values beyond the defaults, we flag these during scoping and create a custom mapping table. Non-standard integer values are logged as warnings and mapped to the nearest Gorgias state.
HelpDeskZ
Custom Field (serialized PHP)
Gorgias
Custom Property
lossyHelpDeskZ stores custom field values in a PHP serialized string column on the tickets table (custom_fields). We detect the PHP version on the source server (PHP 7 vs PHP 8) and apply the correct unserialize method. For each ticket, we extract key-value pairs, create the corresponding custom property in Gorgias (string, number, date, or boolean type based on the extracted value), and attach it to the ticket at insert time. If a serialized value is corrupted or incompatible, we log it and skip that field.
HelpDeskZ
Attachment (file on disk)
Gorgias
Attachment (Gorgias-hosted)
lossyHelpDeskZ saves uploaded files to the uploads/ directory on the filesystem with only the filename stored in the database. We verify the uploads directory path from the HelpDeskZ configuration, locate each referenced file, and upload it to Gorgias via the POST /upload endpoint before creating the ticket or message. The Gorgias attachment URL is then embedded in the appropriate message. Missing attachment files are logged as warnings and skipped; migration does not block on a single lost file.
HelpDeskZ
Ticket (email-to-ticket source)
Gorgias
Ticket (channel attribution)
1:1When HelpDeskZ converts incoming emails to tickets, it stores Message-ID and In-Reply-To email headers in the database. These references are source-local and not valid in Gorgias. We extract the sender email address, subject, and body content from the raw email data stored in HelpDeskZ, but do not attempt to preserve the email threading relationships. The migrated ticket is attributed to the email channel in Gorgias with a note that the original threading context was not transferred.
HelpDeskZ
Knowledge Base Articles
Gorgias
Help Center Articles
1:1HelpDeskZ does not include a built-in knowledge base module. If the customer has published KB content in a separate system, we can migrate it as unstructured text for manual re-creation in Gorgias Help Center. We do not count HelpDeskZ KB migration as a standard scope item because no KB object exists in the source database. The customer creates Help Center articles in Gorgias post-migration using the migrated ticket content as source material.
HelpDeskZ
Email Pipeline (POP3/IMAP)
Gorgias
Channel Integration (SMTP/connected inbox)
1:1HelpDeskZ email-to-ticket relies on POP3/IMAP polling configured on the self-hosted server. This mailbox configuration is a server-level infrastructure setting that does not migrate to Gorgias. We document the source mailbox addresses and polling settings during scoping, but the customer configures a new connected inbox or SMTP integration in Gorgias Settings post-migration. The email address ownership must be updated in DNS to point to Gorgias instead of the HelpDeskZ server.
HelpDeskZ
Workflow, Automation, Sequence
Gorgias
Rule, Macro, Automate
1:1HelpDeskZ does not support workflows, automations, or sequences as a platform feature, so there are no automation records to migrate. Gorgias automations (Rules, Macros, Gorgias Automate) are created post-migration by the customer's admin using Gorgias's built-in editors. We deliver a written requirements document describing what automations the team should build based on the ticket patterns and team workflow observed in the migrated data.
HelpDeskZ
Reporting and Analytics
Gorgias
Performance Statistics
1:1HelpDeskZ does not include a built-in reporting dashboard. Historical ticket metrics (volume by status, response time, resolution time) are extracted from the tickets table as part of migration scoping. We deliver a data export of these metrics as a CSV for the customer to use as a baseline in Gorgias's built-in reporting. Gorgias's Support Performance Statistics and Live Statistics dashboards are configured post-migration by the customer's admin.
| HelpDeskZ | Gorgias | Compatibility | |
|---|---|---|---|
| Ticket | Ticket1:1 | Fully supported | |
| User (agent) | Agent1:1 | Fully supported | |
| User (client) | Customer1:1 | Fully supported | |
| Department | Team1:1 | Fully supported | |
| Ticket Status | Ticket Statelossy | Fully supported | |
| Custom Field (serialized PHP) | Custom Propertylossy | Fully supported | |
| Attachment (file on disk) | Attachment (Gorgias-hosted)lossy | Fully supported | |
| Ticket (email-to-ticket source) | Ticket (channel attribution)1:1 | Fully supported | |
| Knowledge Base Articles | Help Center Articles1:1 | Not supported | |
| Email Pipeline (POP3/IMAP) | Channel Integration (SMTP/connected inbox)1:1 | Fully supported | |
| Workflow, Automation, Sequence | Rule, Macro, Automate1:1 | Fully supported | |
| Reporting and Analytics | Performance Statistics1:1 | Fully supported |
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.
HelpDeskZ gotchas
No REST API — migration requires direct database reads
Custom fields are stored as serialized PHP arrays
Email-to-ticket threading does not migrate cleanly
Attachment files are stored on disk, not in the database
Gorgias gotchas
AI Agent adds outcome-based fees on top of billable ticket costs
Overage billing for tickets scales nonlinearly
API rate limits restrict bulk export throughput
Agent data visibility cannot be restricted by role for GDPR use cases
Knowledge Base translations require separate API calls per locale
Pair-specific challenges
Migration approach
Database connectivity and scoping
We establish a read-only MySQL/MariaDB connection to the HelpDeskZ database (direct connection, SSH tunnel, or port-forwarded jump host depending on network topology). We inventory the table structure, table prefix, and PHP version of the source server. We extract record counts across tickets, replies, users, departments, and custom fields to build the migration volume estimate. We document the HelpDeskZ status value encoding, any custom database modifications, and the uploads directory path. This step produces a written scoping document with volume figures and a migration plan reviewed by the customer before extraction begins.
Gorgias destination setup and custom property creation
We work with the customer to create a Gorgias workspace (or confirm the existing one) and obtain API credentials (email and API key) for migration writes. We configure the Teams in Gorgias to match HelpDeskZ departments. We create the custom properties in Gorgias for any HelpDeskZ custom fields detected during scoping, assigning the correct field type (string, number, date, boolean) per field. We configure the ticket state mapping table in our migration platform based on HelpDeskZ status integer codes.
Data extraction from HelpDeskZ MySQL
We run direct SQL queries against the HelpDeskZ database in batches of 500-1,000 records to avoid locking the source table. We extract tickets with their status, priority, subject, created datetime, and updated datetime; replies in chronological order per ticket; users (agents and clients) with role, email, and name; and custom field serialized strings for decoding. We resolve the uploads directory path and extract the list of referenced attachment filenames for later upload. Each extraction batch is written to an intermediate JSON file with a SHA-256 hash for integrity verification.
PHP unserialization and data transformation
We process the HelpDeskZ custom_fields serialized strings using the PHP version detected on the source server. Each string is unserialized into a key-value dictionary, and individual custom field values are mapped to the corresponding Gorgias custom property created in Step 2. We reconstruct each ticket's reply thread from the replies table in chronological order, assign the reply author (agent or customer) by matching the user_id, and prepare each message as a Gorgias message payload. Email threading Message-ID references are discarded at this stage and flagged in the transformation log.
Attachment extraction and Gorgias upload
We locate each file referenced in the extracted ticket and reply records within the HelpDeskZ uploads directory. Valid files are uploaded to Gorgias via POST /upload in batches of 10 files per request (Gorgias's recommended attachment batch size). The returned Gorgias attachment URL is stored as a reference in the message payload. Files not found in the uploads directory are logged as skipped with the original filename and ticket reference. We verify upload success by checking the Gorgias API response before proceeding to ticket insert.
Gorgias API write with rate-limit handling
We write migrated records to Gorgias via the REST API using Basic Auth (email and API key). We use exponential backoff on 429 Too Many Requests responses, with batch chunking at 50 tickets per request for create operations and 10 messages per request for conversation history. Agents are created first (to satisfy the assignee_id reference on tickets), then customers, then tickets, then messages. We resolve the HelpDeskZ user_id to the Gorgias agent or customer ID at write time using the lookup table built during extraction.
Cutover, validation, and handoff
We run a final delta migration of any records created or modified in HelpDeskZ during the migration window, then mark HelpDeskZ as read-only (or shut down the mail polling) to begin cutover. We perform a row-count reconciliation between the extracted source records and the inserted Gorgias records, flagging any discrepancies for manual review. We deliver a migration report listing migrated, skipped, and failed records. We deliver the automation rebuild requirements document for Gorgias Rules and Macros. We provide a one-week hypercare window for reconciliation issues raised by the support team.
Platform deep dives
HelpDeskZ
Source
Strengths
Weaknesses
Gorgias
Destination
Strengths
Weaknesses
Complexity grading
Moderate Helpdesk migration. 3 of 7 objects need a mapping; the rest are 1:1.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across HelpDeskZ and Gorgias.
Object compatibility
3 of 7 objects need a mapping; the rest are 1:1.
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
HelpDeskZ: Not publicly documented.
Data volume sensitivity
HelpDeskZ 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 HelpDeskZ to Gorgias migration scoping. Not seeing yours? Book a call.
Walk through your HelpDeskZ to Gorgias migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave HelpDeskZ
Other ways to arrive at Gorgias
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.