Helpdesk migration
Field-level mapping, validation, and rollback between OTRS and Gorgias. We move data and schema; workflows are rebuilt natively in Gorgias.
OTRS
Source
Gorgias
Destination
Compatibility
9 of 12
objects map 1:1 between OTRS and Gorgias.
Complexity
CModerate
Timeline
3-5 weeks
Overview
Moving from OTRS to Gorgias is a shift from an ITSM-focused, self-hosted platform to an e-commerce-native SaaS helpdesk. OTRS stores its entire data model in a normalized MySQL or PostgreSQL schema with tickets, articles, and dynamic fields spread across separate tables; we read directly from the database to avoid OTRS SOAP API pagination constraints. Dynamic Fields (entity-attribute-value rows in OTRS) map to Gorgias custom fields, which we enumerate and type-match during scoping. OTRS Queues become Gorgias Teams; OTRS SLA definitions become Gorgias Rules with time-based triggers. Process Management workflows (XML-based multi-step ITSM processes) and CMDB Configuration Items are documented as a separate inventory for the customer's admin to rebuild, because Gorgias has no native ITSM process or asset management module. The Gorgias API enforces rate limits of 40-80 requests per 20 seconds using a leaky bucket algorithm; we manage chunking and backoff throughout the import pass.
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 OTRS 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.
OTRS
Ticket
Gorgias
Ticket
1:1OTRS Tickets map to Gorgias Tickets as the primary object. We extract Title, State, Priority, Queue (mapped to Team), Owner (mapped to Agent), CustomerID (mapped to Customer), and created/updated timestamps. OTRS ticket number becomes the Gorgias external_id for reference. Article history (email, notes, external replies) migrates as message threads attached to the ticket conversation.
OTRS
Article
Gorgias
Message
1:1OTRS Articles (email, internal notes, external replies) map to Gorgias Messages inside each Ticket conversation. We preserve the article body content, content-type (text/plain or text/html), sender type (agent or customer), and timestamp. HTML articles are converted to plain text with link preservation where possible. Attachments associated with each article are extracted as binary blobs and reattached to the corresponding Gorgias message.
OTRS
Customer
Gorgias
Customer
1:1OTRS Customer records (stored separately from tickets in the customer_user table) map to Gorgias Customers. We extract name, email, phone, language, and customer type. OTRS customers without tickets are included in the export pass. Email address serves as the dedupe key during Gorgias import. Timezone and language preference migrate to the corresponding Gorgias customer fields.
OTRS
Dynamic Fields
Gorgias
Custom Fields
lossyOTRS Dynamic Fields are stored as entity-attribute-value rows across separate tables (dynamic_field and dynamic_field_value). We enumerate all defined field names, data types (Text, Date, Dropdown, Checkbox, Multiselect, Integer, Decimal), and current values during scoping. Each Dynamic Field becomes a typed Gorgias Custom Field on the Ticket or Customer object. Dropdown fields in OTRS require pre-creating the corresponding option list in Gorgias before import. Multiselect fields migrate to Gorgias as multi-value custom fields where supported.
OTRS
Queue
Gorgias
Team
1:1OTRS Queues (defining ticket routing and access boundaries) map to Gorgias Teams. We export queue names, assignment rules, and linked SLA configurations. Multi-queue hierarchies in OTRS (queues inside queues) are flattened into a single team list in Gorgias. Queue-based access controls (which agents can see which queues) map to Team membership in Gorgias, where agents belong to one or more teams and ticket assignment follows team routing rules.
OTRS
SLA
Gorgias
Rule (time-based trigger)
lossyOTRS SLA definitions (response time and solution time linked to queues and ticket types) become Gorgias Rules with time-based triggers. We export SLA names, first response thresholds, update thresholds, and solution time thresholds as metadata. Each SLA becomes a Gorgias Rule that applies a priority level or assigns the ticket to a specific team based on the SLA condition. Complex multi-step escalation paths in OTRS SLA are documented as a multi-rule chain in Gorgias for admin rebuild.
OTRS
Configuration Items
Gorgias
Customer (with external reference)
1:1OTRS CMDB Configuration Items (class-based assets with attributes, linked to tickets via the link_item table) do not have a native equivalent in Gorgias. We export CI data (name, class, serial number, attributes) and the CI-to-Ticket linking table. CIs migrate as Customer records with custom fields capturing CI attributes (serial number, asset tag, product category). The CI-to-Ticket relationship is preserved as a custom field on the Gorgias Ticket referencing the external CI identifier. If the customer requires a full CMDB in the destination, we document the CI schema for rebuild in a dedicated IT asset management tool.
OTRS
Process Management (Workflows)
Gorgias
Rule and Macro inventory
1:1OTRS Process Management stores multi-step ITSM workflows as XML definitions with activity nodes, transition rules, and conditional branching. These are not migratable to Gorgias Macros and Rules because Gorgias automation operates on single-ticket triggers rather than multi-step state-machine processes. We export the full workflow XML, replay the state transitions as they occurred on each historical ticket, and deliver a written inventory of every Process Management definition with its activity nodes, transition conditions, and recommended Gorgias Rule equivalent. The customer's admin rebuilds these post-migration.
OTRS
Users and Agents
Gorgias
Agent
1:1OTRS Agents (tied to roles, groups, and queues via separate permission tables) map to Gorgias Agents. We export the agent user record and reconstruct ownership and assignment relationships. Agents are matched to Gorgias users by email address. Any OTRS agent without a corresponding Gorgias user goes to a reconciliation queue for the admin to provision. Role-based access controls (which roles grant which permissions) are documented separately because Gorgias uses a simpler team-based permission model without OTRS-style granular role and group scoping.
OTRS
Attachment
Gorgias
Attachment
1:1OTRS Attachments are stored as binary blobs linked to ticket articles in the database. We extract each blob with its filename, MIME type, and article association. Attachments are re-uploaded to the corresponding Gorgias message record during import. Large attachments (exceeding Gorgias API upload limits) are flagged during scoping for manual re-upload or alternative storage (S3 presigned URL) with the link preserved in the message body.
OTRS
Service Catalog
Gorgias
Rule-based categorization
lossyOTRS Services define available offerings linked to SLAs and queues. We export service definitions and their SLA associations. Gorgias does not have a native service catalog; service offerings are handled through Rules that categorize tickets by type and apply the corresponding SLA or routing. We map each OTRS Service to a Gorgias Rule condition set (ticket tag, subject keyword, or custom field value) for admin rebuild.
OTRS
Stats and Reports
Gorgias
None
1:1OTRS reporting stores report definitions and rendered output in the database. These are proprietary to OTRS and cannot be directly imported into Gorgias. We export report names, column definitions, and filter configurations as a written inventory for the customer's admin to recreate in Gorgias Reports or a third-party BI tool (Gorgias connects to native reporting and can export to Google Sheets, Amplitude, or a data warehouse for advanced analytics).
| OTRS | Gorgias | Compatibility | |
|---|---|---|---|
| Ticket | Ticket1:1 | Fully supported | |
| Article | Message1:1 | Fully supported | |
| Customer | Customer1:1 | Fully supported | |
| Dynamic Fields | Custom Fieldslossy | Mapping required | |
| Queue | Team1:1 | Fully supported | |
| SLA | Rule (time-based trigger)lossy | Fully supported | |
| Configuration Items | Customer (with external reference)1:1 | Mapping required | |
| Process Management (Workflows) | Rule and Macro inventory1:1 | Mapping required | |
| Users and Agents | Agent1:1 | Mapping required | |
| Attachment | Attachment1:1 | Fully supported | |
| Service Catalog | Rule-based categorizationlossy | Mapping required | |
| Stats and Reports | 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.
OTRS gotchas
Community Edition security freeze forces migration
Direct database export preferred over SOAP API
Major version upgrades can leave login broken
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
Discovery and scoping
We audit the OTRS installation across version (Community Edition vs paid tier), database type (MySQL or PostgreSQL), and schema inventory. We enumerate all Dynamic Fields (name, type, current values), Queues, SLA definitions, Process Management definitions, CMDB Configuration Item classes, and attachment volume. We extract a sample of 50-100 tickets from the live database to validate field coverage and identify any non-standard data patterns. We also identify the Gorgias plan tier required based on expected monthly ticket volume and confirm the customer's API rate limit tier.
Schema design and field mapping specification
We design the Gorgias destination schema based on the OTRS scoping output. This includes creating custom fields in Gorgias that mirror OTRS Dynamic Fields (with type-matched data types), pre-creating Team structures that reflect OTRS Queues, and designing Rule-based SLA escalation chains from OTRS SLA definitions. We document the CMDB CI schema as a separate write-up (external reference custom fields and a recommended IT asset management tool) and the Process Management workflow inventory as a separate write-up (Gorgias Rule equivalents for admin rebuild). All schema changes are validated in a Gorgias test environment before production.
Database extraction and transformation
We connect to the OTRS MySQL or PostgreSQL database in read-only mode during a scheduled maintenance window. We extract tickets with all linked articles, attachments, customer records, Dynamic Field values, and SLA associations in dependency order. We transform the data into the Gorgias API payload format (UTF-8 encoded, MIME-type validated for attachments, EAV rows pivoted to flat custom field maps). We flag any tickets with corrupted attachment blobs or malformed article bodies for manual review. The extracted dataset is validated against OTRS record counts before the import pass begins.
Gorgias API import with rate-limit management
We import data into Gorgias in dependency order: Customers first (deduped by email), then Agents (matched by email to existing Gorgias users or placed in a reconciliation queue for admin provisioning), then Tickets (with external_id referencing the original OTRS ticket number for audit). Articles attach to tickets as messages. Attachments upload via the Gorgias attachment API with MIME type and filename preserved. We chunk batches at 20-40 records per request (tuned to the customer's Gorgias API tier), space requests within the leaky bucket window, and retry with exponential backoff on 429 responses. Each import phase emits a row-count reconciliation report.
Delta migration and cutover
We freeze OTRS writes during cutover, run a final delta migration of any tickets, articles, or customer records created or modified during the migration window, then enable Gorgias as the system of record. We deliver the CMDB inventory document (CI schema and CI-to-Ticket reference mapping), the Process Management workflow inventory document (Gorgias Rule equivalents for admin rebuild), and the SLA escalation rule specification. We do not rebuild OTRS workflows as Gorgias Rules inside the migration scope.
Validation and handoff
We validate record counts across all object types, spot-check 25-50 migrated tickets against the OTRS source (customer fields, article body content, attachment presence, SLA metadata), and resolve any reconciliation discrepancies. We deliver the final migration report including record counts, skipped records (with reasons), and a list of any orphaned references requiring manual resolution. We support a five-business-day hypercare window for reconciliation issues raised by the customer's support team. We do not provide post-migration admin training or workflow rebuild as standard scope; these are separate engagements.
Platform deep dives
OTRS
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 OTRS 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
OTRS: Not publicly documented; no published rate limit values.
Data volume sensitivity
OTRS 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 OTRS to Gorgias migration scoping. Not seeing yours? Book a call.
Walk through your OTRS 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 OTRS
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.