Helpdesk migration

Migrate from Request Tracker to Freshdesk

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

Request Tracker logo

Request Tracker

Source

Freshdesk

Destination

Freshdesk logo

Compatibility

60%

6 of 10

objects map 1:1 between Request Tracker and Freshdesk.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Request Tracker to Freshdesk is a platform migration from a Perl-based, self-hosted ticketing system to a managed SaaS helpdesk. RT has no bulk REST API, so data extraction relies on tab-delimited spreadsheet exports and direct database queries for attachments. We sanitize the tab-delimited output into RFC 4180 CSV, decode attachment blobs from the RT Attachments table, map RT Queues to Freshdesk Groups, and thread transaction history into Freshdesk conversations. RT Scrips (Perl automation rules) do not migrate; we deliver a written inventory of every active Scrip and Template for the customer's admin to rebuild as Freshdesk Scenario Automations. RT Articles export as structured JSON and are rebuilt as Freshdesk Knowledge Base articles. Freshdesk's Sprout free tier does not include API access, so any migration requires a paid plan at Blossom ($21/agent/month) or above.

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

Request Tracker logo

Request Tracker

What's pushing teams away

  • RT's web interface is widely described as dated, text-heavy, and visually sparse compared to modern ITSM tools, leading teams with less technical users to migrate toward platforms like Jira Service Management or Freshservice.
  • Self-hosting requires ongoing server maintenance, security patching, and Perl module dependency management that smaller IT teams find operationally burdensome, pushing them toward fully-managed SaaS alternatives.
  • RT lacks native integrations with popular enterprise tools—SolarWinds, Confluence, Slack, and Microsoft Teams require custom scripting or workarounds that teams without dedicated DevOps staff cannot sustain.
  • Teams that need visual Kanban boards, modern mobile apps, and a polished agent experience find RT's feature set insufficient and migrate to platforms purpose-built for those workflows.

Choosing

Freshdesk logo

Freshdesk

What's pulling them in

  • Free tier for 1-2 agents with no credit card makes initial evaluation risk-free and appeals to startups and small support teams.
  • Per-agent pricing is predictable and scales cleanly as teams grow from Growth at $15/agent/month to Enterprise at $89/agent/month.
  • Freddy AI Copilot and Email AI Agent bring AI assistance without forcing a full platform switch, appealing to teams already embedded in Freshdesk.
  • Multilingual help desk and customer portal features serve global SMB teams without requiring enterprise-level investment.
  • Collaborators up to 5,000 included in paid plans allow non-agent stakeholders to view tickets without additional licensing cost.

Object mapping

How Request Tracker objects map to Freshdesk

Each row shows how a Request Tracker object lands in Freshdesk, 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

maps to

Freshdesk

Ticket

1:1
Fully supported

RT Tickets map directly to Freshdesk Tickets. We extract Subject, Status, Priority, Requestor email, Owner (resolved to Freshdesk agent by email), Queue name, Created date, LastUpdated, and all Custom Field values. Transaction history (replies, comments, status changes, field updates) threads into Freshdesk conversation entries ordered by RT Created date. RT's open/resolved/new/stalled/custom statuses map to Freshdesk ticket statuses, which the customer configures before migration.

Request Tracker

Queue

maps to

Freshdesk

Group

1:1
Fully supported

RT Queues define organizational silos and ticket routing. Each RT Queue maps to a Freshdesk Group. We preserve the queue name as the group name and queue description as the group description. RT's per-queue SLA and lifecycle configuration does not have a direct Freshdesk equivalent—SLA policies in Freshdesk are org-level, not queue-level—so we flag queue-specific SLA values for mapping to Freshdesk SLA Policies with a note that the customer reconciles SLA scope post-migration.

Request Tracker

User (Privileged)

maps to

Freshdesk

Agent

1:1
Fully supported

RT Privileged users (staff with login access) map to Freshdesk Agents. We extract Name, Email, Phone, and disabled status from the RT Users table. Active RT Privileged users become Freshdesk Agents; inactive users become inactive Freshdesk agents with their tickets reassigned to an active agent during migration. Role mapping (Super User, Requestor, Commenter) in RT translates to Freshdesk agent permission levels that we set during provisioning.

Request Tracker

User (Unprivileged)

maps to

Freshdesk

Contact

1:1
Fully supported

