Helpdesk migration

Migrate from OTRS to Zoho Desk

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

OTRS logo

OTRS

Source

Zoho Desk

Destination

Zoho Desk logo

Compatibility

92%

11 of 12

objects map 1:1 between OTRS and Zoho Desk.

Complexity

CModerate

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from OTRS to Zoho Desk combines two significant transitions: leaving a self-hosted, relational-database-backed service management suite for a cloud-native, department-centric help desk platform. OTRS stores Tickets, Articles, Attachments, Dynamic Fields, and Configuration Items across a normalized MySQL or PostgreSQL schema; we read directly from that schema rather than relying on the OTRS SOAP API, which lacks publicly documented rate limits and is migration-oriented by design. Zoho Desk organizes support around departments and tickets with thread-structured comments; we map OTRS Queues to Zoho Desk departments, OTRS article bodies to Zoho Desk threads, and OTRS SLA escalation metadata to custom fields on each ticket. OTRS Process Management workflows, CMDB workflow definitions, and Stats do not migrate as code; we deliver a written inventory of every active workflow and SLA configuration for the customer's admin to rebuild in Zoho Desk Blueprint and SLA rules.

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

OTRS logo

OTRS

What's pushing teams away

  • Annual licensing and support contract costs scale steeply, prompting teams to evaluate lower-cost SaaS alternatives with similar capabilities.
  • The 300-page admin manual and $2,000+ per-person training requirement means teams cannot self-onboard, creating friction for smaller organizations.
  • Performance degrades noticeably on large ticket volumes without tuning, and slow loading pages frustrate agents handling high-throughput queues.
  • The Community Edition received no security patches after OTRS 6, forcing organizations onto paid tiers or unsupported forks to maintain compliance posture.

Choosing

Zoho Desk logo

Zoho Desk

What's pulling them in

  • Deep Zoho ecosystem integration lets support data tie directly to CRM contacts, invoice records in Zoho Books, and custom apps built in Zoho Creator, providing a unified customer view without third-party middleware.
  • Pricing undercuts comparable platforms significantly: Enterprise at roughly $40 per agent per month versus Zendesk at comparable tiers, making it attractive for cost-sensitive teams scaling past 10 agents.
  • Blueprints and multi-level escalations allow teams to codify support workflows and enforce SLA routing automatically, reducing manual triage for mid-size support operations.
  • Multi-channel ticket ingestion unifies email, social media, live chat, and phone into a single queue view, giving agents one inbox without context-switching across channels.
  • The free tier up to 3 agents lets small teams validate the platform before committing, reducing financial risk for startups and micro-businesses evaluating help desk software.

Object mapping

How OTRS objects map to Zoho Desk

Each row shows how a OTRS object lands in Zoho Desk, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

OTRS

Ticket

maps to

Zoho Desk

Ticket

1:1
Fully supported

OTRS Tickets map directly to Zoho Desk Tickets. We extract Title, State, Priority, Queue, Owner, CustomerID, and created_at from the OTRS ticket table and map to Ticket Subject, Status, Priority, Department, Agent, Contact, and Created Time in Zoho Desk. OTRS ticket lock state maps to Zoho Desk Locked status. All linked article history (email, note, external reply) is extracted in a single pass with the ticket and re-imported as thread entries. Dynamic Fields on each ticket are enumerated during scoping and mapped to Zoho Desk custom fields per ticket.

OTRS

Article

maps to

Zoho Desk

Thread / Comment

1:1
Fully supported

OTRS Articles (email, note, internal/external reply) map to Zoho Desk thread entries. We preserve article direction (Incoming, Outgoing, Internal note) using the Zoho Desk Comment type and author mapping. Article content-type (plain text, HTML, multipart) is handled so HTML articles render correctly in Zoho Desk's thread view. Article sender information maps to the Zoho Desk agent or contact author field. Each ticket's full article chain is sequenced by OTRS article creation time so the conversation reads in chronological order.

OTRS

Customer

maps to

Zoho Desk

Contact

1:1
Fully supported

OTRS Customer user records (customer login accounts with contact details) map to Zoho Desk Contacts. We extract CustomerID, first name, last name, email, phone, and address fields from the customer user table and map them to the corresponding Zoho Desk Contact fields. OTRS customer companies (organizational units linked to customer users) map to Zoho Desk Accounts, and individual customer users are linked to their parent Account via AccountExtId on the Contact record.

OTRS

Dynamic Field

maps to

Zoho Desk

Custom Field

1:1
Fully supported

