Zoho Desk or self-hosted Zammad: which fits your support team
Choose Zoho Desk if your support team is small enough to run on a vendor-hosted help desk, customer data can sit in Zoho's cloud, and Zoho is already the system of record for your sales or finance work. Choose self-hosted Zammad if data residency rules, a contract clause or internal policy require support tickets to stay in infrastructure you control, or if the per-user subscription has become the cost you most want to remove. The decision turns on five factors: where the data must live, how many agents you employ, which channels customers use, whether other Zoho applications sit in your daily workflow, and who will operate the platform after go-live.
Hosting control comes first because it changes every other factor. Zoho Desk is a vendor-hosted service, so residency, backup and retention depend on Zoho's data center choices and contract terms, and you should ask Zoho in writing which regions store your tickets and attachments. Zammad is licensed under the GNU Affero General Public License version 3, and you choose the host, the region and the retention policy yourself. Agent count drives the Zoho cost because Zoho prices per user, so take the per-agent rate for your current plan and multiply it by the agents you expect over the next few years. Then list every inbound channel, such as email, web form, chat, phone and social, and confirm the plan you would run covers each one. Finally, list the Zoho applications your agents open every day. Any link between the desk and those apps must be rebuilt through Zammad's API or a custom integration, so scope that work before you decide.
Operating the platform is the factor teams most often underestimate. Zammad stores its content in PostgreSQL 15 or newer, requires Redis 7 or newer for realtime websocket communication, and runs behind Nginx or Apache. Elasticsearch is optional but strongly recommended for faster search and reporting, and Memcached is needed when you run several application instances, such as containers or cluster nodes. Someone on your side must patch these tiers, back them up and track security releases, which Zammad publishes on both its 6.5 and 7.2 lines. If you want a vendor contract for the software, Zammad GmbH sells self-hosted support subscriptions named Business at 2,999 EUR per year, Enterprise at 5,999 EUR per year and Corporation at 9,999 EUR per year, according to its Zammad pricing page. Ask who covers incidents outside office hours before you commit to either option.
Which option fits which support scenario
This table matches common support team situations to the option that usually fits better, with the reason in plain terms. Read each row against your own constraints: data location, in-house operating capacity, and how deeply your support process depends on other Zoho apps.
| Team situation | Better fit | Why |
|---|---|---|
| Hosted-only team that wants the vendor to run upkeep | Zoho Desk | The vendor handles hosting, upgrades, scaling and infrastructure, and the team pays a per-user subscription in return. |
| Regulated team that must keep tickets inside its own network | Zammad (self-hosted) | Tickets, attachments and agent data stay in your cloud account or data center, and you control access, backup and retention. |
| Team deeply tied to other Zoho apps for sales, billing or HR | Zoho Desk | Native links across the Zoho suite cost less integration work, and moving the help desk out means rebuilding those connections. |
| Team with a platform engineering group that runs Kubernetes or Docker | Zammad (self-hosted) | Zammad documents Docker Compose and a Helm chart, so existing deployment, monitoring and backup practices can carry over. |
| Team with no in-house operators for databases, search and mail | Zoho Desk, or Zammad with a support contract | Self-hosting means someone patches PostgreSQL, Redis and Elasticsearch. Without that skill, budget for a Zammad support subscription or a partner before choosing it. |
| Team that needs a documented exit from a per-user contract | Zammad (self-hosted) | No license fee applies to the self-hosted software, but the migration and operating costs still need a written estimate before you decide. |
What changes when the help desk leaves the Zoho suite
Moving Zoho Desk to self-hosted Zammad changes more than the help desk itself. Every link between Desk and the rest of the Zoho suite becomes something your team must rebuild, replace or retire. Start by listing where Desk gets data or sends it: CRM account and contact records, the mail flow that creates tickets, the sign-in path agents use, and any reports that combine support metrics with sales or finance data. Each of these is a dependency with an owner, and the cutover plan should name that owner for each one.
Identity is usually the first change. If agents and administrators sign in to Desk through a Zoho account or a Zoho-managed SSO setup, that path ends at cutover. Zammad supports third-party login through SAML, OpenID Connect, Microsoft, Google, GitHub and GitLab, among other providers, so the decision is which self-hosted identity provider will issue sign-ins for Zammad. Confirm the protocol your identity provider supports, the attribute mapping for roles and groups, and what happens to accounts that exist only in Zoho. Test this in a staging instance before any agent depends on it.
The integration inventory is the step most often skipped. Ask the Desk administrator to export the list of installed extensions, workflow rules, webhooks, and API connections, then ask each team which ones they actually use. CRM sync, Slack or chat notifications, and custom scripts calling the Desk API all need a replacement path, whether that is Zammad's API, a webhook, or custom development. Where no replacement exists, record the gap as a decision for the business owner rather than a surprise on cutover day. Also confirm whether Zoho's own data backup covers everything you rely on before you plan the export.
Where the data lives and who runs the platform
Moving from Zoho Desk to Zammad changes where ticket data sits and who patches, backs up and secures it. The cards below cover the decisions that follow from that shift, so compliance and security teams can scope the work before choosing a hosting model.
Data location and residency
Zoho Desk stores tickets, contacts and attachments in Zoho's cloud, and your residency options depend on the data center Zoho assigns to your organization. Zammad stores its content in your own PostgreSQL database and file storage, so you choose the region, the availability zones and the backup targets. Confirm with Zoho which region your tenant uses today, and document where Elasticsearch indexes and email attachment content will reside once you deploy it.
Zoho-run SaaS versus self-run Zammad
Under Zoho Desk, Zoho operates the application, patching and availability, and your team manages configuration and users. With self-hosted Zammad, your team or a partner owns the web, application, database and cache tiers, along with upgrades. Zammad documents package installation, Docker Compose and a Kubernetes Helm chart, and on Kubernetes its support covers only the Zammad application. Plan who owns cluster issues before you pick a model.
Zammad GmbH hosted plans
If you want a vendor-run Zammad instead of self-hosting, Zammad GmbH sells hosted plans that run in German data centers. This keeps the application under the Zammad project's stewardship while moving operations to a third party. Ask the vendor for its subprocessor list, backup location, incident notification terms and whether the hosted environment meets the data residency rule your regulator or contract requires.
Identity integration and access
Zoho Desk accounts are managed within Zoho's identity system, which may not match your corporate directory. Zammad supports third-party login through SAML, OpenID Connect, Microsoft, Google, GitHub and GitLab, among other providers. Decide whether agent and admin accounts come from your identity provider, how joiners and leavers are deprovisioned, and whether customer logins stay local. Confirm the exact provider list in your Zammad version.
Compliance scope and evidence
Moving the help desk changes which controls you must evidence, including access reviews, backup and restore testing, change management and logging. DeployOpen prepares systems, controls and evidence for compliance assessments, but it does not issue audit reports, attestations or certifications; independent auditors and certification bodies do. Ask your assessor early which control owners now sit with your team, and which ones Zoho's existing attestations still cover for the data you keep there.
What a self-hosted Zammad stack contains
A self-hosted Zammad installation is a set of cooperating services, and the first decision is where each one runs. The application stores its content in PostgreSQL 15 or newer, which holds tickets, users, articles and configuration, so the database backup and restore plan is the core of your data protection. Redis 7 or newer handles realtime websocket communication, which keeps agent screens updated without manual refresh. A reverse proxy, either Nginx or Apache, sits in front of the application and terminates client connections. Confirm the exact supported combinations for your target release in the Zammad software requirements before you size hosts or build images.
Elasticsearch is optional but strongly recommended. Without it, Zammad's search is slower, and the reporting features and the search of email attachment content depend on it. Treat it as a stateful service with its own storage, memory and backup plan, and decide early whether your support team needs attachment search, since that choice changes your hardware and your recovery time. Memcached is needed when you run multiple Zammad instances, such as container replicas or cluster nodes, because those instances must share cache state. A single installation can use the file system cache instead, which removes one service from the stack.
The component list also drives your cost of ownership and your support model. Each service adds patching, monitoring and backup work, and each one must be in your change process before go-live. Ask your installer or internal platform team to document which components run in which tier, which ones are shared, and which ones are dedicated to Zammad. If you deploy with the Docker Compose or Kubernetes options, confirm which of these services the chart or compose file provides and which you must operate yourself, because Zammad support on Kubernetes covers only the application, not the cluster.
Licensing and editions on each side
Zoho Desk is sold as a cloud subscription priced per agent user across four plans named Express, Standard, Professional and Enterprise. Each step up adds capabilities, and the annual total depends on how many agents hold a license and which add-ons you buy. This page does not quote Zoho's list prices, so take current figures from your order form or Zoho's pricing information.
- Per-user billing: cost scales with the number of agents who need a seat, so seat counts and planned hiring drive the renewal total.
- Plan-gated features: some channels, automation rules and reporting features may sit only in higher plans, so confirm the tier that includes each feature your team uses today.
- Contract terms: check how your agreement bills, what notice period applies and how price changes are handled at renewal.
- Add-ons and suite links: charges for add-ons or bundled Zoho products may sit outside the base plan line, which can make the true cost harder to compare.
- Historical seat usage: agents who log in rarely may still count toward the seat total, so audit actual use before choosing a plan.
Ask your Zoho account contact for a written breakdown of seats, plan features and add-ons for the current term before you compare it with the other side.
Zammad is licensed under the GNU Affero General Public License version 3, a free software license that carries no license fee for running the application. Its source code is owned by the Zammad Foundation, which is independent of Zammad GmbH, and the software is developed with the community. Downloading, installing and using Zammad in your own infrastructure has no software license cost.
- No license fee: self-hosted Zammad carries no per-agent or per-instance license charge, so the software line in your budget is zero.
- Foundation ownership: the Foundation holds the source code, so the project does not depend on a single company's commercial terms for its code base.
- Costs move to operations: servers, PostgreSQL, Redis, search components, backups, upgrades and staff time become your costs to plan and fund.
- Public repository: the code, release history and issue tracker are visible in the zammad/zammad repository, so your team can review what it runs.
- Version choice: you decide when to adopt each release, which means you also own the testing and change windows for upgrades.
Confirm which Zammad version and components your deployment will include, and check that each supporting service carries the license terms you expect.
Zammad GmbH sells optional support subscriptions for self-hosted installations, named Business, Enterprise and Corporation. According to Zammad's pricing page, these cost 2,999 EUR per year for Business, 5,999 EUR per year for Enterprise and 9,999 EUR per year for Corporation. Support is optional, so you can run Zammad with your own staff or a partner handling support instead of a vendor contract.
- Business tier: 2,999 EUR per year according to Zammad's pricing page. Confirm the response channels, hours and product scope in writing.
- Enterprise tier: 5,999 EUR per year according to the same source. Compare its scope with the gaps in your internal support model.
- Corporation tier: 9,999 EUR per year according to the same source. It is usually considered for the largest support needs, so confirm what it adds over the lower tiers.
- Scope limits: vendor support generally covers the Zammad application. Zammad's Kubernetes documentation states that its support does not cover Kubernetes-specific issues, so the platform team still needs its own coverage.
- Separate services: implementation, hardening, migration and ongoing operations are separate engagements, with their own quotes.
Ask the vendor for a written list of covered products, response targets and escalation paths for the tier you choose, and compare that list with your own on-call coverage.
The GNU Affero General Public License version 3 extends copyleft obligations to software used over a network. If you modify Zammad and make the modified version available to users who interact with it over a network, the license generally requires you to offer those users the corresponding source code of your changes. Whether this applies to your organization depends on what you change and who uses the system. This is not legal advice, so review it with counsel.
- Unmodified use: running Zammad without changes generally does not trigger the source offer, but confirm this reading with counsel for your setup.
- Custom code: integrations, theme changes, patches and custom fields may count as modifications, so keep a register of each change.
- Who can interact: consider whether customers, partners or only staff use the modified version, since network users may be the trigger.
- Separate tools: independently run plugins, reporting tools or connectors may carry different licenses, so check each one.
- Contractor code: development agreements should state who owns custom code, which license applies and how the source is shared.
Before go-live, ask counsel to review your modification register and how customers reach the system, and record the decision for your compliance file.
What each cost component covers on each side
What does Zoho Desk charge for, and what recurs each year?
Zoho Desk is sold as a per-user subscription in its Express, Standard, Professional and Enterprise plans, so the recurring fee scales with the number of agents you license and the plan tier you choose. Add-ons, where you need them, are another recurring line. Check the current per-agent price and which features sit in each tier on Zoho's own pricing page, and ask your Zoho account contact to list every add-on you would need, including any data export or API usage you expect to rely on. Your renewal invoice is the figure to compare against, not a list price.
Does Zammad have a license fee, and what does the support subscription add?
Self-hosted Zammad has no license fee because it is licensed under the GNU Affero General Public License version 3, so the software itself is free to run. Zammad GmbH sells optional self-hosted support subscriptions named Business, Enterprise and Corporation, which are recurring annual contracts. The Zammad pricing page lists these at 2,999 EUR, 5,999 EUR and 9,999 EUR per year. Support is optional, so you decide whether to buy it based on your internal skills and your tolerance for depending on community channels.
What infrastructure costs come with self-hosted Zammad?
You pay for the servers, storage and network that run Zammad, and these recur as cloud or data center charges. Zammad needs PostgreSQL 15 or newer for content, Redis 7 or newer for realtime websocket communication, and a reverse proxy such as Nginx or Apache. Elasticsearch is optional but strongly recommended for faster search, reporting and attachment content search, so it adds memory and disk. Memcached is needed for multi-instance deployments such as containers or cluster nodes. Ask your infrastructure team for a sizing estimate based on agent count, ticket volume and redundancy targets.
What drives the server and storage bill up or down?
The main drivers are agent count, ticket volume, attachment size, retention period and uptime needs. Attachments and email content grow storage fastest, and Elasticsearch indexes add memory and disk on top of that. High availability needs redundant application nodes, a replicated database and shared cache services, which roughly multiplies the baseline. Retention rules and attachment limits are levers you control. When you request a quote, specify expected tickets per month, average attachment size, retention years, and whether you need a standby site.
Who maintains PostgreSQL, Redis, Elasticsearch and Memcached after go-live?
Your team or a partner you contract pays staff time to patch, back up, monitor and upgrade each component, and that effort recurs for the life of the system. Each service has its own release cycle, so an upgrade of Zammad may also require checks on PostgreSQL, Redis or Elasticsearch versions. Zammad support, if purchased, covers the Zammad application, while Kubernetes-specific or database issues remain with your platform team. Ask any implementation partner to state in writing which components they operate, which they hand over, and who owns the on-call rota.
What does the one-time migration from Zoho Desk cost in labour?
Migration is a one-time cost paid to the people doing the work, either your staff or a contracted partner. Zammad has no built-in Zoho Desk migrator, so the route involves a Zoho Desk backup of CSV files, fetching attachments through the Desk API, importing through the Zammad API or custom development, and mapping departments, teams and SLAs. Those steps take skilled time that depends on data volume, custom fields and workflow complexity. Ask for a fixed-scope written plan that lists the data types, mapping rules, test cycles and cutover steps before agreeing any figure.
What should a written quote for a Zammad move include?
A useful quote separates one-time and recurring lines so you can compare it fairly with your Zoho Desk renewal. Ask for these lines: infrastructure you will pay for each year, Zammad support tier if any, migration scope and deliverables, testing and cutover, staff time for operations, and a yearly cost for patching and upgrades. Also request the assumptions behind each number, including agent count, ticket volume and attachment size. A fixed-scope quote from DeployOpen follows from the written scope, and it is the document to request before agreeing anything.
Can we run Zammad without paying for a vendor support contract?
Yes, the software has no license fee, so you can run it without a Zammad support subscription if your team has the skills to operate it. The trade-off is that your staff, or a partner you engage, carry the responsibility for troubleshooting, upgrades and security patches. Decide this based on how many people can operate PostgreSQL, Redis and the reverse proxy, how quickly you need fixes, and whether your compliance reviews expect a named support route. Confirm the support model in writing with any partner before you cut over.
How a move from Zoho Desk to Zammad is organized
The sequence turns a Zoho Desk tenant into a documented, tested Zammad instance with mail routing moved over and a retirement decision for the old tenant. Each phase ends with an output that the next phase depends on.
Inventory channels, SLAs, departments and integrations
Before any data moves, list every channel that feeds Zoho Desk (mailboxes, web forms, chat, social and phone), every department and team, each SLA policy, and every integration with other Zoho apps or outside systems. Assign an owner to each item, usually the support operations lead with input from the Zoho administrator. The step is done when the inventory is signed off and every channel has a named target in the new design.
Export or back up Zoho Desk data
Create a full backup of the Zoho Desk tenant and confirm what it contains against your inventory. Check whether tickets, threads, contacts and knowledge base articles are included, and record what is not, such as attachment files and forum content. Store the export in a location your security team approves. The step is done when the backup is downloaded, its contents are verified, and a copy sits in retained storage.
Choose the API route or custom development
Zammad does not ship a built-in Zoho Desk migrator, so decide how the data will get in. The remaining routes are importing the export through the Zammad API, or commissioning custom development from Zammad or a partner. Compare the effort of each against your ticket volume, attachment volume and the number of custom fields. Ask any vendor to state in writing which Zoho objects they will map and which they will leave behind. The step is done when the route is chosen and the scope is written down.
Stand up a new Zammad instance
Deploy Zammad in your own infrastructure with PostgreSQL, Redis and the other services your chosen deployment needs, and confirm the installation with a test ticket. Migrations run all or nothing and only on a new instance, so do not reuse an instance that already holds data. Set up backups for the database and file storage from the start. The step is done when a clean instance passes a basic functional check and its backup and restore have been tested.
Map teams, roles, SLAs and identities
Translate Zoho departments into Zammad groups, Zoho roles into Zammad roles and permissions, and Zoho SLA policies into Zammad service level rules. Decide how agents and customers sign in, including single sign-on where your identity provider supports it. User passwords do not carry over in a migration, so plan how each person will log in and how their account will be activated. The step is done when the mapping document is approved and every agent has a confirmed login path.
Run a test migration with a sample
Load a representative sample of tickets, including ones with attachments, long threads and linked customers, into a test instance. Compare counts, ownership, states, SLA timers and knowledge base content against the Zoho source. Agents should test replies, notifications and search with real workflows. Record every gap and decide whether to fix the mapping, accept it or handle it manually. The step is done when the sample reconciles and the open gaps have written decisions.
Cut over mail routing and channels
Move each inbound mailbox, web form and channel to Zammad in a planned order, and update forwarding rules, DNS records and outbound sender settings. Confirm that new messages arrive in Zammad and that replies leave with the correct sender identity. Keep the Zoho tenant reachable for a defined overlap period so late messages can be caught. The step is done when all channels deliver to Zammad and the overlap period has closed without lost messages.
Retire the Zoho tenant after retention needs
Confirm with legal and compliance how long support records must be kept and where the archived export will live. Once that archive is verified, disable Zoho Desk integrations, revoke API tokens and cancel the subscription on the renewal date your contract sets. Document where the archive is held and who can access it. The step is done when the archive is verified, access is revoked and the cancellation is confirmed in writing.
Questions buyers ask before choosing Zammad or Zoho Desk
What does moving from Zoho Desk to Zammad cost, and who gets paid?
Zammad has no license fee for self-hosted installs, so the cost sits in infrastructure, people and optional support. Infrastructure includes servers for the application, PostgreSQL 15 or newer, Redis 7 or newer, and Elasticsearch, which is optional but strongly recommended. Multi-instance deployments also need Memcached. People costs cover the migration engineer, the administrators who keep it running, and any support contract. Zammad GmbH sells self-hosted support subscriptions named Business at 2,999 EUR per year, Enterprise at 5,999 EUR per year and Corporation at 9,999 EUR per year, according to its pricing page. Migration and configuration are one-time costs, while hosting, support, patching and staff time recur. Ask any quote to split these lines so you can compare them with your current Zoho Desk subscription.
How long does a Zoho Desk to Zammad migration take?
No reliable duration is published for this migration, so confirm the timeline in a written scope rather than relying on a general estimate. The main drivers are the number of tickets and attachments, how many departments, teams, SLAs and mailboxes must be mapped, the number of integrations, whether SSO is required, and how many test rounds the business needs. Zammad's built-in migrators cover Freshdesk, Kayako, OTRS and Zendesk, not Zoho Desk. The route that remains is a Zoho Desk CSV backup, fetching attachments through the Zoho Desk API, and importing through the Zammad API or custom development. Ask for a milestone plan that separates the data mapping, test imports, cutover and post-cutover checks.
What access and information must our team provide before a migration starts?
Your team should prepare access, network and mail details before any engineer starts work. Confirm with Zoho which role is needed to run the backup and create API credentials, since the required rights are not stated here. Typical inputs include:
- Zoho Desk admin access to run the backup and create API credentials
- A target host, network path, DNS name and TLS certificate for Zammad
- SSO details, such as SAML or OpenID Connect metadata, if users will sign in through your identity provider
- Mail routing: inbound and outbound mailboxes, forwarding or MX changes, and SMTP credentials
- A list of departments, teams, SLAs, macros and automations to map
Can an in-house team run Zammad without outside help?
An in-house team can run Zammad if it already has Linux, database, reverse proxy and mail administration skills and can cover on-call and patching. Zammad documents package installation, Docker Compose and a Kubernetes Helm chart, and it supports Nginx or Apache as the reverse proxy. Operating the stack means maintaining PostgreSQL, Redis, Elasticsearch and, for multi-instance setups, Memcached. On Kubernetes, Zammad support covers only the Zammad application, so cluster issues remain your team's responsibility. Check your team's skills against the software requirements and assign named owners for backups, upgrades and mail delivery before you commit to the move.
How do Zammad support tiers differ from hiring an implementation partner?
Zammad support tiers cover the software: Zammad GmbH sells Business, Enterprise and Corporation subscriptions for self-hosted installs. A partner such as DeployOpen covers the work around the software inside your environment. DeployOpen plans, implements, customizes, integrates, hardens, backs up, upgrades, documents and supports self-hosted platforms in your own cloud accounts, data centers or air-gapped networks. Most engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts, and ongoing support is available as a retainer. DeployOpen does not publish prices, so a quote follows from the written scope. The two can be combined, but confirm in writing which party is responsible for each component and incident type.
Does a Zoho Desk export include attachments and ticket threads?
The Zoho Desk backup described in our export plan is a ZIP of CSV files covering tickets, threads, contacts and knowledge base articles. It leaves out attachment files and forum topics, so attachments must be fetched separately through the Zoho Desk API before import. Confirm the current contents, backup interval and download link expiry with Zoho before you rely on them, because the backup behavior can change. Plan the export before your renewal date so you have time to test the import, check ticket counts and threads against the source, and confirm that every attachment reference resolves in Zammad before you close the Zoho Desk account.
Does Zammad support single sign-on for agents and customers?
Yes, Zammad supports third-party login through SAML, OpenID Connect, Microsoft, Google, GitHub and GitLab, among other providers. Engineers should confirm that the identity provider can send the attributes Zammad needs for user matching and role assignment, and decide how groups in your directory map to Zammad roles and teams. Test sign-in for agents, administrators and customers separately, including the fallback path if the identity provider is unavailable. The third-party applications documentation describes the settings to review before go-live.
When staying on Zoho Desk is the better choice
Staying on Zoho Desk is the better choice when the support team is small, has no one who can run a server, and does not want to carry patching, backups and search indexing itself. A hosted, per-user subscription moves those duties to Zoho, and that trade is worth more than a license saving when no engineer has spare time for a help desk stack. Check this honestly against your own staffing: if no named person would own upgrades, database maintenance and restores, a self-hosted Zammad instance will rely on an outside partner or on goodwill, and both carry risk. A managed or supported arrangement, such as the Zammad support tiers described on the Zammad pricing page, changes that calculation, but it adds a recurring cost you should price alongside Zoho's plans.
The second case is depth in the Zoho suite. If your agents work daily inside Zoho CRM, Zoho Books or Zoho Projects, and ticket context, contact records and billing status reach agents without custom work, that integration has real operational value. Moving the help desk out of the suite means rebuilding those links through APIs or middleware, and someone must own that code after go-live. Before deciding, list every Zoho-to-Desk link your team uses, mark which ones have a working equivalent in Zammad (confirm each one with the vendor or in a proof of concept, since this page does not claim a specific connector), and estimate what a broken link would cost you each week.
The third case is a stable, modest workload where the current plan already fits. If your volume, channels and SLA rules are met by the plan you pay for, and your reporting needs are answered inside Zoho, switching adds migration effort without a clear gain. Re-check this decision at each renewal rather than treating it as settled. Ask Zoho for the current plan terms, add-on pricing and data export options in writing, and compare them with the cost components in the cost comparison. If the renewal price rises, or a needed feature moves to a higher plan, the balance may change, so put the review date in your renewal calendar well before the notice deadline.

