Helpdesk migration
Field-level mapping, validation, and rollback between HelpDeskZ and Intercom. We move data and schema; workflows are rebuilt natively in Intercom.
HelpDeskZ
Source
Intercom
Destination
Compatibility
6 of 10
objects map 1:1 between HelpDeskZ and Intercom.
Complexity
CModerate
Timeline
2-3 weeks
Overview
Moving from HelpDeskZ to Intercom is a structural migration that starts with direct database reads rather than an API. HelpDeskZ stores all data in MySQL/MariaDB with no REST endpoint, so we connect to the source server, run schema-discovery queries against the table prefix, and extract tickets, users, departments, and custom fields before any insert happens in Intercom. Intercom uses a messenger-first conversation model where each ticket becomes a Conversation with message parts ordered by timestamp; we reconstruct that ordering from HelpDeskZ's flat ticket-to-reply rows. Custom fields in HelpDeskZ are PHP serialized arrays in a single column — we detect the PHP version, unserialize each field, and map the resulting key-value pairs to Intercom conversation attributes. File attachments are stored on the HelpDeskZ filesystem, not the database, so we resolve the uploads directory path, validate each file exists, and upload to Intercom's attachment endpoint. We do not migrate HelpDeskZ automations, email pipelines, or workflows as code; we deliver a written inventory for the customer's admin to rebuild in Intercom's Workflow builder.
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 Intercom, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
HelpDeskZ
Ticket
Intercom
Conversation
1:1HelpDeskZ tickets become Intercom Conversations via the Conversations API. The ticket subject maps to Conversation title, and all reply rows in the ticket_replies table are inserted as Message Parts ordered by timestamp. We batch messages per ticket and use the Intercom bulk insert endpoint where supported. Any ticket created_by reference to a HelpDeskZ user resolves to the corresponding Intercom Contact or Admin before the conversation insert.
HelpDeskZ
User
Intercom
Contact or Admin
1:1HelpDeskZ users with role client map to Intercom Contacts. Users with role admin or agent map to Intercom Admins. We extract name, email, and created_at from the users table and insert via the Contacts API and Admins API respectively. The hashed password field is not migrated; Intercom uses its own authentication model. Any user referenced as a ticket requester but missing from the users table is created as a Contact with the email found in the ticket table.
HelpDeskZ
Department
Intercom
Team
lossyHelpDeskZ departments are a flat id-name lookup table. We map each department id on HelpDeskZ tickets to an Intercom Team. If the customer has created more than one team in Intercom during provisioning, we use the department name as a tag on the conversation and also create a Team record for each distinct department value. If the destination workspace has no pre-created teams, we create them at migration time and assign the Admin records by role.
HelpDeskZ
Ticket Reply
Intercom
Message Part
1:1HelpDeskZ ticket_replies rows become Intercom Message Parts within the corresponding Conversation. We order by the created timestamp column to preserve chronological sequence. The is_client flag on each reply determines whether the message author is the Contact or the Admin side of the conversation. HTML content in the reply body is stripped to plain text unless the Intercom workspace has rich-text message support enabled.
HelpDeskZ
Custom Fields
Intercom
Conversation Attributes
lossyHelpDeskZ custom fields are stored as a PHP serialized string in a single column. We detect the PHP version on the source server, apply the correct unserialization method, and extract each key-value pair. We create corresponding custom attribute definitions in Intercom (string, number, boolean, or date type) via the Attributes API before migration, then insert the values as conversation custom attributes at insert time. Corrupted serialized values are logged and skipped with a warning.
HelpDeskZ
Ticket Status
Intercom
Conversation State
lossyHelpDeskZ stores status as integer codes (Open=0, Pending=1, Resolved=2, Closed=3). We map these to Intercom conversation states: open (HelpDeskZ Open/Pending), resolved (HelpDeskZ Resolved), and closed (HelpDeskZ Closed). Customers with custom status values added to the database are flagged during scoping and mapped to the nearest Intercom state or a custom conversation attribute.
HelpDeskZ
File Attachment
Intercom
Conversation Attachment
1:1HelpDeskZ attachments live on the filesystem in the uploads/ directory with filenames stored in the tickets and replies tables. We locate the uploads directory via the uploads_path configuration value, validate each file exists, and upload to the Intercom attachments endpoint. The attachment is then associated with the parent message part. If a file is missing from the filesystem, we log a warning and skip it. Intercom restricts certain file types (.exe, .sys, .scr, .shb, .wsf) for security — these are skipped and listed in the migration report.
HelpDeskZ
Email Pipeline (POP3/IMAP)
Intercom
Inbound Address Configuration
1:1HelpDeskZ email-to-ticket settings store the source mailbox hostname, port, and credentials. We extract these fields and flag them as configuration metadata rather than migratable data. The email threading identifiers (Message-ID, In-Reply-To, References) stored in HelpDeskZ point to the HelpDeskZ mail system and are not valid in Intercom — we extract the raw email body and attachment filenames but do not preserve threading relationships. The customer configures an Intercom inbound address separately post-migration.
HelpDeskZ
Ticket Priority
Intercom
Conversation Priority or Tag
lossyHelpDeskZ priority column holds integer values (Low=0, Normal=1, High=2, Urgent=3). We map these to Intercom conversation priority (urgent=true for High/Urgent values) or apply a priority tag. If the customer uses priority as a routing signal, we also create an Intercom Team assignment rule post-migration based on the migrated priority tag.
HelpDeskZ
Knowledge Base Articles
Intercom
None
1:1HelpDeskZ does not include a built-in knowledge base module. No KB articles exist in the source data to migrate. If the customer has published help content elsewhere, it must be migrated as unstructured content. Intercom Articles can be created manually post-migration, and the customer can populate them with content from any external source or documentation they have assembled.
| HelpDeskZ | Intercom | Compatibility | |
|---|---|---|---|
| Ticket | Conversation1:1 | Fully supported | |
| User | Contact or Admin1:1 | Fully supported | |
| Department | Teamlossy | Fully supported | |
| Ticket Reply | Message Part1:1 | Fully supported | |
| Custom Fields | Conversation Attributeslossy | Mapping required | |
| Ticket Status | Conversation Statelossy | Fully supported | |
| File Attachment | Conversation Attachment1:1 | Fully supported | |
| Email Pipeline (POP3/IMAP) | Inbound Address Configuration1:1 | Fully supported | |
| Ticket Priority | Conversation Priority or Taglossy | Fully supported | |
| Knowledge Base Articles | None1:1 | Not 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
Intercom gotchas
S3 JSON export omits conversation transcripts
Workspace isolation prevents workflow migration
Fin AI resolution fees compound with automation success
Two-year conversation history limit on historical export
Private app rate limits share workspace quota
Pair-specific challenges
Migration approach
Discovery and database access setup
We begin with a scoping call to confirm the HelpDeskZ database hostname, port, database name, and table prefix. We run schema-discovery queries against the source database to catalog tables, columns, indexes, and sample data volumes for tickets, users, departments, and the custom_fields column. We verify PHP version on the source server for unserialization compatibility. We also confirm the uploads/ directory path and that the filesystem is accessible from our extraction environment. The discovery output is a written migration scope with record counts, a custom field inventory decoded from sample tickets, and a confirmed list of departments.
Intercom workspace provisioning and schema design
We provision the destination Intercom workspace or confirm the customer's pre-created workspace is ready for import. We create Intercom Teams corresponding to each HelpDeskZ department, configure Admin accounts for each HelpDeskZ agent or admin user, and define custom conversation attributes for each HelpDeskZ custom field discovered in scoping. We map HelpDeskZ status codes to Intercom conversation states and configure any priority tagging logic. This phase requires the customer to have an active Intercom subscription and an admin user with permission to create teams and attributes.
File attachment extraction and validation
We locate the HelpDeskZ uploads/ directory, enumerate all attachment filenames referenced in the tickets and replies tables, and validate that each file exists on the filesystem. We skip files that are missing or inaccessible and log them in the migration report. We then upload the valid files to the Intercom attachment endpoint in parallel batches, recording the Intercom attachment ID and the original filename for linking during conversation insert.
Data extraction, transformation, and reconciliation
We extract all HelpDeskZ records in dependency order: Users and Admins first, then Departments, then Tickets with their reply threads, then custom field data (unserialized), then ticket priority and status. We transform each record to the Intercom data model — tickets to Conversations, replies to Message Parts, users to Contacts and Admins. We run a reconciliation pass comparing extracted record counts against expected counts and spot-check sample records for field-level accuracy before the first insert.
Production migration and post-insert validation
We run the production migration in phases: Admins and Contacts first, then Conversations with message thread reconstruction, then attachment linking. Each phase emits a row-count reconciliation report. We validate that conversation timestamps match the original HelpDeskZ ticket created dates, that message part ordering matches the reply sequence, and that Intercom conversation states match the mapped HelpDeskZ status. We run a final delta pass to capture any tickets modified during the migration window.
Automation inventory handoff and cutover
We freeze HelpDeskZ writes at cutover and disable the email-to-ticket pipeline. We deliver a written inventory of HelpDeskZ automations, if any are configured, with their trigger conditions and actions documented for rebuild in Intercom Workflows. We do not rebuild HelpDeskZ automations as Intercom Workflows within the migration scope. We support a three-day post-migration validation window where the customer's team can spot-check records and report any issues before we close the engagement.
Platform deep dives
HelpDeskZ
Source
Strengths
Weaknesses
Intercom
Destination
Strengths
Weaknesses
Complexity grading
Moderate Helpdesk migration. 4 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 Intercom.
Object compatibility
4 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 Intercom migration scoping. Not seeing yours? Book a call.
Walk through your HelpDeskZ to Intercom 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 Intercom
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.