OTRS Dynamic Fields are stored as EAV rows in separate tables (dynamic_field, dynamic_field_value) with field type metadata in the dynamic_field table. During scoping we enumerate every defined Dynamic Field by name, type (Text, Date, Dropdown, Checkbox, Multiselect, DateTime), and the object it attaches to (Ticket, Article, Customer). We map each to an equivalent Zoho Desk custom field on the appropriate module, applying type conversion where field types differ. Dropdown Dynamic Fields map to Zoho Desk Picklist fields with the source values as picklist options.

OTRS

Configuration Item

maps to

Zoho Desk

Product or Custom Object

1:1
Fully supported

OTRS Configuration Items (CMDB entries with class-based schemas) have no direct Zoho Desk equivalent. We export CI data from the configitem table and the CI-to-Ticket linking table, then map CIs with class type matching standard product data (hardware, software licenses, contracts) to Zoho Desk Products. Complex or custom CI classes that do not map cleanly to Products are exported as a Zoho Desk Custom Object with fields built to match the CI class schema, and the CI-to-Ticket relationship is preserved as a lookup custom field on the ticket.

OTRS

Queue

maps to

Zoho Desk

Department

1:1
Fully supported

OTRS Queues define ticket routing, access boundaries, and SLA assignment. We export queue names and assignment rules and map them to Zoho Desk Departments, which are the primary organizational unit for ticket ownership and visibility in Zoho Desk. Queue-based SLA configurations migrate as metadata tags on each ticket and as a reference document for rebuilding SLA rules in Zoho Desk Blueprint. Queue-to-agent assignments map to Department membership for each agent in Zoho Desk.

OTRS

User / Agent

maps to

Zoho Desk

Agent

1:1
Fully supported

OTRS Agents (support staff with login credentials) map to Zoho Desk Agents. We extract agent records from the users table with their role, group, and queue assignments and map to Zoho Desk Agent records with department membership and role assignment. Agent email addresses are used as the dedupe key. Any OTRS agent without a matching Zoho Desk user account goes to a reconciliation queue for the customer's admin to provision before ticket import runs.

OTRS

SLA

maps to

Zoho Desk

SLA Policy (custom field metadata)

1:1
Fully supported

OTRS SLA definitions link response and solution time targets to queues and ticket types. We export SLA names, response thresholds, and escalation thresholds and store them as custom fields on each migrated ticket (sla_name, first_response_target, resolution_target) so that Zoho Desk SLA rules can be rebuilt against the same data. SLA rules themselves (workflow triggers, escalation actions) are documented as a written handoff for the customer's admin to rebuild in Zoho Desk Blueprint.

OTRS

Attachment

maps to

Zoho Desk

Attachment

1:1
Fully supported

OTRS stores attachments as binary blobs linked to articles in the database. We extract each attachment with its filename, MIME type, and parent article ID and re-attach it to the corresponding thread entry in Zoho Desk. The OTRS article-to-attachment relationship is resolved at migration time so attachments land in the correct thread without duplication. Note that Zoho Desk's native Zwitch tool does not migrate KB attachments; our direct extraction approach does not have this limitation.

OTRS

Process Management (Workflow)

maps to

Zoho Desk

Blueprint (documentation)

lossy
Fully supported

OTRS Process Management stores workflow definitions as XML with activity nodes and conditional transition rules. These are proprietary to OTRS and cannot be imported into Zoho Desk Blueprint as code. We export the workflow structure, each activity, and all transition rules and deliver them as a written inventory document with diagrams showing the workflow state machine. The customer's Zoho Desk admin uses this document to rebuild equivalent Blueprint flows post-migration.

OTRS

Service Catalog

maps to

Zoho Desk

Product (service mapping)

1:1
Mapping required

