Migrate from OTRS to Znuny

A planning guide to moving an OTRS Community Edition 6 or commercial OTRS installation to self-hosted Znuny, covering the stepwise update path, add-ons, custom code and cutover.

On this page

Migrate from OTRS to Znuny: what the move involves and who does it

Znuny is a GPL v3 continuation of OTRS Community Edition 6.0.30, so an existing Community Edition 6 installation can usually move to it in place. The move is an upgrade path plus a data and integration project, not a simple export. Whether the trigger is a renewal, a licensing change or an unpatched Community Edition 6 install, the work starts with an inventory of what the instance actually does. The upgrade path is stepwise: Znuny 6.5 accepts updates only from 6.4, so older installations need intermediate steps first. Confirm your exact version and the required sequence in the Znuny documentation before you plan dates.

Internal platform or IT teams usually own this work, often with an outside implementation partner for the upgrade sequence, custom code review and database decisions. Your team needs Linux and Perl administration skills, Apache and mod_perl2 configuration knowledge and a database administrator for the engine you choose. Znuny supports MySQL 8.0 or later, MariaDB 10.3 or later, PostgreSQL 12.0 or later and Oracle 19c or later, and that choice affects backups, replication and the skills you must keep in house. Add-on packages and custom code are the main unknowns. Each one needs a compatibility check against the target version, and some will need rewriting or removal.

Effort is driven mainly by the number of add-ons, custom templates and scripts, integrations with email, directory services and monitoring, and the volume of ticket history you keep. Run the full upgrade sequence on a copy of production first, using a restored database and attachments, and time each step so you know the real cutover window. Keep a verified backup before every step so you can roll back. Ask any outside partner for a written scope that lists the steps, environments, test cases and the person who signs off on cutover. Then check that plan against your renewal or licensing deadline before you commit to a date.

Which OTRS capabilities move cleanly to Znuny and which need rework

This table maps the main OTRS building blocks to their Znuny counterparts and marks each as clean, needs rework or gap. Use it to scope a migration: rows marked clean still need a test on a copy, and any add-on or custom Perl code should be checked against the Znuny documentation for your release line. Znuny describes itself as a ticketing system for customer service, help desk and IT service management, so most core ticket features carry over.

CapabilityZnuny positionWhat to confirm or rework
Ticket queues, states and prioritiesClean: core ticket model is shared with the OTRS Community Edition 6 lineageConfirm custom states and priority mappings still match agent workflows after the stepwise update
Agent interfaceClean: same agent workflow in the Znuny interfaceReview any customized templates, themes or screen configurations, which may need adjustment
Customer interfaceNeeds rework: customer-facing templates and portal settings may differTest customer login, notifications and portal pages on a copy before cutover
ITSM modules (incident, change, service)Needs rework: confirm module availability and configuration for your release lineCheck change and service configuration, CMDB links and SLA definitions against the Znuny documentation
Add-on packagesNeeds rework: compatibility varies by package and releaseAsk each add-on vendor or maintainer for Znuny support; remove or replace packages that do not install on the target version
Custom Perl codeNeeds rework: modules and API calls may change between versionsRun a code review against the Perl API documentation and fix deprecated calls during the copy test
Reporting and statisticsNeeds rework: stats definitions and exports depend on the schema and installed modulesRe-create key reports on the copy and compare counts against the source system
Database platformClean: MySQL 8.0 or later, MariaDB 10.3 or later, PostgreSQL 12.0 or later and Oracle 19c or later are supportedConfirm the database version and character set settings before importing data

Migration sequence: inventory, stepwise upgrade, pilot, parallel run and cutover