RT Unprivileged users (requestors without login) map to Freshdesk Contacts. Email, Name, Phone, and Organization fields transfer directly. RT's User-custom fields attached to requestors become Freshdesk Contact custom fields, pre-created in Freshdesk before migration. If an RT requestor also appears as a Privileged user (rare), we deduplicate by email and create one Contact record with agent status.

Request Tracker

Custom Field Definition

maps to

Freshdesk

Custom Field

lossy
Fully supported

RT Custom Fields (Select-Box, Freeform text, Date, IP Address, and others) map to Freshdesk Custom Fields of equivalent type. We pre-create Freshdesk custom fields before migration with matching names and types. RT's global vs queue-specific scoping maps to Freshdesk's ticket-level custom fields; queue-specific RT CFs become ticket-level Freshdesk CFs accessible in the relevant group context. This is configuration, not data migration, and must be completed before ticket import begins.

Request Tracker

Article

maps to

Freshdesk

Knowledge Base Article

1:1
Fully supported

RT Articles in named Classes (e.g., General) export as structured JSON via RT::Extension::Import::CSV using the --article-class flag. We extract Name, Summary, Content (with embedded comma handling), and Custom Field values. Freshdesk Knowledge Base Articles require manual recreation of the folder and category structure (RT Article Classes map to Freshdesk Categories). Article content migrates as article body text; RT Synopsis becomes the Freshdesk article Summary. Large RT Articles with complex HTML content may require manual formatting review post-migration.

Request Tracker

Attachment

maps to

Freshdesk

Attachment

lossy
Fully supported

RT stores attachments as base64-encoded blobs in the Attachments database table linked to Transactions by ID. We run a targeted SQL export per ticket's attachment IDs, decode the base64 blob, reconstruct the original filename and MIME type from RT metadata, then re-attach the decoded file to the destination Freshdesk ticket's conversation thread via the Freshdesk Attachments API. Attachment filename and size are preserved; original RT attachment IDs are logged in a migration audit table for reconciliation.

Request Tracker

Group and Role

maps to

Freshdesk

Team

lossy
Fully supported

RT Groups (AdminCc, Cc, OwnerDelegated) organize users for queue-level or ticket-level permission grants. RT GroupMembers table exports group membership as a separate dataset that we reconstruct post-migration. Freshdesk uses Teams to organize agents, but ticket-level CC and AdminCc roles do not map natively—these migrate as Freshdesk ticket-level collaborator email addresses or as Notes in the conversation thread for audit trail. Group name and membership list are preserved in the migration audit output.

Request Tracker

Transaction

maps to

Freshdesk

Conversation Entry

1:1
Fully supported

Every RT ticket action (reply, comment, status change, field update) creates a Transaction record ordered by Created date. We export the full transaction log per ticket and thread it back into Freshdesk as conversation entries: RT reply-type transactions become Freshdesk reply entries visible to the customer; RT comment-type transactions become Freshdesk internal notes. Status change and field update transactions are captured as note entries with the original RT transaction type labeled. Original RT Created timestamps are preserved on all conversation entries.

Request Tracker

Template

maps to

Freshdesk

Not Migratable

lossy
Fully supported

RT Templates define email and notification text with token placeholders and conditional logic used by Scrips. Templates are text artifacts tied to RT's Perl automation engine and have no direct Freshdesk equivalent. We export Template names and full content as a structured document and deliver it to the customer's admin for recreation as Freshdesk Mailbox Templates or Scenario Automations. This is documentation, not automated 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.

Request Tracker logo

Request Tracker gotchas

Medium

Tab-delimited export instead of CSV

Medium

Attachments stored as database blobs

High

RT-to-RT upgrades require original RT directory

High

No native bulk REST API

Low

Comma-heavy article content breaks CSV imports

Freshdesk logo

Freshdesk gotchas

High

API access is blocked on the free plan

High

Per-minute rate limits are account-wide and endpoint-specific

Medium

Multi-channel source types do not map 1:1 to all destinations

Medium

Custom objects created in-product cannot be accessed by other apps

Low

Contact import requires at least 10 existing tickets in the account

