Zammad

Deploy Zammad for helpdesk and customer support across email, chat, forms and phone, with search, SSO, backups and migration planned in infrastructure you control.

On this page

A helpdesk built around conversations

Zammad is an open source helpdesk licensed under the AGPL-3.0. Agents work tickets that arrive by email, web form, chat widget, SMS, messaging channels such as Telegram and WhatsApp, and phone systems through CTI integrations. It includes a knowledge base, SLAs, triggers, reporting and a REST API for connecting other systems.

Zammad suits customer support teams and internal service desks whose main job is answering people quickly across channels. It integrates with i-doit for CMDB lookups; teams that need full asset management keep a separate tool for it. Decide that boundary early, because it shapes groups, ticket fields and integrations.

Components of a Zammad installation

Requirements from the current Zammad documentation. Recheck them before each major upgrade.

ComponentRolePlanning note
Rails serverServes the web interface and REST API.Runs behind Nginx or Apache, which terminate TLS.
WebSocket serverPushes live ticket updates to agent browsers.The proxy must pass WebSocket upgrades and allow long-lived connections.
SchedulerRuns background jobs such as fetching mail, triggers and SLA checks.If it stops, new mail stops becoming tickets. Monitor it directly.
PostgreSQLThe only supported database from Zammad 7 on. The documentation asks for PostgreSQL 15 or newer.MySQL and MariaDB installations must move to PostgreSQL before upgrading to Zammad 7. PgBouncer needs session pooling.
RedisRequired for WebSocket communication. Redis 7 or newer.The documentation names Valkey as a drop-in replacement on distributions that ship it.
ElasticsearchSearch and reporting. Zammad calls it optional but strongly recommended.Current releases support Elasticsearch 8.15 or later, below version 10. OpenSearch is not listed as supported.
MemcachedShared cache.Required when services do not share one filesystem, as in container and multi-node deployments.

Choose an installation method

Zammad documents four methods. Support and backup tooling differ between them.

Packages

DEB and RPM packages for supported Linux distributions. They include backup and restore scripts under /opt/zammad/contrib/backup. A good fit for a single server.

Docker Compose

The official compose stack runs the Rails server, WebSocket server, scheduler, Nginx, PostgreSQL, Redis, Memcached, Elasticsearch and a backup service. Pin image versions and keep volumes on persistent storage.

Kubernetes

A Helm chart is available. Zammad states that it supports only the application in this mode, so the team running the cluster owns Kubernetes-specific problems.

Source

Possible, but every dependency then needs your own patching and testing. Choose it only with a clear reason.

Size by agents, volume and search

Zammad's hardware guidance lists the number of agents and customers, ticket volume, channel use and installation type as drivers, and says no single figure fits everyone. Its documented starting points are a minimum of 2 CPU cores and 6 GB of RAM, and an example of 6 cores and 6 GB for up to 40 agents. Both need extra memory if Elasticsearch runs on the same server.

Beyond a small team, give Elasticsearch and PostgreSQL their own hosts, and move attachments out of the database. Zammad stores attachments in the database by default and recommends filesystem or S3-compatible storage for busy instances, which keeps the database smaller and backups faster to restore.

Secure sign-in and entry points

Zammad syncs users from LDAP or Active Directory one way and maps directory groups to roles. Organizations cannot be synced. LDAP users can also hold local passwords, because Zammad checks LDAP first and then its own database, so decide how local passwords are handled for directory users.

Migrate from another helpdesk

Zammad ships migrators for Freshdesk, Kayako, OTRS (versions 3.1 to 6.x) and Zendesk. They import tickets and articles, groups or queues, organizations, agents and customers. Limits apply to all of them: migrations run only on a new instance, from one source, and import everything or nothing. Hosted sources import over their APIs, so your plan's rate limits set the pace, and passwords do not carry over from hosted tools.

Run a test import first to learn the duration, then repeat on a fresh instance for cutover. The Zendesk, Freshdesk and Kayako migrators do not support a later differential import, so plan a short freeze on the old system. Zammad recommends the console over the browser wizard for large instances or when imports time out.

There is no built-in migrator for Jira Service Management. With Jira Service Management Data Center reaching end of life on March 28, 2029, teams moving to Zammad use the REST API or a custom import and map request types, queues, SLAs and custom fields deliberately.

Back up and upgrade in order

TaskPractice
Backup scopePostgreSQL, attachments wherever storage points, configuration and TLS material. The search index can be rebuilt from the database, which takes time on large instances.
Package scriptsZammad ships backup and restore scripts for package installs and says to test and review them regularly. Copy and adapt them when they do not fit your setup.
Restore testRestore to an isolated host, rebuild the search index, and confirm that an agent can open a ticket with attachments and find it through search.
Major upgradesDo not skip major versions. Upgrade through each one in order and read the release notes for breaking changes before every step.
Database changeMove from MySQL or MariaDB to PostgreSQL before upgrading to Zammad 7. The migration guide requires Zammad 5.3 or later for that step.

Zammad operating ownership

Support leads own the workflow. The platform team owns the services underneath it.

Platform

  • Monitor the scheduler, WebSocket server, Elasticsearch health and mail fetch errors.
  • Keep PostgreSQL, Redis and Elasticsearch on supported versions.
  • Test restores and search index rebuilds.

Support operations

  • Own groups, roles, triggers, SLAs and text modules.
  • Review email routing when teams change.
  • Keep knowledge base content current.

Channels

  • Track credentials and token expiry for each mailbox and messaging channel.
  • Test web forms and chat after website changes.
  • Document CTI integration settings.

Security and privacy

  • Review admin and agent roles on a schedule.
  • Use the data privacy tasks for deletion requests.
  • Audit third-party login and account-linking settings.

Zammad questions

Can we run Zammad without Elasticsearch?

Zammad works without it, but its documentation says search becomes slower and very limited. Elasticsearch also powers reports and search inside email attachments, so plan for it in any production deployment.

We run Zammad on MySQL. What now?

Migrate to PostgreSQL on your current major version first. An upgrade to Zammad 7 is not possible on a MySQL installation.

Can we merge two helpdesks during migration?

Not with the built-in migrators. They import from one source into a new instance. Combining sources needs an API-based import.

Do customers need accounts?

No. Customers can work entirely by email, or sign in to the customer portal. Decide per audience and set the third-party login options to match.

Scope and handover

DeployOpen plans the deployment, installs Zammad in your infrastructure, connects channels, integrates LDAP or SSO, sets up search, backups and monitoring, and runs migration tests with your support leads. The work changes with the number of agents and channels, ticket history, the migration source, availability needs and isolated network requirements.

Handover records versions, the installation method, database, Redis, Memcached and Elasticsearch setup, attachment storage, channel credentials and owners, authentication settings, backup and restore results, the upgrade sequence and the support route.

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.