This sequence moves an OTRS installation to Znuny in verifiable stages, so each stage produces evidence that the next one can rely on before any live tickets move.

  1. Inventory versions, add-ons, custom code and database

    Start by recording the exact OTRS version, the database engine and version, the web and Perl stack, every installed add-on package, all custom modules, scheduled jobs, external interfaces and mail connectors. Your OTRS administrators and any integration developers should own this list, and a Znuny-experienced engineer should review it for items that will need replacement or testing. The output is a signed-off inventory document that maps each component to a keep, adapt or retire decision. The step is done when every production dependency appears in the list and someone other than the author has reviewed it.

  2. Plan the stepwise update path to Znuny LTS 6.5

    Znuny 6.5 accepts updates only from 6.4, so an installation on an older OTRS release must first be brought to 6.4 through the intermediate versions required by the upgrade documentation. Confirm each hop against the Znuny documentation and the release notes on the Znuny releases page, and record the database and configuration changes each hop introduces. The output is a written upgrade plan with an ordered list of versions, the backup point before each hop and the rollback method. The step is done when the plan has been checked against the current documentation for your exact starting version.

  3. Rebuild the target server and database

    Provision the Linux server, Perl runtime, Apache with mod_perl2 and a supported database from the Znuny requirements, which include MySQL 8.0 or later, MariaDB 10.3 or later, PostgreSQL 12.0 or later or Oracle 19c or later. Decide the database engine now, because switching later adds a second migration. Ask your DBA to confirm backup tooling, replication and restore procedures on the chosen engine. The output is a clean target environment with a documented build, tested backup and restore, and a checked connection from the application to the database. The step is done when a test restore has been completed on the new database host.

  4. Run the pilot on a copy of production

    Restore a recent copy of the production database and file storage into the test environment, then run the stepwise upgrade on that copy exactly as it will run in production. Re-create or port add-ons and custom code, and log every error, warning and manual fix. Have agents test real workflows such as queues, state changes, SLA escalations, email in and out, and any external interface. The output is a pilot report listing defects, fixes, timings observed in the test and open decisions for the cutover runbook. The step is done when a full pilot run completes without unresolved blockers and the business owner accepts the test results.

  5. Operate a parallel run before cutover

    Keep the upgraded Znuny instance running alongside OTRS for a defined validation period, with a documented process for which system is authoritative. Compare ticket counts, queue assignments, attachments, notifications and integration traffic between the two systems, and resolve differences before they affect customers. Confirm that the process owners agree on the authoritative system at every point in the period. The output is a parallel-run log with reconciled discrepancies and a signed go decision. The step is done when the comparison shows no open differences that matter to operations.

  6. Execute the cutover runbook

    Freeze changes in OTRS, take a final full backup, run the last data sync or migration, repoint mail, DNS and integrations to Znuny, and run the post-cutover checks written in the runbook. Keep the rollback steps ready until the go-live checks pass, and name the person who can authorize a rollback. The output is a completed cutover record with timestamps, check results and the list of any accepted exceptions. The step is done when agents can work in Znuny, inbound mail and integrations are confirmed, and the record is signed off.

  7. Decommission the old OTRS system

    After a stable period that your change board defines, retire the OTRS servers, remove mail routes and integration credentials that point to them, and archive a read-only backup under your records policy. Check with your compliance or legal team how long OTRS data must be retained and where. If you hold a commercial OTRS subscription, follow the vendor's terms to end it. The output is a decommissioning record and a confirmed archive location. The step is done when no service still points to the old system and the retained archive has been verified.

Which data and integrations to move, and which to rebuild

An OTRS to Znuny move carries over more than the ticket table. Each category below needs a decision: migrate as data, re-create by hand, or retire. Inventory them before choosing an update path, because the answers drive the test plan on the copy.

Tickets and articles

Tickets, their articles and attachments are the bulk of the database and the record your auditors will ask about. Because the Znuny update path runs through the existing schema, most of this data stays in place rather than being exported. Check ticket counts, article sizes and attachment storage location (database or filesystem) on your copy, since these set the upgrade duration and backup size. Confirm that attachments and article bodies match after each intermediate step.

Customers, agents and roles

Customer users, customer companies, agents, groups and roles define who can see and act on each queue. Compare these lists on the test copy after the update, not just their count. Agent accounts tied to departed staff should be disabled or removed before cutover. Confirm with Znuny documentation how customer and agent records are handled in your installed version, since authentication source affects what can be changed in the database.

Queues, states and configuration

Queues, priorities, states, types, SLAs, services and dynamic fields carry your process model. Document each one in a table before the move, then compare it on the copy. Custom states or dynamic fields added by administrators often break after an update if the target version expects different names, so review each one. Export your system configuration from the admin interface and keep it under version control where practical.