Pair-specific challenges

  • Freshdesk Sprout tier has no API access

    Freshdesk's free Sprout plan does not include API access, which is required for any automated migration of tickets, contacts, or attachments. If the customer is on Sprout, we flag this upfront and advise upgrading to Blossom ($21/agent/month) or higher before migration begins. We have seen customers attempt to migrate to Freshdesk only to discover the Sprout API block at the point of execution, which causes project delays. This is a pre-migration checklist item, not a post-migration discovery.

  • RT attachment blobs require direct database extraction

    RT stores file attachments as base64-encoded binary blobs in the Attachments database table linked to Transactions by ID. There is no file system path, no REST endpoint, and no export option for attachments from the RT UI. For RT cloud-hosted instances where direct database access is unavailable, we use targeted RT REST API calls per attachment ID, which is rate-limited and slow. For self-hosted RT with database access, we run a SQL query per ticket to extract attachment blobs, decode base64, and reconstruct the original file. Attachments are one of the highest-risk data types in this migration pair because no standard RT export includes them.

  • RT tab-delimited export requires pre-processing before mapping

    RT's built-in spreadsheet export produces tab-delimited text rather than RFC 4180 CSV. Fields containing commas, newlines, or tabs are not quoted consistently, which breaks naive CSV parsers. We run the raw RT tab-delimited output through a sanitizer that detects delimiter collisions, adds quoting where needed, converts to proper CSV, and validates field counts per row. This step must complete before any field mapping pipeline runs and adds processing time proportional to the number of exported records.

  • RT Scrips do not migrate and have no Freshdesk equivalent

    RT Scrips are Perl code artifacts triggered by ticket lifecycle events (On Create, On Status Change, On Resolve) that run against a specific RT instance's codebase. There is no way to export a Scrip as portable logic or import it into Freshdesk as code. We export every active Scrip as a named list with its description, template, and condition logic, and we map each to a Freshdesk Scenario Automation configuration step in a handoff document. The customer's admin rebuilds them as Freshdesk automation rules post-migration.

  • RT Queue-to-Freshdesk Group mapping requires pre-migration design

    RT's unlimited queues with per-queue lifecycles, SLAs, and access controls do not map one-to-one to Freshdesk Groups, which are simpler agent containers without per-queue lifecycle configuration. We define the Queue-to-Group mapping during scoping, noting which RT queue-specific SLA values become Freshdesk SLA Policy scope and which queue-specific custom fields require Freshdesk configuration. Teams that skip this design step find that ticket routing logic built around RT Queues does not survive the migration in an equivalent form.

Migration approach

Six steps for a successful Request Tracker to Freshdesk data migration

  1. RT access audit and data extraction planning

    We audit the source RT instance: version (RT 4.2, RT 5.0, or RTx extension), deployment type (self-hosted on customer Linux server or RT cloud-hosted), database engine (MySQL or PostgreSQL), and attachment storage method. We determine whether direct database access is available (preferred for blob extraction) or whether the migration relies on tab-delimited spreadsheet export plus targeted REST API calls. We extract the full list of Queues, Custom Fields (global and per-queue), active Scrips, Templates, and Article Classes. This audit output is the migration scope document that defines extraction method, row counts, and which RT objects can migrate programmatically versus which require manual handoff.

  2. Freshdesk environment setup and API provisioning

    We confirm the customer's Freshdesk plan includes API access (Blossom or higher). We provision the Freshdesk API key and test connectivity. We pre-create Freshdesk custom fields to match RT's Custom Field definitions, configure Group names mapped from RT Queues, set up Freshdesk Ticket Status values that reflect the RT lifecycle states (open, new, resolved, stalled, and any custom RT statuses), and configure SLA Policies mapped from RT queue-level SLA definitions. This step must complete before any ticket data is written to Freshdesk because custom field IDs are referenced during ticket creation.

  3. Tab-delimited export pre-processing and database extraction

    We run the RT tab-delimited spreadsheet export from each relevant search result set and feed it through our sanitizer to produce RFC 4180 CSV. For self-hosted RT, we run targeted SQL queries against the Attachments table to extract blob IDs per ticket, decode base64, and reconstruct filenames and MIME types. We parallelize attachment extraction where database access permits and use RT REST API calls for cloud-hosted RT where it does not. The pre-processing step produces two artifacts: a clean CSV of all ticket and user records, and a file store of decoded attachments with ticket-ID metadata for Freshdesk attachment API upload.

  4. User and agent reconciliation

    We extract RT Privileged users (agents) and Unprivileged users (requestors) from the RT Users table, deduplicate by email, and resolve to Freshdesk Agents by email match. Any RT agent without a matching Freshdesk Agent account goes to a reconciliation queue for the customer's admin to provision before record import resumes. We set Freshdesk agent permission levels (Group membership, Agent type) based on the RT Privileged user role. Contact custom fields are pre-created in Freshdesk before this step so that user-level custom field values from RT can be written during import.

  5. Ticket migration in dependency order

    We run ticket migration in dependency order: Agents first (validated), then Contacts (from RT Unprivileged users), then Groups (from RT Queues), then Tickets (with Queue resolved to Group ID, Owner resolved to Freshdesk Agent ID, and all Custom Field values populated). Transaction history threads into Freshdesk conversation entries after each ticket is created, with RT reply-type transactions as public replies and comment-type transactions as internal notes. Attachment files upload via the Freshdesk Attachments API after the parent ticket and conversation are committed. Each batch emits a row-count reconciliation report before the next batch begins.

  6. Article migration and handoff documentation

    We export RT Articles as structured JSON per Article Class and recreate them as Freshdesk Knowledge Base articles grouped by Freshdesk Categories. We deliver the full Template inventory (names and full content) and Scrip inventory (names, descriptions, conditions, and template references) in a written handoff document that maps each RT automation artifact to a Freshdesk Scenario Automation configuration step. The customer's admin uses this document to rebuild email templates and automation rules post-migration. We do not rebuild RT Scrips as Freshdesk automation code inside the migration scope.

