Helpdesk migration

Migrate from osTicket to Gorgias

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

osTicket logo

osTicket

Source

Gorgias

Destination

Gorgias logo

Compatibility

75%

9 of 12

objects map 1:1 between osTicket and Gorgias.

Complexity

CModerate

Timeline

1-2 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

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

osTicket logo

osTicket

What's pushing teams away

  • No built-in live chat or real-time messaging channel, forcing teams to cobble together third-party chat integrations or manage chat separately from the ticketing workflow.
  • Limited scalability for high-volume environments — teams handling hundreds of tickets per day report performance degradation and lacking advanced routing or queue management.
  • Reporting and analytics are basic at best; there is no native dashboard with trend visualisation, SLA compliance charts, or agent performance metrics without third-party plugins.
  • Community-only support on the free tier means no guaranteed response time, and the commercial support package is priced as a separate annual subscription.
  • Teams outgrow the feature set as they scale — absence of built-in asset management, contract tracking, or advanced automation pushes organisations toward purpose-built ITSM platforms.

Choosing

Gorgias logo

Gorgias

What's pulling them in

  • Shopify-native integrations pull order details, shipment status, and return data directly into the ticket view, eliminating the need for agents to switch between apps.
  • Unlimited user seats mean growing support teams do not trigger billing changes; pricing scales only on billable ticket volume.
  • AI Agent automates responses to high-volume queries like order status and returns, measurably reducing the number of billable tickets each month.
  • Omnichannel inbox consolidates email, live chat, Facebook, Instagram, WhatsApp, SMS, and voice into a single threaded view.
  • SOC 2 Type II certification and GDPR-aligned data handling satisfy enterprise procurement requirements for customer support platforms.

Object mapping

How osTicket objects map to Gorgias

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

maps to

Gorgias

Ticket

1:1
Fully supported

osTicket 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

maps to

Gorgias

Ticket Messages

1:many
Fully supported

osTicket 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)

maps to

Gorgias

Customer

1:1
Fully supported

osTicket 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)

maps to

Gorgias

User

1:1
Fully supported

osTicket 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)

maps to

Gorgias

Customer (company-level)

1:1
Fully supported

osTicket 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

maps to

Gorgias

Attachment

1:1
Fully supported

osTicket 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

maps to

Gorgias

Custom Fields

lossy
Mapping required

osTicket 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

maps to

Gorgias

Team

1:1
Fully supported

osTicket 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

maps to

Gorgias

Tag

1:1
Fully supported

osTicket 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

maps to

Gorgias

Tag

1:1
Fully supported

osTicket 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

maps to

Gorgias

Customer Custom Fields

lossy
Fully supported

osTicket 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

maps to

Gorgias

Ticket Status

1:1
Fully supported

osTicket 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.

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.

osTicket logo

osTicket gotchas

High

API supports ticket creation only

Medium

Ticket threads are a single rich-text blob

Medium

Custom fields require optional setting for API

High

IP-restricted API keys block automated migration tooling

Gorgias logo

Gorgias gotchas

High

AI Agent adds outcome-based fees on top of billable ticket costs

High

Overage billing for tickets scales nonlinearly

Medium

API rate limits restrict bulk export throughput

Medium

Agent data visibility cannot be restricted by role for GDPR use cases

Low

Knowledge Base translations require separate API calls per locale