OTRS Services define available offerings linked to SLAs and queues. We export service names, descriptions, and service-to-SLA associations and map them to Zoho Desk Products (or a custom services module if the customer's service catalog is complex). Service availability rules are documented separately for admin rebuild in Zoho Desk.

OTRS

Stats / Reports

maps to

Zoho Desk

Reports (not migrated)

1:1
Fully supported

OTRS stores report definitions and rendered output in the database. These are proprietary to OTRS and cannot be directly imported into Zoho Desk reporting. We flag the gap and advise the customer to treat report rebuilding as a post-migration task using Zoho Desk's built-in analytics. We export a list of OTRS report names and their filters as a reference for manual rebuild.

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.

OTRS logo

OTRS gotchas

High

Community Edition security freeze forces migration

Medium

Direct database export preferred over SOAP API

Medium

Major version upgrades can leave login broken

Zoho Desk logo

Zoho Desk gotchas

High

Agent email identity determines comment ownership after migration

High

Blueprints and SLA policies do not export via API

Medium

File upload capped at 10GB per migration batch

Medium

Tier-gated export and migration capabilities

Low

Inbound migration is two-phase with a hard Phase 2 cutoff

Pair-specific challenges

  • Zwitch drops created dates, inline images, and KB attachments

    Zoho Desk's native Zwitch migration tool does not preserve the original ticket created_at timestamp; it stamps all migrated tickets with the migration date and time. Inline images embedded in article bodies and Knowledge Base attachments also do not migrate through Zwitch. We do not use Zwitch for full-fidelity migrations. Our approach extracts created_at directly from the OTRS ticket table and sets the Created Time via Zoho Desk API on each ticket import. Inline images are extracted as separate blobs and re-hosted or embedded as attachments on the parent thread entry. Customers who use Zwitch directly will find their historical ticket timelines reset to the migration date, which breaks SLA reporting and audit trails.

  • Zoho Desk API uses credit-based consumption

    Zoho Desk's REST API does not publish per-minute rate limits in the same way that platforms like Zendesk do. Instead, Zoho operates a credit-based system where each API call consumes credits from the customer's daily or monthly allocation depending on their plan tier. We monitor credit consumption during migration and throttle batch size dynamically to avoid exhausting the daily allocation mid-migration. If the customer is on a lower-tier plan with limited credits, we chunk the import into smaller batches and run across multiple days to stay within quota. Skipping this step results in 429 errors and partial imports.

  • OTRS Community Edition has no security patches after v6

    OTRS stopped releasing security patches for the Community Edition after version 6, creating a compliance and risk exposure problem for organizations on older Community Edition instances. We flag this at discovery and treat any migration scoped from an unpatched OTRS Community Edition instance as urgent rather than optional. We export all data before any upgrade attempt to preserve a clean state, and we coordinate with the customer's DBA to schedule a read-only database export during a maintenance window. This gotcha is not a reason to avoid migration; it is a reason to treat the migration timeline as compressed.

  • OTRS queues map to Zoho Desk departments but permissions differ

    OTRS queue-based access control (where queues grant agents visibility to specific ticket sets) does not map directly to Zoho Desk's department membership model. OTRS agents can belong to multiple queues and groups with overlapping permission scopes; Zoho Desk department membership is cleaner but less granular. We map OTRS queues to Zoho Desk departments and document any OTRS permission configuration that cannot be expressed in Zoho Desk's model, so the customer's admin can evaluate whether additional Zoho Desk roles or shared tickets are needed to replicate the original access boundaries.

  • OTRS Process Management workflows do not migrate as code

    OTRS Process Management stores multi-step workflow definitions as XML with activity nodes and conditional transitions that are proprietary to OTRS. Zoho Desk Blueprint uses a different workflow definition model. We export the process structure as a written inventory with state diagrams and transition rules, but the workflows must be rebuilt manually in Zoho Desk Blueprint post-migration. We do not include workflow rebuild in the standard migration scope.

Migration approach

Six steps for a successful OTRS to Zoho Desk data migration

  1. Discovery and database access scoping

    We audit the OTRS instance: version (Community vs paid), MySQL or PostgreSQL backend, ticket volume, article count, dynamic field inventory (names and types), Configuration Item class list, active Process Management workflows, and SLA definitions. We coordinate with the customer's DBA to establish read-only database access during a scheduled maintenance window. We also assess the Zoho Desk destination portal: plan tier, existing departments, existing custom fields, and agent provisioning status. The discovery output is a written scope document, a migration field mapping table, and a Zoho Desk schema readiness checklist.

  2. OTRS database extraction

    We run a direct database read from the OTRS MySQL or PostgreSQL schema. We extract Tickets first (with all standard fields), then Articles (linked to ticket IDs), Attachments (as base64 blobs with parent article references), Customers and CustomerUsers, Dynamic Field values (joined against the EAV tables), Configuration Items, and Queues. We use read-only transactions to avoid locking production data. Each extraction pass emits a row count report that we reconcile against the expected counts from discovery before proceeding to transformation.

  3. Schema mapping and Zoho Desk field creation

    We create the Zoho Desk custom fields required for the OTRS Dynamic Field mapping during a pre-import phase. Each OTRS Dynamic Field is assigned a Zoho Desk equivalent (Text, Picklist, Date, Checkbox) and deployed to the Ticket module. OTRS Queues are mapped to Zoho Desk Departments (created if they do not exist). OTRS SLA names and thresholds are stored as metadata fields on the ticket rather than as Zoho Desk SLA rules (SLA rules are rebuilt post-migration by the admin). If Configuration Items are being mapped to a custom Zoho Desk object, we provision that object and its fields before ticket import begins.

  4. Agent and contact pre-import

    We import OTRS Agents as Zoho Desk Agents before any ticket data. Agent email addresses are used as the dedupe key. We map each agent to their Zoho Desk department and role. OTRS Customers and CustomerUser records are imported as Zoho Desk Contacts, with CustomerUser organizations mapped to Zoho Desk Accounts. Any OTRS CustomerUser without a matching Zoho Desk Contact goes into a reconciliation queue. This phase must complete before ticket import because ticket records reference agent and contact IDs.

  5. Ticket and attachment import

    We import OTRS Tickets in batches using the Zoho Desk REST API. For each ticket we set the subject, status, priority, department (from queue mapping), agent (from agent mapping), contact (from customer mapping), created_at timestamp (preserved from OTRS via API), and all dynamic field values. Article history is imported as thread entries linked to the parent ticket, with article direction preserved as comment type. Attachments are uploaded as binary blobs and linked to the parent thread entry. We chunk by 100 records per batch and monitor Zoho Desk credit consumption, pausing and resuming as needed to avoid quota exhaustion.

  6. Cutover, validation, and handoff

    We freeze OTRS writes during the final cutover window, run a delta migration of any records modified since the initial export, then enable Zoho Desk as the system of record. We deliver the Process Management workflow inventory, SLA rule rebuild guide, and report rebuild reference as written documents for the customer's admin. We support a one-week post-migration validation window where we resolve any record mismatches raised by the support team. We do not rebuild OTRS workflows as Zoho Desk Blueprint or rebuild OTRS reports in Zoho Desk Analytics as part of the standard migration scope; these are separate engagements.

Platform deep dives

Context on both ends of the pair

OTRS logo

OTRS

Source

Strengths

  • Per-ticket Dynamic Fields allow unlimited custom properties without code changes.
  • Multi-channel inbound (email, portal, chat, phone) unified into a single ticket thread.
  • Role-based access control with granular queue, group, and permission scoping.
  • Built-in asset management (CMDB) with ticket-to-CI relationship tracking.
  • Process Management supports multi-step ITSM workflows with conditional branching.

Weaknesses

  • Community Edition receives no security updates, creating compliance risk on unsupported versions.
  • Database is normalized across many tables, making direct exports complex without schema knowledge.
  • No publicly documented API rate limits; direct database access is the reliable bulk export path.
  • Complex permission model (roles, groups, queues, users) is difficult to replicate exactly in simpler SaaS tools.
  • Self-hosted deployment requires dedicated server administration and Perl runtime maintenance.
Zoho Desk logo

Zoho Desk

Destination

Strengths

  • Generous free tier for teams of up to 3 agents with no time limit, reducing financial risk for small support operations.
  • Per-agent flat pricing across tiers is significantly lower than Zendesk, Freshdesk, or Intercom at equivalent feature levels.
  • Tight integration with Zoho CRM, Zoho Books, and Zoho Creator provides a unified data ecosystem without third-party middleware.
  • Multi-channel ticket aggregation consolidates email, social, chat, and phone into a single queue view.
  • Assisted migration service handles the two-phase transfer process with Zoho's own migration team for inbound moves.

Weaknesses

  • The UI is frequently described as dated, clunky, and inconsistent across modules compared to modern SaaS competitors.
  • Advanced automation features including Blueprints, multi-brand, and live chat are tier-gated, limiting the free and Express plans to basic ticketing.
  • Non-Zoho integrations require custom Deluge scripting or external middleware, reducing flexibility for heterogeneous tech stacks.
  • Steep learning curve and complex customization options mean slower onboarding for new agents and ongoing training investment.
  • Export and migration capabilities are gated by plan tier, with data backup only available on higher plans.

Complexity grading

How hard is this migration?

Moderate Helpdesk migration. 4 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 OTRS and Zoho Desk.

  • Object compatibility

    C

    4 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

    OTRS: Not publicly documented; no published rate limit values.

  • Data volume sensitivity

    B

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

Estimator

Estimate your OTRS to Zoho Desk 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 OTRS to Zoho Desk data migrations

Answers to the questions buyers ask most during OTRS to Zoho Desk migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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

Book a free 30 minute consultation

Most OTRS to Zoho Desk migrations land between three and five weeks for accounts under 20,000 tickets with no custom objects and clean queue structure. Migrations with large CI inventories (over 5,000 Configuration Items), attachment-heavy article histories (over 100,000 binary blobs), complex OTRS Process Management workflows, or OTRS Community Edition instances requiring urgent scoping due to security patch gaps move to eight to twelve weeks because of database extraction coordination, workflow inventory documentation, and Zoho Desk custom field provisioning.

Adjacent paths

Related migrations to explore

Ready when you are

Move from OTRS.
Land in Zoho Desk, 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