Email channels and PostMaster filters

Incoming mail usually reaches OTRS through a mailbox, a pipe or a POP3 or IMAP fetch, and then passes through PostMaster filters that set queues and states. Recreate the mailbox connection on the new server and test it with real sample messages, including replies that carry ticket numbers in subjects. Make sure only one system polls a mailbox during the parallel test, or tickets will be duplicated.

LDAP, SSO and authentication

Agent and customer logins may depend on LDAP directories, an SSO proxy or local passwords. Each source must be rebuilt on the Znuny server, with the same attribute mapping and group filters. Confirm that the directory connection works with the Znuny version you deploy, and test a disabled account to confirm it stops accessing tickets. Document the service account used for directory binds.

Callers, integrations and add-ons

Scripts, monitoring checks, web services and other systems that create or update tickets call OTRS through its web service interface or its command line tools. Inventory every caller, identify the web service and operation it uses, and confirm each one against Znuny's documentation before cutover. Add-on packages and custom Perl modules need a compatibility check of their own, since each one may be built for a particular OTRS line. Plan to rebuild or retire anything you cannot confirm.

How the migration differs for Community Edition 6 and commercial OTRS starting points

Community Edition 6 installations usually carry the oldest code base and the most local changes. Znuny continues the Community Edition line from version 6.0.30, so the starting point is close to its origin, but years of add-ons and patches make the update path harder to predict. Plan for each documented step to run in order, with a check after every step.

  • Add-on compatibility: Check each installed package against the Znuny release you are moving to. Packages without a maintained Znuny build may need replacing or removing before the update.
  • Custom code: Local Perl modules, template overrides and edited core files cause most upgrade failures. Record every modification, then decide whether it stays, moves into a supported extension point or goes.
  • Stepwise version path: Znuny 6.5 accepts updates only from 6.4, so an installation on an earlier 6.x release needs an intermediate upgrade first. Confirm the exact steps in the Znuny documentation before scheduling work.
  • Data work: Schema changes, attachments and article storage must be verified on a restored copy of production, not just checked for a successful script exit.

Before touching production, confirm the package list, the modified file list and the release notes for each step with your own test results in hand.

What drives migration cost and duration, and how to keep each down

This table lists the components that move the cost and calendar of an OTRS to Znuny migration, who is paid for each, and whether it is one-time or recurring. Read it as a checklist to scope a fixed-price quote and to size internal effort before you agree a date.

DriverWhy it changes cost or effortHow to keep it down
Number of update stepsZnuny 6.5 accepts updates only from 6.4, so an older OTRS or Community Edition 6 install must pass through intermediate versions, each with its own database and configuration checks.Confirm your exact starting version first, then script each step and test the chain on a copy before any production run.
Add-on packagesEach OTRS add-on must be checked for a Znuny-compatible build or replacement, and some may need reinstallation or rework after each version step.Inventory every installed package and its source, then retire unused ones before migration rather than porting them.
Volume of custom Perl codeCustom modules, overrides and scripts depend on OTRS internals, and Perl changes between versions are the most common source of rework.Count lines and modules touched by customization, prioritize those that still matter, and document the purpose of each one.
Database choiceZnuny supports MySQL 8.0 or later, MariaDB 10.3 or later, PostgreSQL 12.0 or later and Oracle 19c or later. Moving engines during the upgrade adds a conversion step on top of the version path.Where possible, keep your current supported engine and version, and make any engine change a separate, tested project.
Testing on a copyUpgrade errors surface in restored data, scheduled jobs and integrations, so skipping a full rehearsal shifts cost into the production window.Restore a recent production backup to an isolated environment, run every update step there, and keep the timing and errors as your cutover baseline.
Integration countEach connected system (directory, email, monitoring, asset or billing tools) needs its interfaces retested after the change.List every interface with its owner and test case, and agree which ones are in scope for the first cutover.
People availabilityNamed staff from ITSM, database, mail and security teams must be available for each rehearsal and for the cutover, and delays in one group stall the rest.Book reviewers and approvers before the plan starts and name a single owner for the schedule and the rollback decision.
One-time costsAssessment, scripting of update steps, customization rework, rehearsals and cutover support are paid once, usually as project effort or a fixed-scope fee.Ask for each phase as a separate line with deliverables, so you can see which work recurs and which is finished.
Recurring costsZnuny has no license fee, but Linux servers, database licensing or support where applicable, backups, monitoring and staff time to operate and patch continue after go-live.Size the server and database tiers from measured load, and confirm whether any database support contract applies to your chosen engine.
Optional Znuny GmbH servicesProfessional services and support from Znuny GmbH are optional and recur only if you buy a support contract or retainer.Decide which tasks your team can own, and buy external help only for the steps that need it.
What to ask for in a written quoteA quote should show the starting version, the update path, a package and customization inventory, the database target, the rehearsal count and the cutover plan.Request assumptions in writing, including what happens if the copy test fails, and whether recurring support is included or priced separately.