Pair-specific challenges

  • osTicket API is write-only; we read from MySQL directly

    The osTicket HTTP API supports one operation: ticket creation. There is no endpoint to list, export, update, or bulk-import records. We do not use the osTicket API for data extraction. Instead, we connect to the osTicket MySQL database directly using the documented schema to read Tickets, Users, Agents, Organisations, Custom Fields, Attachments, and SLA Plans. If direct DB access is unavailable, we fall back to CSV export tooling with a note that Attachments and thread history require separate handling. Customers who cannot provide DB credentials should expect a scoped fallback approach with reduced attachment fidelity.

  • Ticket threads are a single merged HTML blob requiring version-sensitive splitting

    osTicket stores the entire ticket conversation — customer messages, agent replies, and internal notes — as one Thread record per ticket in the database. The thread content is rendered HTML with no discrete message boundary fields in storage. We split threads into separate message records by parsing the rendered HTML structure, which is version-sensitive to osTicket release. We validate the splitting logic against a sample of 20-50 tickets from the source system before running the full migration. Tickets with non-standard HTML formatting (from plugins or third-party rendering) may require manual correction post-migration.

  • Gorgias does not have native SLA Plan or Help Topic objects

    osTicket's SLA Plans and Help Topics are first-class objects with routing and assignment logic. Gorgias uses Tags to approximate Help Topics and does not have a native SLA Plan object on lower tiers. We map SLA plan names to Tags and Help Topics to Tags on migrated tickets. The customer's admin must recreate SLA routing in Gorgias Rules or SLA policies (Advanced plan) after migration. We do not configure Gorgias Rules or Automate inside the migration scope.

  • osTicket required custom fields silently block API-based ticket creation

    osTicket custom fields marked as required for end users silently block ticket creation via the API and return an opaque error. This is a known osTicket forum issue. During migration scoping, we identify any required custom fields on user-facing forms and temporarily set them to optional in the destination schema. We restore the required flag post-migration if requested, noting that Gorgias has its own required-field validation logic that may differ in behaviour.

  • IP-restricted osTicket API keys block third-party migration tooling

    osTicket API keys are bound to a specific source IP address. Migration tooling running from a dynamic or shared IP is rejected with a 403. We handle this by scoping our migration tool's egress IP during onboarding and asking customers to add that IP to the allowed list in osTicket's admin panel before migration begins. If the customer cannot whitelist IPs (e.g., due to network policy constraints), we fall back to direct MySQL read access with a read-only database user, which bypasses the API key restriction entirely.

Migration approach

Six steps for a successful osTicket to Gorgias data migration

  1. 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.

  2. 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).

  3. 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.

  4. 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.

  5. 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.

  6. 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

Context on both ends of the pair

osTicket logo

osTicket

Source

Strengths

  • Zero licensing cost for the core open-source edition with optional paid support.
  • Full data residency control on self-hosted infrastructure with no vendor data handling.
  • PHP/MySQL stack runs on commodity hosting with minimal hardware requirements.
  • Configurable ticket forms, SLA plans, and department routing without plugin dependencies.
  • Active open-source community provides plugins, themes, and third-party integrations.

Weaknesses

  • No live chat, real-time messaging, or unified communications channel built in.
  • API surface is narrow — only ticket creation is writable; there is no bulk export or import endpoint.
  • Reporting is minimal; no native trend analysis, SLA dashboards, or agent performance metrics.
  • Limited scalability for large ticket volumes or high agent counts without performance tuning.
  • Upgrade and migration tooling relies on file-based patching with a manual sequence — not designed for automated CI/CD pipelines.
Gorgias logo

Gorgias

Destination

Strengths

  • Shopify and BigCommerce integrations surface order, return, and shipment data natively inside every ticket.
  • Unlimited agent seats remove per-user licensing friction as support teams grow.
  • AI Agent reduces billable ticket volume through automated resolution of high-frequency queries.
  • SOC 2 Type II certified with GDPR-aligned data handling for enterprise procurement readiness.
  • Omnichannel inbox aggregates email, live chat, Facebook, Instagram, WhatsApp, SMS, and voice into a single threaded view.

Weaknesses

  • Ticket-volume pricing with overage fees creates unpredictable monthly costs during seasonal traffic spikes.
  • Custom reporting is shallow; raw event-level data export for BI tooling is not natively supported.
  • Knowledge Base, Macros, and Rules lack simple export tooling, making competitive migrations complex.
  • GDPR compliance limitations mean customer data cannot be hidden from agents by role, blocking use by teams with freelance staff.
  • Performance and glitch reports emerge in G2 reviews at higher ticket volumes.

Complexity grading

How hard is this migration?

Moderate Helpdesk migration. 3 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 osTicket and Gorgias.

  • Object compatibility

    C

    3 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

    osTicket: Not publicly documented.

  • Data volume sensitivity

    B

    osTicket doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your osTicket to Gorgias 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 osTicket to Gorgias data migrations

Answers to the questions buyers ask most during osTicket to Gorgias migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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

Book a free 30 minute consultation

Most migrations land between one and two weeks for accounts under 5,000 tickets with no complex custom field sets. Migrations with high message density per ticket (over 50 messages per ticket average), large attachment volumes (over 50,000 files), or multiple SLA plan configurations move to three to five weeks because of thread-splitting validation, attachment re-upload scoping, and custom field type mapping. Thread-splitting validation alone requires five to ten business days before any production data moves.

Adjacent paths

Related migrations to explore

Ready when you are

Move from osTicket.
Land in Gorgias, 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