Platform deep dives

Context on both ends of the pair

Request Tracker logo

Request Tracker

Source

Strengths

  • Fully open source (GPL) with no feature-gating across plans—every capability is available on every tier.
  • Unlimited queues and custom lifecycles let a single instance handle multiple business processes simultaneously.
  • Deep Perl-based customization engine allows complete behavioral modification of ticket lifecycle logic.
  • Integrated email-driven workflow creates tickets from incoming emails and sends notifications from outgoing replies.
  • Long track record with an active community forum and 20+ years of documented migration and upgrade patterns.

Weaknesses

  • No native bulk REST API for automated data extraction—all exports require the tab-delimited spreadsheet workaround, direct database access, or community scripts.
  • Web UI is visually dated with a steep learning curve for non-technical staff compared to modern SaaS helpdesk products.
  • Self-hosted deployments require Linux server administration, Perl module management, and MTA configuration knowledge.
  • Limited native integrations with popular enterprise tools like Slack, Teams, and Confluence without custom development work.
  • Upgrade paths between major RT versions (e.g., 4.2 to 5.0) require careful database migration steps that are non-trivial for understaffed teams.
Freshdesk logo

Freshdesk

Destination

Strengths

  • Generous free tier with no credit card required for 1-2 agents for 6 months.
  • Per-agent pricing model is transparent and scales linearly with team growth.
  • Freddy AI Copilot integrates assistance directly into the agent workspace without requiring separate tooling.
  • Multilingual help desk and customer portal serve global teams on Pro and Enterprise plans.
  • Shared inbox, threads, and tasks keep ticket context unified across multi-channel conversations.

Weaknesses

  • Freddy AI is a separate paid add-on charged per session, making AI costs unpredictable and hard to budget.
  • Performance issues including delayed loading and duplicate tickets are recurring user complaints during high-volume periods.
  • Customization is more limited than Zendesk, with fewer workflow options and reporting flexibility.
  • Add-ons for chat, advanced routing, and custom reporting are gated behind higher tiers or separate module purchases.
  • API access is completely disabled on the free plan, blocking any programmatic data export or migration tooling.

Complexity grading

How hard is this migration?

Standard Helpdesk migration. 2 of 7 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Request Tracker and Freshdesk.

  • Object compatibility

    B

    2 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

    Request Tracker: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

Estimate your Request Tracker to Freshdesk 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 Request Tracker to Freshdesk data migrations

Answers to the questions buyers ask most during Request Tracker to Freshdesk migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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

Book a free 30 minute consultation

Straightforward migrations with under 15,000 Tickets, no direct database access requirement, and a clean RT tab-delimited export land between three and five weeks. Migrations requiring direct database blob extraction for attachments, a large RT Article base (over 500 articles), or cloud-hosted RT where database access is unavailable move to seven to twelve weeks because attachment extraction must use the slower targeted REST API call pattern per attachment ID rather than a bulk SQL query.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Request Tracker.
Land in Freshdesk, 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