Helpdesk migration
Field-level mapping, validation, and rollback between Request Tracker and Gorgias. We move data and schema; workflows are rebuilt natively in Gorgias.
Request Tracker
Source
Gorgias
Destination
Compatibility
11 of 13
objects map 1:1 between Request Tracker and Gorgias.
Complexity
CModerate
Timeline
2-4 weeks
Overview
Moving from Request Tracker to Gorgias is a platform-category shift: RT is an open-source Perl ticketing system built for IT operations queues, while Gorgias is a SaaS helpdesk purpose-built for e-commerce brands with deep Shopify integration, AI-driven ticket triage, and a sidebar widget that surfaces order history, shipping status, and returns data inside every ticket. RT has no native bulk REST API, so all data extraction relies on its tab-delimited spreadsheet export or direct database access; we pre-process the tab-delimited output into RFC-compliant CSV before ingesting it into the migration pipeline. Attachments present a specific challenge because RT stores them as base64-encoded blobs in the Attachments table, not as filesystem objects—we run a targeted SQL export per ticket's attachment IDs, decode the blob, reconstruct the filename and MIME type, and re-attach the resulting file to the Gorgias ticket conversation thread. We do not migrate RT Scrips (Perl automation code) or the internal queue-scoped lifecycle logic; we deliver a written inventory of every active Scrip and Template for the customer's admin to rebuild in Gorgias Rules and Macros post-migration. Custom Fields from RT map to Gorgias Custom Fields, but multi-select and date-range custom field types require manual reconfiguration in the Gorgias admin panel after the migration window closes.
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 Request Tracker 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.
Request Tracker
Ticket
Gorgias
Ticket
1:1RT Tickets map directly to Gorgias Tickets. We extract Subject, Status, Priority, Requestor email, Owner email, Queue name, Created date, Resolved date, and the full transaction log (replies, comments, field changes, status transitions) from RT's Transactions table. The RT Status values (new, open, stalled, resolved, rejected, deleted) map to Gorgias Status values (open, pending, solved, spam) using a status-mapping table defined during scoping. RT Priority (0-9) maps to Gorgias Priority (low, medium, high, urgent) with the threshold values configurable per the customer's priority scale. External ID on the Gorgias Ticket is set to the RT ticket ID for cross-system reference.
Request Tracker
User (Privileged + Unprivileged)
Gorgias
Customer
1:1RT's Privileged users (staff with login access) and Unprivileged users (requestors) both map to Gorgias Customers. We extract Name, Email, Phone, Organization, and disabled status from RT's Users table. Inactive or disabled RT users are imported as inactive Gorgias customers. If the customer's RT instance uses a separate requestor table, we reconcile against the Users table to avoid duplicate customer records when a requestor also appears as a Privileged user. External ID is set to the RT user ID for lookup resolution.
Request Tracker
Queue
Gorgias
Team
1:manyRT Queues define organizational silos and ticket routing; each queue has its own name, description, SLA configuration, and access control model. RT queues map to Gorgias Teams. If a single RT queue contains multiple ticket categories that the customer wants siloed in Gorgias (for example, an IT queue that handles both hardware and software requests), we split them into separate Gorgias Teams based on RT Custom Field values, tag patterns, or subject-line keywords defined during scoping. This split requires the customer to confirm the routing logic before migration runs.
Request Tracker
Custom Field Definition
Gorgias
Custom Field Definition
lossyRT Custom Fields of type Select-Box, Freeform text, Date, IP Address, and Number map to Gorgias Custom Fields of equivalent type (string, boolean, date, number, select, multi-select). RT's global vs queue-specific scoping maps to Gorgias's global vs per-ticket-field scoping. Multi-select Custom Fields in RT (values stored as a pipe-delimited string in the RT database) map to Gorgias multi-select custom fields. Date Custom Fields in RT (stored as Unix epoch) convert to ISO 8601 strings in Gorgias. We pre-create all Custom Field definitions in the Gorgias admin panel before ticket import begins, because Gorgias Custom Fields must exist before they can be populated during ticket creation.
Request Tracker
Custom Field Values
Gorgias
Custom Field Values
1:1Custom Field values attached to RT Tickets are resolved via the RT TicketsCustomFieldValues table and inserted into Gorgias Tickets at import time using the Gorgias Tickets API with the custom_field_definitions referenced by their external_id (RT CF ID). Select-box values are mapped by label match; freeform text migrates as-is; date values are epoch-to-ISO converted; IP Address values migrate as string. If a Custom Field option value in RT does not exist in the destination Gorgias Custom Field definition, we create it dynamically during migration to prevent silent data loss.
Request Tracker
Transaction (Reply/Comment)
Gorgias
Comment
1:1Every RT ticket action—reply, comment, status change, field update—creates a Transaction record. Replies (which are visible to the requestor) map to Gorgias public Comments; Comments (internal notes) map to Gorgias private Notes. We export the full transaction log ordered by Created date and thread them back into the destination ticket in chronological order, preserving the agent-requestor conversation flow that Gorgias displays in its conversation timeline. The RT transaction author (Creator) maps to the Gorgias Comment author via the User-to-Customer email lookup.
Request Tracker
Attachment (blob)
Gorgias
Attachment
1:1RT attachments are stored as base64-encoded binary blobs in the Attachments table, linked to Transactions by ID. There is no filesystem path. We run a targeted SQL export per ticket's attachment IDs, decode the base64 blob, reconstruct the original filename and MIME type from RT's ContentType and Filename columns, and attach the resulting file to the corresponding Gorgias ticket conversation thread using the Gorgias REST API multipart upload. Attachments without a filename (RT-generated inline content) are named using the transaction ID for traceability. We flag any blob that exceeds 50 MB as a separate large-file ingestion requiring dedicated handling.
Request Tracker
Article (Knowledge Base)
Gorgias
Article
1:1RT Articles live in classes (e.g., General) with Name, Summary, Content, and Custom Fields. We export Article data as structured JSON using RT::Extension::Import::CSV with the --article-class flag. Articles map to Gorgias Help Center Articles within a Folder. The RT Article Synopsis maps to the Gorgias Article Title; RT Article Content (which may contain embedded commas and HTML) maps to the Gorgias Article body. Custom Fields on Articles map using the same lookup resolution as ticket Custom Fields. RT Article classes map to Gorgias Folders or Top-level Categories depending on the customer's desired knowledge-base structure.
Request Tracker
Template
Gorgias
Macro
1:1RT Templates define email and notification text used by Scrips, with token placeholders and conditional logic. We export Template names and content as text data. Templates that represent canned response patterns (without conditional Scrip logic) migrate to Gorgias Macros. Templates that depend on Scrip conditional branching are documented in the rebuild handoff with a note that the branching logic requires rebuilding as a Gorgias Rule. Template token placeholders (e.g., {$Ticket->Subject}) are preserved as plain text in the Macro body; the customer reviews and replaces tokens with Gorgias's liquid-style variable syntax during the post-migration rebuild pass.
Request Tracker
GroupMembers
Gorgias
Team Membership
1:1RT Group memberships do not export in a single flat file—they are stored in the GroupMembers table with a compound key of GroupId and MemberId. We reconstruct group membership by querying GroupMembers joined to Users, producing a per-user list of group names and roles. RT AdminCc and Cc role assignments on tickets are preserved as Gorgias Ticket Team assignments and CC assignments on the ticket. If a Gorgias Team has no members mapped from an RT Group, we flag it for the customer's admin to populate post-migration.
Request Tracker
Estimated-minutes + Worked-minutes
Gorgias
Time Logs
1:1RT stores Estimated-minutes and Worked-minutes natively on each ticket, and RT-Extension-TimeTracking adds structured time-entry records with User, Ticket, Time Worked, and Note. We export both native RT time fields and TimeTracking extension entries. Native Estimated and Worked minutes migrate to Gorgias Time Logs attached to the relevant ticket, with the original RT timestamp preserved as the log date. RT time-entry notes migrate as the Gorgias Time Log description.
Request Tracker
Asset (RT-Extension-Assets)
Gorgias
Customer Custom Fields or External Reference
1:1RT Assets catalogs configuration items (servers, software licenses, hardware) linked to Contacts. If the destination Gorgias account uses the Integrations module to connect to a CMDB or ERP system, we map RT Asset external IDs into a Gorgias Custom Field on the linked Customer record for cross-referencing. We do not migrate RT Assets as standalone Gorgias records because Gorgias does not have a native CMDB or Asset Inventory object; the asset linkage is preserved as a reference string or external ID stored on the associated Customer record.
Request Tracker
Scrip
Gorgias
Not Migrated
1:1RT Scrips are server-side Perl automation rules triggered by ticket lifecycle events at the queue level. They are code artifacts tied to a specific RT instance's codebase and cannot be meaningfully migrated to Gorgias. We export the full list of Scrips (name, description, stage, condition, action) to a written Scrip Inventory document that the customer's admin uses to rebuild equivalent Rules and Macros in Gorgias. Scrips that use RT::Logger, RT::Extension::SLA, or other community extensions are flagged with the specific extension dependency so the admin knows which Gorgias Rules may require third-party app integrations.
| Request Tracker | Gorgias | Compatibility | |
|---|---|---|---|
| Ticket | Ticket1:1 | Fully supported | |
| User (Privileged + Unprivileged) | Customer1:1 | Fully supported | |
| Queue | Team1:many | Fully supported | |
| Custom Field Definition | Custom Field Definitionlossy | Fully supported | |
| Custom Field Values | Custom Field Values1:1 | Fully supported | |
| Transaction (Reply/Comment) | Comment1:1 | Fully supported | |
| Attachment (blob) | Attachment1:1 | Fully supported | |
| Article (Knowledge Base) | Article1:1 | Fully supported | |
| Template | Macro1:1 | Fully supported | |
| GroupMembers | Team Membership1:1 | Fully supported | |
| Estimated-minutes + Worked-minutes | Time Logs1:1 | Fully supported | |
| Asset (RT-Extension-Assets) | Customer Custom Fields or External Reference1:1 | Fully supported | |
| Scrip | Not Migrated1: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.
Request Tracker gotchas
Tab-delimited export instead of CSV
Attachments stored as database blobs
RT-to-RT upgrades require original RT directory
No native bulk REST API
Comma-heavy article content breaks CSV imports
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 extraction path confirmation
We audit the source RT instance across version (4.2, 4.4, or 5.0), deployment type (self-hosted or cloud-hosted), community extension inventory (TimeTracking, Assets, SLA), queue count, custom field count, and data volume estimates for Tickets, Transactions, Attachments, Articles, and Users. For self-hosted RT, we request read-only database credentials and validate the schema against the RT version's documented tables. For cloud-hosted RT, we confirm access to the tab-delimited export path and validate that attachment blobs are accessible via the REST API or supplemental database export. The discovery output is a written Migration Scope Document covering extraction path, schema mapping, and any extension-specific handling requirements.
Gorgias destination schema provisioning
Before any data migrates, we configure the Gorgias destination account. This includes provisioning Custom Field definitions matching the RT Custom Field set (string, boolean, date, number, select, multi-select), creating Teams mapped from RT Queues (with queue-split rules documented for the customer's confirmation), importing or creating Gorgias Users matched to RT Privileged users by email, and disabling all active Rules and Macros that would fire on imported records. We use the Gorgias REST API for all destination-side provisioning. If the customer uses Gorgias's Help Center module, we create the Folder structure mapped from RT Article classes.
RT data extraction and preprocessing
For self-hosted RT, we run targeted SQL queries against the RT database to extract Tickets, Transactions, Attachments, Users, Custom Field values, GroupMembers, and Articles. We pre-process the tab-delimited export (if used as a fallback) into RFC-compliant CSV with delimiter sanitization. Attachment blobs are decoded from base64, filenames and MIME types reconstructed, and files staged for re-upload. For RT-Extension-TimeTracking data, we run the extension's dedicated export query. We emit a per-table row-count report and share it with the customer for reconciliation against RT's admin interface counts before proceeding.
Sandbox migration and mapping validation
We run a full migration into a Gorgias sandbox or a shadow production account using a representative data sample (typically the 100 most recent tickets and a sample of each queue). The customer's lead admin reviews ticket formatting, Custom Field population, attachment display, and transaction thread ordering in the Gorgias UI. We correct any field-mapping errors, Custom Field type mismatches, and status-label discrepancies identified during the review pass before running the full production migration. Any queue-split logic is validated here with the customer's confirmation.
Full production migration in dependency order
We run production migration in record-dependency order: Users and Customers first (because they are referenced by Tickets), Custom Field definitions (pre-created and validated), Tickets with Custom Field values and transaction threads (in chronological order by Created date), Attachments (uploaded per ticket after the ticket record exists in Gorgias), Articles to Help Center (after ticket migration confirms Custom Field schema stability), Time Logs, and Group/Team membership reconciliation last. Each phase emits a row-count reconciliation report. We apply the RT ticket ID as External ID on every Gorgias record for cross-system auditability.
Cutover, delta sync, and automation rebuild handoff
We freeze RT writes during the cutover window, run a delta migration of any records created or modified since the full migration started, then enable Gorgias as the system of record. We re-enable Gorgias Rules selectively (starting with routing and tagging Rules; SLA and escalation Rules re-enabled after the admin team's sign-off). We deliver the Scrip and Template Inventory document to the customer's admin with a rebuild guide mapping each RT Scrip to a Gorgias Rule or Macro equivalent. We support a one-week hypercare window for reconciliation issues raised by the support team during their first production week.
Platform deep dives
Request Tracker
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 Request Tracker 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
Request Tracker: Not publicly documented.
Data volume sensitivity
Request Tracker 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 Request Tracker to Gorgias migration scoping. Not seeing yours? Book a call.
Walk through your Request Tracker 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 Request Tracker
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.