Helpdesk migration
Field-level mapping, validation, and rollback between osTicket and Zendesk. We move data and schema; workflows are rebuilt natively in Zendesk.
osTicket
Source
Zendesk
Destination
Compatibility
6 of 10
objects map 1:1 between osTicket and Zendesk.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from osTicket to Zendesk is a structural migration for teams that have outgrown open-source limitations. osTicket stores ticket conversations as a single rich-text blob per ticket and exposes a write-only API, so we connect directly to the MySQL database to read all records at scale. We split each merged thread into separate Zendesk Comment entries, preserving author identity, timestamp, and the internal versus public flag. Organizations, Departments, SLA Plans, Help Topics, and Custom Fields all require pre-creation in the Zendesk admin panel before migration begins. We deliver a written automation inventory for Zendesk to rebuild as Triggers and Automations; we do not migrate workflows as code. The migration completes in two to six weeks depending on ticket volume and the number of Custom Fields requiring type mapping.
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 osTicket object lands in Zendesk, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
osTicket
Ticket
Zendesk
Ticket
1:1osTicket Tickets map directly to Zendesk Tickets with subject, status, priority, and created/updated timestamps preserved. We pull tickets via direct MySQL read using the documented osTicket ERD to avoid the write-only API constraint. Each ticket's thread is split into discrete Zendesk Comments at migration time (see Gotchas). SLA Plan assignment from osTicket becomes a Zendesk SLA Policy linked to the ticket at import.
osTicket
User (End User / Customer)
Zendesk
End User
1:1osTicket Users map to Zendesk End Users. Name, email, phone, and organisation linkage transfer. osTicket allows Users with no Organisation, which Zendesk also supports; we preserve that optional linkage as Zendesk's organisation_id field. Users are imported before Tickets so that the requester_id reference resolves at insert time.
osTicket
Agent (Staff / Operator)
Zendesk
Agent
1:1osTicket Agents map to Zendesk Agents. We resolve agents by email against the Zendesk user provisioning list. osTicket's per-department permissions map to Zendesk's Agent Roles and Group assignments. The customer's Zendesk admin provisions agents in advance or during the scoping phase; we flag any osTicket Agent without a matching Zendesk User for manual provisioning before the production migration begins.
osTicket
Organisation (Company)
Zendesk
Organisation
1:1osTicket Organisations map directly to Zendesk Organisations. The organisation name becomes the Organisation name field, and any stored website or address fields transfer. osTicket allows Users to exist without an Organisation linkage; we preserve that state. Organisations are imported before Users so that the organisation_id lookup resolves at User insert time.
osTicket
Custom Field
Zendesk
Custom Field
lossyosTicket Custom Fields require pre-creation in the Zendesk admin panel before migration. We map osTicket field types to Zendesk equivalents: text to text, boolean to checkbox, date to date, list to dropdown or tag. Dropdown fields in osTicket map to Zendesk dropdown options, and the selected value transfers as the option label. We note any osTicket required-flagged Custom Fields and advise setting them to optional in Zendesk during migration to prevent silent import failures (see Gotchas). After migration completes, the customer restores the required flag if desired.
osTicket
Attachment
Zendesk
Attachment
1:1osTicket stores attachments separately from the ticket thread and links them by attachment ID. We extract attachment records alongside the ticket, re-link them to the corresponding Zendesk Ticket at import time using the Zendesk Attachments API, and preserve filename and MIME type metadata. Inline images embedded in ticket threads migrate as separate attachment records.
osTicket
Department
Zendesk
Group
1:1osTicket Departments control ticket routing and agent permissions. They map to Zendesk Groups, which serve the same routing and access-control function. Each Department name becomes a Group name. We configure Group membership during the agent import phase so that agents are assigned to the correct Groups at creation time.
osTicket
SLA Plan
Zendesk
SLA Policy
lossyosTicket SLA Plans define first-response and resolution deadlines tied to ticket priority. We create Zendesk SLA Policies matching the osTicket SLA plan names and time windows (in minutes). Each SLA Policy is linked to the corresponding Zendesk Group derived from the osTicket Department. Priority values (Low, Normal, High, Emergency) map to Zendesk Priority with the same labels.
osTicket
Help Topic
Zendesk
Tag
lossyosTicket Help Topics are ticket categories that drive routing and SLA assignment. They are a first-class object in osTicket but are modelled as Tags in Zendesk for standard ticket categorisation. We map each osTicket Help Topic name to a Zendesk Tag and apply it to the corresponding Tickets. If the customer uses Help Topics for SLA routing, we document the mapping so that Zendesk Triggers can recreate the routing logic post-migration.
osTicket
Ticket Thread (Conversation)
Zendesk
Comment
1:manyosTicket stores the entire ticket conversation history — user replies, agent responses, and internal notes — as one merged Thread record per ticket. We split this into separate Zendesk Comment entries at migration time. The splitting logic parses the rendered-thread HTML structure and is version-sensitive to osTicket release. We preserve author identity (Agent vs End User), timestamp, and the internal versus public visibility flag for each segment so that internal notes remain internal in Zendesk. This is the highest-risk aspect of the migration (see Gotchas).
| osTicket | Zendesk | Compatibility | |
|---|---|---|---|
| Ticket | Ticket1:1 | Fully supported | |
| User (End User / Customer) | End User1:1 | Fully supported | |
| Agent (Staff / Operator) | Agent1:1 | Fully supported | |
| Organisation (Company) | Organisation1:1 | Fully supported | |
| Custom Field | Custom Fieldlossy | Fully supported | |
| Attachment | Attachment1:1 | Fully supported | |
| Department | Group1:1 | Fully supported | |
| SLA Plan | SLA Policylossy | Fully supported | |
| Help Topic | Taglossy | Fully supported | |
| Ticket Thread (Conversation) | Comment1:many | 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.
osTicket gotchas
API supports ticket creation only
Ticket threads are a single rich-text blob
Custom fields require optional setting for API
IP-restricted API keys block automated migration tooling
Zendesk gotchas
Data export requires API scripting on non-Enterprise plans
Automations cap at 500 active rules and 1,000 tickets per hour
Help Center has no native export feature
Custom Objects and full data export are Enterprise-only
Pair-specific challenges
Migration approach
Discovery and scoping
We audit the source osTicket instance across MySQL schema version, osTicket release version (required for thread-split logic), ticket count by year, Custom Field inventory (name, type, required flag, form assignment), User and Agent counts, Organisation count, SLA Plan names and time windows, and Department count. We check whether direct MySQL access is available or whether IP whitelisting is required for API fallback. The output is a written scoping document with record counts per object, a thread-split test plan, and a Custom Field pre-creation checklist for Zendesk admin.
Zendesk schema pre-creation
Before any data moves, the customer's Zendesk admin creates the target objects: Custom Fields matching the osTicket field types and options, Groups matching the osTicket Departments, and SLA Policies matching the osTicket SLA Plan time windows. We provide a detailed checklist with exact field names, types, and option values so that pre-creation is unambiguous. We also identify any osTicket required-flagged Custom Fields that should be set to optional during migration. This phase is customer-executed; we review the configuration before data migration begins.
MySQL read and thread-split validation
We connect to the osTicket MySQL database using a read-only database user scoped to the migration environment. We extract all Tickets, Users, Agents, Organisations, Custom Field values, Attachments, and SLA/Department assignments. We run the thread-splitting logic against a sample of 50 tickets spanning each year of history and present the split results to the customer's admin for visual reconciliation. Any parsing edge cases (HTML entities, merged author names, missing timestamps) are corrected before production migration begins.
Sandbox migration and reconciliation
We run a full migration into the customer's Zendesk Sandbox (or a trial account) using production-like data volume. The customer's admin reconciles record counts, spot-checks thread-split accuracy on 25-50 random tickets, and verifies that Custom Field values landed in the correct Zendesk fields. Any mapping corrections — field type mismatches, Help Topic gaps, SLA plan name typos — happen at this stage. Sign-off on the Sandbox reconciliation is required before production migration begins.
Production migration in dependency order
We run production migration in record-dependency order: Agents (validated against pre-provisioned Zendesk Users), Organisations, Users (with Organisation linkage resolved), SLA Policies and Groups, Tickets (with thread split applied and Comments created per message), Attachments (linked to Tickets), and Custom Field values (applied per Ticket and User). Each phase emits a row-count reconciliation report. We freeze osTicket writes during the cutover window and run a final delta migration of any records created or modified during the window.
Cutover, validation, and automation handoff
We confirm that all Tickets, Users, Agents, Organisations, Comments, and Attachments are present in Zendesk and match the osTicket source counts. We deliver the Help Topic-to-Tag mapping and Trigger design document for the customer's Zendesk admin to rebuild routing logic. We deliver the Automation Inventory noting which osTicket behaviours have no Zendesk equivalent (for example, osTicket email piping routing based on Help Topic requires a Zendesk Trigger with matching conditions). We do not rebuild Triggers or Automations as part of the migration scope; that is a separate engagement or internal admin task.
Platform deep dives
osTicket
Source
Strengths
Weaknesses
Zendesk
Destination
Strengths
Weaknesses
Complexity grading
Standard Helpdesk migration. 2 of 7 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across osTicket and Zendesk.
Object compatibility
2 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
osTicket: Not publicly documented.
Data volume sensitivity
osTicket 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 osTicket to Zendesk migration scoping. Not seeing yours? Book a call.
Walk through your osTicket to Zendesk migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave osTicket
Other ways to arrive at Zendesk
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.