Migrate your Zammad data
Open-source helpdesk with omnichannel support, REST API, and both cloud-hosted and self-hosted deployment options. Organizations choose Zammad for data sovereignty, GDPR compliance, and avoiding per-agent SaaS costs.
In its favor
Why people choose Zammad
The signal that keeps Zammad on the shortlist. Sourced from G2, Capterra, and customer scoping calls.
Organizations migrate to Zammad to escape per-agent SaaS pricing, citing costs 2–3× lower than Zendesk at equivalent agent counts.
The open-source model appeals to IT teams requiring data sovereignty and on-premise deployment options for compliance or regulatory reasons.
Multichannel support consolidates email, chat, SMS, Telegram, Twitter/X, and Facebook into a single ticket queue without licensing additional modules.
GDPR compliance and ISO27001-certified German data centers make Zammad attractive to European organizations handling sensitive customer data.
Self-hosting without vendor lock-in lets technical teams customize workflows via the REST API and community plugins without paying for enterprise tiers.
Time tracking cannot be corrected after entry — users report frustration that you cannot edit or delete time entries without rewriting entire ticket communications.
Feature requests are frequently dismissed by the community team as isolated cases, leaving customers with no clear roadmap for common workflow needs like per-customer PDF reports.
Custom field support via the API is poorly documented, requiring developers to experiment with undocumented endpoints to populate or read custom objects on tickets.
Organizations outgrow Starter and Professional agent limits and find Plus tier pricing approaches commercial SaaS alternatives, eliminating the cost advantage.
Self-hosting operational overhead — server maintenance, updates, backups, and support contracts — grows disproportionately for teams without dedicated DevOps resources.
Reasons to switch
Why people leave Zammad
The recurring reasons buyers give for replacing Zammad. Presented as facts, not knocks.
Platform scorecard
Strengths, weaknesses, and where Zammad fits
Grades across six dimensions, plus a SWOT-style view of where the platform shines and where it falls short.
SWOT — strengths, weaknesses, and use-case fit
Strengths
Weaknesses
Where it works
Where it struggles
Pricing tiers
Zammad pricing overview
Zammad uses a per-agent pricing model across three SaaS tiers (Starter at €7, Professional at €16, Plus at €25 per agent per month on annual billing). Agent limits are hard caps enforced by the platform. Self-hosted deployments have no license fees but require annual support contracts that can reach four figures. WhatsApp and Facebook channels are exclusive to the Plus tier.
Starter v2
Tier 1 of 3
€7/agent/month (annual) or €9 (monthly)
What's included
Need help selecting your Helpdesk?
Book a free 30 minute consultationPricing is informational. FlitStack AI does not bill on Zammad's schedule — see our quote-based pricing →
What gets migrated
Zammad object support
Object-by-object support for Zammad migrations. Per-pair details surface during scoping.
Tickets
Fully supportedTickets are Zammad's primary object. We migrate full ticket records including state, priority, group assignment, owner, customer, organization, tags, and the complete article/thread history. Attachments are downloaded and re-uploaded. Time entries associated with tickets are preserved as Zammad time accounting records.
Users (Agents and Customers)
Fully supportedZammad differentiates Agents and Customers. We map source contacts to Zammad Users, preserve role assignments (Agent vs Customer), and handle password hashing by setting temporary passwords during migration. Email addresses must be unique and are validated against Zammad's user schema.
Organizations
Fully supportedOrganizations in Zammad group related Users. We migrate Organizations and preserve their membership links to Users. Organization-level custom Objects are mapped. Note that a User can belong to multiple Organizations in Zammad, which not all source systems support.
Groups
Fully supportedGroups control ticket assignment and agent access. We migrate Groups with their email addresses, assignment rules, and active/inactive status. Default Groups like 'Users' and 'First Level Support' are created on fresh installs and we preserve those while mapping custom Groups.
Roles
Fully supportedRoles define permissions for Agents. We migrate custom Roles and their permission sets. System roles like 'Agent' and 'Admin' are preserved. Permission granularity is preserved but we flag any role configurations that may not map 1:1 if the destination system has different permission models.
Tags
Fully supportedTags in Zammad are flat key-value labels attached to Tickets. We migrate all Tags and their ticket associations. Tags are preserved as-is; there is no tag taxonomy or hierarchy in Zammad.
SLAs (Service Level Agreements)
Fully supportedSLAs define response and resolution time commitments tied to calendars and ticket priorities. We migrate SLA configurations including calendar bindings, business hours, and escalation rules. SLA-to-priority mappings are preserved.
Knowledge Base
Mapping requiredZammad's Knowledge Base stores internal and external articles organized by categories and translations. We migrate articles and their category assignments. However, article visibility settings (internal vs external) and translation completeness vary by source system and require manual review post-migration.
Triggers
Mapping requiredTriggers automate actions based on ticket conditions. We migrate Trigger configurations including condition operators and action sets. Some trigger conditions referencing custom Objects may not map directly if the destination system uses different object types.
Macros
Mapping requiredMacros bundle ticket updates and article templates for quick agent responses. We migrate Macros and their action sets. Macros referencing specific Group IDs or User IDs require re-mapping to destination Group/User IDs.
Text Modules
Mapping requiredText Modules are reusable response templates. We migrate Text Modules and their content. Multi-language Text Modules are preserved with language tags, but the destination must have matching locale configurations.
Custom Objects / Object Attributes
Mapping requiredCustom Objects extend Tickets, Users, Organizations, and Groups with custom fields. Supported types include Boolean, Date, DateTime, Integer, Float, Text, Single Select, Multi Select, User Reference, and Organization Reference. We map custom field values field-by-field. We flag Object types that cannot be changed after creation and recommend disabling rather than deleting unused Objects.
Attachments
Fully supportedAttachments on ticket articles are migrated with their content-type, filename, and size preserved. Large attachments up to Zammad's configurable limit (default 10 MB on Starter, configurable on higher tiers) are migrated. Files exceeding destination limits are flagged for manual handling.
Calendars (Business Hours)
Fully supportedCalendars define business hours for SLA calculations. We migrate Calendar configurations including working days, timezone, and holiday schedules. Calendars must be created before SLAs that reference them.
| Object | Support | Notes |
|---|---|---|
| Tickets | Fully supported | Tickets are Zammad's primary object. We migrate full ticket records including state, priority, group assignment, owner, customer, organization, tags, and the complete article/thread history. Attachments are downloaded and re-uploaded. Time entries associated with tickets are preserved as Zammad time accounting records. |
| Users (Agents and Customers) | Fully supported | Zammad differentiates Agents and Customers. We map source contacts to Zammad Users, preserve role assignments (Agent vs Customer), and handle password hashing by setting temporary passwords during migration. Email addresses must be unique and are validated against Zammad's user schema. |
| Organizations | Fully supported | Organizations in Zammad group related Users. We migrate Organizations and preserve their membership links to Users. Organization-level custom Objects are mapped. Note that a User can belong to multiple Organizations in Zammad, which not all source systems support. |
| Groups | Fully supported | Groups control ticket assignment and agent access. We migrate Groups with their email addresses, assignment rules, and active/inactive status. Default Groups like 'Users' and 'First Level Support' are created on fresh installs and we preserve those while mapping custom Groups. |
| Roles | Fully supported | Roles define permissions for Agents. We migrate custom Roles and their permission sets. System roles like 'Agent' and 'Admin' are preserved. Permission granularity is preserved but we flag any role configurations that may not map 1:1 if the destination system has different permission models. |
| Tags | Fully supported | Tags in Zammad are flat key-value labels attached to Tickets. We migrate all Tags and their ticket associations. Tags are preserved as-is; there is no tag taxonomy or hierarchy in Zammad. |
| SLAs (Service Level Agreements) | Fully supported | SLAs define response and resolution time commitments tied to calendars and ticket priorities. We migrate SLA configurations including calendar bindings, business hours, and escalation rules. SLA-to-priority mappings are preserved. |
| Knowledge Base | Mapping required | Zammad's Knowledge Base stores internal and external articles organized by categories and translations. We migrate articles and their category assignments. However, article visibility settings (internal vs external) and translation completeness vary by source system and require manual review post-migration. |
| Triggers | Mapping required | Triggers automate actions based on ticket conditions. We migrate Trigger configurations including condition operators and action sets. Some trigger conditions referencing custom Objects may not map directly if the destination system uses different object types. |
| Macros | Mapping required | Macros bundle ticket updates and article templates for quick agent responses. We migrate Macros and their action sets. Macros referencing specific Group IDs or User IDs require re-mapping to destination Group/User IDs. |
| Text Modules | Mapping required | Text Modules are reusable response templates. We migrate Text Modules and their content. Multi-language Text Modules are preserved with language tags, but the destination must have matching locale configurations. |
| Custom Objects / Object Attributes | Mapping required | Custom Objects extend Tickets, Users, Organizations, and Groups with custom fields. Supported types include Boolean, Date, DateTime, Integer, Float, Text, Single Select, Multi Select, User Reference, and Organization Reference. We map custom field values field-by-field. We flag Object types that cannot be changed after creation and recommend disabling rather than deleting unused Objects. |
| Attachments | Fully supported | Attachments on ticket articles are migrated with their content-type, filename, and size preserved. Large attachments up to Zammad's configurable limit (default 10 MB on Starter, configurable on higher tiers) are migrated. Files exceeding destination limits are flagged for manual handling. |
| Calendars (Business Hours) | Fully supported | Calendars define business hours for SLA calculations. We migrate Calendar configurations including working days, timezone, and holiday schedules. Calendars must be created before SLAs that reference them. |
Gotchas
What to watch for in Zammad migrations
Issues we've hit on past Zammad migrations, tagged by severity. FlitStack AI handles every one — surfacing them up front because buyer engineering teams want to know.
Migration Wizard requires empty, uninitialized instance
Agent count limits are enforced, not advisory
Time entries are immutable post-creation
Custom Objects use a disabled-not-deleted convention
Annual billing cancellation requires 90-day notice
| Severity | Issue |
|---|---|
| High | Migration Wizard requires empty, uninitialized instance |
| High | Agent count limits are enforced, not advisory |
| Medium | Time entries are immutable post-creation |
| Medium | Custom Objects use a disabled-not-deleted convention |
| Low | Annual billing cancellation requires 90-day notice |
Leaving Zammad?
Where Zammad customers move next
7 destinations Zammad can migrate to.
How a Zammad migration works
Four steps, Zammad-specific
Connect
Three methods: HTTP Token (Authorization: Token token={token}), OAuth 2.0 Bearer (Authorization: Bearer {token}), and HTTP Basic with username/password. Token auth is the recommended path; tokens can be scoped to specific permissions to limit blast radius. Admins can disable any of the three methods at the instance level into Zammad. Scopes limited to read-only on the data we move.
Map
We translate Zammad-specific structures (custom fields, objects, value lists) to the destination's model.
Sample
Test with a 50–200 record subset to validate Zammad quirks before production.
Migrate
Full migration with Zammad rate-limit handling. Rollback available throughout.
FAQ
Zammad migration FAQ
Answers to the questions buyers ask most during Zammad migration scoping. Not seeing yours? Book a call.
Can't find your answer?
Walk through your Zammad migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationOther helpdesks we support
Ready when you are
Migrate Zammad.
Without the rebuild.
Free scoping call with a migration engineer. Tell us about your Zammad setup and destination — written quote back within a business day.