Helpdesk migration
Field-level mapping, validation, and rollback between osTicket and Gorgias. We move data and schema; workflows are rebuilt natively in Gorgias.
osTicket
Source
Gorgias
Destination
Compatibility
9 of 12
objects map 1:1 between osTicket and Gorgias.
Complexity
CModerate
Timeline
1-2 weeks
Overview
Moving from osTicket to Gorgias is a migration from a self-hosted, email-only, API-limited helpdesk to a cloud-native, omnichannel, AI-augmented support platform built for e-commerce teams. osTicket stores every ticket conversation as a single merged thread record in MySQL — we split that blob into discrete message entries during migration. osTicket's HTTP API supports ticket creation only, so we read directly from the documented osTicket MySQL schema to extract all records including Attachments, Agents, Organisations, Custom Fields, and SLA plan assignments. We do not migrate osTicket's SLA Plans, Help Topics, or Departments as native Gorgias objects because Gorgias uses a different routing model; we map them to Tags and Teams respectively. Automations, Macros, and Help Center articles do not migrate as code — we deliver a written inventory of these for the customer to rebuild in Gorgias after go-live.
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 Gorgias, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
osTicket
Ticket
Gorgias
Ticket
1:1osTicket Tickets map 1:1 to Gorgias Tickets. Each osTicket ticket ID is preserved as an external_id on the Gorgias Ticket for reconciliation. Status (open, resolved, closed, archived) maps to Gorgias Ticket status; priority maps to Gorgias priority. The osTicket number field (ticket display ID) maps to Gorgias Ticket external_id for future delta sync reference.
osTicket
Ticket Thread
Gorgias
Ticket Messages
1:manyosTicket stores the entire conversation — customer replies, agent responses, and internal notes — as one merged Thread record per ticket. We split this into discrete message records at migration time, deriving individual message boundaries from osTicket's rendered-thread HTML structure which is version-sensitive to osTicket release. Each split message gets its own author (agent or end user), timestamp, and an internal vs. public flag preserved. Internal notes map to Gorgias internal ticket notes; customer and agent messages map to the public message thread. This step is the primary migration effort driver for high-message-density tickets.
osTicket
User (End User / Customer)
Gorgias
Customer
1:1osTicket Users map to Gorgias Customers. We match on email as the primary key. Name, email, phone, and language preference migrate directly. Users without an email (rare in osTicket but possible) are held in a reconciliation queue. Users with no Organisation linkage are migrated as standalone Gorgias Customers with no company association.
osTicket
Agent (Staff / Operator)
Gorgias
User
1:1osTicket Agents map to Gorgias Users (agents). We match by email address. osTicket per-department agent permissions do not map directly to Gorgias's role-based access control model; we assign the lowest-privilege role by default and flag role configuration for the customer's admin to set in Gorgias post-migration. Active vs. inactive agent status from osTicket carries over.
osTicket
Organisation (Company)
Gorgias
Customer (company-level)
1:1osTicket Organisations map to Gorgias Customers at the company level. In Gorgias, company-level information is stored on the Customer record's company_name and company_domain fields. We extract the osTicket Organisation name and link it to all associated User records. Organisations with no linked Users are migrated as standalone Customer records and flagged for review.
osTicket
Attachment
Gorgias
Attachment
1:1osTicket Attachment records are stored separately from the Ticket Thread with their own ID and file metadata. We extract each Attachment record alongside the ticket, download the file content, and upload it to Gorgias via the Messages API, re-linking it to the correct ticket and message. Attachment file type and original filename are preserved. Large files (over 20 MB) that exceed Gorgias's attachment size limit are flagged for manual handling or alternative storage.
osTicket
Custom Fields
Gorgias
Custom Fields
lossyosTicket Custom Fields (text, boolean, date, list, and number types) map to Gorgias Custom Fields on the Ticket object. osTicket typed custom fields must be translated to Gorgias managed_type definitions during schema setup. We create the destination custom fields in Gorgias before any ticket import runs, using the same field labels and ordering. Required flag behaviour differs: osTicket custom fields marked required for end users silently block API ticket creation — we temporarily set these to optional during migration scoping and restore them post-migration if requested.
osTicket
Department
Gorgias
Team
1:1osTicket Departments control ticket routing and agent permissions. Gorgias uses Teams for agent grouping and Views for inbox filtering. We map osTicket Departments to Gorgias Teams for agent group preservation. Department-based SLA assignments do not map to native Gorgias SLA objects (Gorgias uses SLA policies at the plan level, not the department level); SLA plan names from osTicket migrate as Tags on each ticket for filtering purposes.
osTicket
SLA Plan
Gorgias
Tag
1:1osTicket SLA Plans define response and resolution deadlines by priority and department. Gorgias does not have a native SLA Plan object at the free and basic tiers; SLA management is a paid feature (Advanced plan and above) and is configured as a policy per channel. We map osTicket SLA Plan names to Tags on each ticket so that the customer's admin can recreate SLA policies in Gorgias or use Tags as a manual routing reference. We do not configure Gorgias SLA policies inside the migration scope.
osTicket
Help Topic
Gorgias
Tag
1:1osTicket Help Topics are ticket categories used for routing and SLA assignment. Gorgias has no direct Help Topic equivalent; Help Topics are typically modelled as Tags in Gorgias. We migrate Help Topic names as Tags on the relevant tickets. The customer's admin recreates the routing logic in Gorgias Rules or Automate post-migration.
osTicket
User Custom Fields
Gorgias
Customer Custom Fields
lossyosTicket User-level Custom Fields (e.g., customer loyalty tier, account type) migrate to Gorgias Customer Custom Fields. These are created in Gorgias as Ticket Customer custom fields before migration. The type mapping follows the same translation logic as Ticket Custom Fields: osTicket field types map to equivalent Gorgias managed_type definitions.
osTicket
Ticket Status
Gorgias
Ticket Status
1:1osTicket ticket statuses (Open, Pending, Resolved, Closed, Archived) map directly to Gorgias Ticket status values. Custom status labels created in osTicket migrate as Tags. We preserve the original osTicket status name in a Tag for audit purposes during migration.
| osTicket | Gorgias | Compatibility | |
|---|---|---|---|
| Ticket | Ticket1:1 | Fully supported | |
| Ticket Thread | Ticket Messages1:many | Fully supported | |
| User (End User / Customer) | Customer1:1 | Fully supported | |
| Agent (Staff / Operator) | User1:1 | Fully supported | |
| Organisation (Company) | Customer (company-level)1:1 | Fully supported | |
| Attachment | Attachment1:1 | Fully supported | |
| Custom Fields | Custom Fieldslossy | Mapping required | |
| Department | Team1:1 | Fully supported | |
| SLA Plan | Tag1:1 | Fully supported | |
| Help Topic | Tag1:1 | Fully supported | |
| User Custom Fields | Customer Custom Fieldslossy | Fully supported | |
| Ticket Status | Ticket Status1: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.
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
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
Connection scoping and data audit
We establish a secure connection to the osTicket MySQL database (read-only user) and run a discovery query against the documented osTicket ERD schema to audit record counts: Tickets, Users, Agents, Organisations, Custom Fields, Attachments, SLA Plans, Help Topics, and Departments. We also identify the osTicket version (for thread HTML structure parsing) and check whether direct DB access is viable or whether IP-whitelisting is required. The output is a written scoping document with exact record counts, a thread-density sample (average messages per ticket), and an attachment size distribution report.
Schema design and field mapping specification
We design the Gorgias destination schema before any data moves. This includes creating Gorgias Custom Fields (Ticket-level and Customer-level) mapped from osTicket custom field types, configuring Gorgias Teams mapped from osTicket Departments, and defining the Tag vocabulary that carries SLA Plan names and Help Topic names into Gorgias. We produce a written field mapping document that the customer's admin reviews and approves before migration begins. Any osTicket custom fields that have no Gorgias equivalent are flagged with a recommended approach (Tag, note, or skip).
Thread-splitting validation on sample tickets
We run the thread-splitting logic against a statistically representative sample of 50-100 tickets from the source system to validate message boundary detection accuracy. We check splitting accuracy against rendered thread HTML for the identified osTicket version, flag any tickets with non-standard formatting or plugin-modified HTML, and adjust the parser rules accordingly. No ticket data is written to Gorgias during this step. The customer reviews a sample of split tickets and approves the logic before full migration proceeds.
Sandbox migration and reconciliation
We run a full migration into a Gorgias sandbox environment (or a clean production account with a test flag) using the complete record set. The customer's admin reconciles record counts against the osTicket source: Tickets in, Customers in, Agents in, Attachments in, and thread-split message count verified. We check 25-50 random tickets manually against the osTicket source to verify subject, status, assignee, and message count accuracy. Any mapping corrections are documented and applied to the production migration script before cutover.
Production migration with delta sync window
We run the production migration in dependency order: Customers and Agents first (no dependencies), then Tickets with resolved Customer and Agent references, then Messages (split thread segments), then Attachments. Each phase emits a row-count reconciliation report. We run a delta migration at the end to capture any new osTicket records created during the migration window. The delta is applied before Gorgias goes live as the system of record. osTicket write access is suspended during the delta window to prevent data divergence.
Cutover, validation, and automation inventory handoff
We validate the production migration against the sandbox reconciliation baseline, fix any critical mapping errors before sign-off, and deliver the Migration Completion Report. This includes record counts by object, a list of tickets with attachment errors (large files, unsupported types), and a written Automation and Macro Inventory documenting every osTicket SLA Plan, Help Topic, and routing rule requiring rebuild in Gorgias Rules or Automate. We support a one-week post-cutover window for reconciliation issues. We do not rebuild Automations, Macros, or Help Center articles inside the migration scope.
Platform deep dives
osTicket
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 osTicket 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
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 Gorgias migration scoping. Not seeing yours? Book a call.
Walk through your osTicket 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 osTicket
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.