What usually goes wrong in an OTRS to Znuny move and how to prevent it

Most failed OTRS to Znuny projects fail on sequencing, not on Znuny itself. The risks below sit in the update path, the extensions, the custom code, the database, the live systems and the cutover plan, and each one has a check that can be done before production is touched.

Skipping an upgrade step

Znuny 6.5 accepts updates only from 6.4, so a team starting on an older OTRS release cannot jump straight to it. Teams that try to shortcut the path usually discover the failure during the production window. Map the installed version against the stepwise path in the Znuny documentation, write down every intermediate release, and rehearse each step on a copy of the production database before scheduling the cutover.

Add-ons that break after update

Third-party packages and add-ons are often the first component to fail after a version change, and they are rarely listed in the project plan. Build an inventory of every installed package, confirm with each vendor or the package maintainer whether a Znuny-compatible release exists, and remove packages nobody uses. Then test each remaining add-on on the copy, including its agent screens and scheduled tasks.

Custom code relying on removed behavior

Custom modules, overridden Perl files and scripts that call internal APIs may depend on behavior that changed between OTRS and Znuny or across Znuny releases. These faults can stay hidden until a specific ticket workflow runs. Review every local override against the Znuny developer documentation, flag any call to an API that no longer exists, and add test cases for the workflows that depend on that code.

Database mismatches

Znuny supports MySQL 8.0 or later, MariaDB 10.3 or later, PostgreSQL 12.0 or later and Oracle 19c or later, and the database engine and version must match the target configuration. Moving between engines during the migration adds a second project on top of the first. Confirm the database platform and version before the project starts, keep the character set and collation consistent, and verify row counts and attachment storage after each restore.

Unpatched systems during the project

A migration can run for months while the old help desk stays in production and continues to take customer and internal tickets. If that system is an unsupported OTRS Community Edition 6 installation, it has no security fixes for the duration. Document which version is live, apply available hardening such as restricted network access and current operating system patches, and set a decision date for the cutover so the exposure does not extend indefinitely.

Cutover without a rollback path

A cutover that changes the live ticket system without a tested way back leaves the team with no option if agents find data loss or broken workflows on day one. Before the switch, take a full database and file backup, record the exact steps to restore the old system, and agree in writing who can authorize a rollback and by what time. Run one restore drill on the copy so the rollback is known to work.

Questions buyers ask before moving from OTRS to Znuny

How much effort and cost should I expect when moving from OTRS to Znuny?

The software itself carries no license fee under GPL v3, so the cost sits in people, servers, the database and any outside help. The main drivers are the number of stepwise updates from your current OTRS version to Znuny 6.5, the number of add-on packages and custom modules you run, the size of your ticket history, and how many integrations depend on the system. Ongoing costs include Linux servers, database licensing if you choose a commercial engine, and staff time for patching. Ask any partner for a quote that separates one-time migration work, test environment setup, cutover and recurring support, and ask what each line assumes about your OTRS version and add-on list.

How long does an OTRS to Znuny migration take?

The duration depends mainly on how far your installation sits from Znuny 6.5. Znuny 6.5 accepts updates only from 6.4, so an older OTRS installation must pass through the intermediate steps in order, and each step needs its own test cycle. Other factors include the size of the database, the number of custom and third-party packages that must be checked against each version, and how many interfaces connect to the help desk. No fixed timeline is supplied for this work. Ask for a schedule that lists each upgrade step, the test window on a copy of production, and the cutover window agreed with your service owners.

What does my team need to provide for the migration?

Expect to supply a clear inventory and access to the people who know the system. Typical inputs are the current OTRS version and patch level, a list of installed add-ons and custom code, the database engine and version, the ticket volume and attachment storage size, and the list of integrations such as email, LDAP or directory sync, and monitoring. You will also need a staging environment that mirrors production, a named owner for ticket queues, roles and SLAs, and someone who can approve test results. Confirm these inputs with the vendor or partner before work starts, because missing details usually surface as scope changes.

Can an internal team migrate OTRS to Znuny without outside help?

Yes, a capable internal team can perform the migration, provided it has Linux administration skills, experience with Perl-based applications, and database administration experience for the engine you choose. Znuny's documentation portal covers the current feature version and the latest LTS version, which helps with planning, and the README lists supported platforms, Perl and Apache requirements, and database versions. The risk is capacity and continuity: the work requires repeated test cycles across each update step, and the team must be able to run the system afterward. Decide early whether you have the time and the second person needed to cover patching and incidents.

What happens to add-ons and custom code during the move?

Add-ons and custom code are the most common source of delay, because each one must be checked against every Znuny version in your upgrade path. Some packages may have a Znuny-compatible release, some may need changes, and some may no longer be maintained and need replacement or removal. Custom code that touches core files or the database schema needs a review before testing begins. Build a register of every package and modification, record its version and owner, and confirm compatibility with the Znuny release you plan to run. Ask whoever performs the work to document each decision, since auditors and future maintainers will ask about it.

Do I need Znuny GmbH services for the migration?

Znuny GmbH services are optional. The project is open source and its documentation is public, so many organizations complete the move with internal staff or an independent implementation partner. Znuny GmbH, based in Berlin, offers professional services, which may suit teams that want the maintainers involved in complex add-on or database decisions. Whether you need them depends on the size of your custom code, your internal skills and your tolerance for risk during cutover. Ask any provider to state in writing what it will deliver, which Znuny versions it covers, and who supports the system after go-live.

Should I test the migration on a copy before the production cutover?

Yes. Test every update step on a copy of production before you touch the live system, because each step can break add-ons, templates or database changes that users would notice immediately. A copy lets you measure how long each step takes, check ticket and attachment integrity, verify email and integration flows, and rehearse rollback. Keep the copy's data current enough to be representative, and document the results so you can repeat the sequence on cutover day. Ask your partner or internal team to define pass or fail criteria before the first test run.

How DeployOpen scopes, runs and supports an OTRS to Znuny migration

DeployOpen is a Chainscore Labs company that plans, implements, hardens, backs up, upgrades, documents and supports self-hosted open-source platforms inside the client's own infrastructure. For an OTRS to Znuny migration, we work from a written, fixed scope and run every step on a copy of your system before anything touches production.

How we scope

  • Inventory your current OTRS version, add-on packages, custom code and database engine before agreeing any scope.
  • Confirm the stepwise update path from your current release to Znuny, with each intermediate step written into the plan.
  • Agree in writing which add-ons, custom modules and integrations are migrated, rebuilt or retired.
  • Ask for the scope, deliverables and timeline in writing before work starts, since engagements are fixed-scope.

How we build

  • Stand up a test copy of the OTRS system on infrastructure you control, including a restored database.
  • Run each update step on the copy, then test agents, customer interfaces, email channels and reports.
  • Verify add-on compatibility and port custom code against the Znuny developer documentation.
  • Document the database choice, server configuration and backup routine as the build proceeds.

How we hand over

  • Deliver the runbook for the production cutover, including rollback steps and the final data check.
  • Provide documentation of the configuration, customizations and known gaps against the original system.
  • Walk your administrators through daily operation, updates and backup restores on your own servers.
  • Record the test results from the copy so your team and any auditor can trace what was verified.

How we support

  • Ongoing support, upgrades and continuous testing are available as a retainer after handover.
  • A retainer can cover applying future Znuny release updates to a tested copy before production.
  • Confirm response expectations and service levels in the retainer terms, since none are set here.
  • Support stays inside your environment, so your data does not leave your own infrastructure.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.