Helpdesk migration
Field-level mapping, validation, and rollback between Zammad and Zoho Desk. We move data and schema; workflows are rebuilt natively in Zoho Desk.
Zammad
Source
Zoho Desk
Destination
Compatibility
9 of 12
objects map 1:1 between Zammad and Zoho Desk.
Complexity
CModerate
Timeline
3-5 weeks
Overview
Moving from Zammad to Zoho Desk is a structural translation that must address three core differences before records move. First, Zammad's Groups (which control ticket assignment and agent access) do not have a direct Zoho Desk equivalent — Zoho Desk uses a Department hierarchy that is configured separately and must be designed before user and ticket migration. Second, Zammad time entries are immutable after creation; we require customers to audit and correct time accounting in Zammad before migration because corrections cannot be made post-import. Third, Zoho Desk's Knowledge Base attachments do not migrate through standard import paths — we handle these as separate file transfers with URL remapping. We do not migrate Zammad Triggers, Macros, or Text Modules as automation code; we deliver a written inventory of every active automation with a Zoho Desk Blueprint or Business Rule equivalent for your admin to rebuild. Ticket thread direction (incoming vs outgoing) maps from Zammad's article sender type, and we validate this mapping against a sample before the full cutover.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Zammad 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.
Zammad
Ticket
Zoho Desk
Ticket
1:1Zammad Tickets map directly to Zoho Desk Tickets with full thread history. The Zammad article structure (sender type, internal/external flag, timestamp) maps to Zoho Desk Comments and Threads. We preserve the original ticket number as an external reference field, and state/priority mapping is configured before migration. Note that Zoho Desk does not natively preserve article internal/external visibility flags — we flag this and recommend using Zoho Desk's Internal Comments vs Public Comments separation as the replacement visibility model.
Zammad
User (Agent)
Zoho Desk
Agent (User)
1:1Zammad Agents map to Zoho Desk Agents. We resolve by email match and preserve role permissions by mapping Zammad Role names to Zoho Desk Roles. Agent provisioning in Zoho Desk requires the admin to assign agents to Departments — we flag this step and provide a Department assignment mapping based on the customer's Zammad Group structure before the user migration phase begins.
Zammad
User (Customer)
Zoho Desk
Contact
1:1Zammad Customers map to Zoho Desk Contacts. Customer email, phone, and organization membership transfer directly. Note that Zammad allows Users without an Organization; Zoho Desk Contacts can exist without an Account (Organization equivalent), which maps cleanly.
Zammad
Organization
Zoho Desk
Account
1:1Zammad Organizations map to Zoho Desk Accounts. Organization-level custom fields transfer as Account custom fields. A User in Zammad can belong to multiple Organizations — in Zoho Desk a Contact is primarily linked to one Account, with secondary Account links available via custom fields if needed. We flag this multi-organization membership pattern during scoping so the customer can choose whether to create linked Account records or flatten the membership.
Zammad
Group
Zoho Desk
Department
lossyZammad Groups map conceptually to Zoho Desk Departments, but the mapping is not direct. Zammad Groups control ticket assignment, email routing, and agent access; Zoho Desk Departments control these plus agent visibility scope across the help desk hierarchy. We require the customer to define the Department structure in Zoho Desk before migration and provide a Group-to-Department mapping table. Some Zammad Groups (e.g., shared inbox groups for email routing) may need to be recreated as Zoho Desk Shared Mailboxes or Team Inboxes, not just Departments.
Zammad
Role
Zoho Desk
Role
lossyZammad Roles (Agent, Admin, Custom roles) map to Zoho Desk Roles. Permission sets differ in granularity — Zammad's role permissions are broader, while Zoho Desk's agent roles include department-level scoping. We map the closest equivalent Zoho Desk role for each Zammad role and flag any permission gaps that require the customer's admin to adjust after migration.
Zammad
SLA
Zoho Desk
SLA
1:1Zammad SLA configurations (response time, resolution time, calendar bindings) map to Zoho Desk SLA configurations. Note that Zoho Desk's SLA enforcement is gated by pricing tier — Standard and Professional tiers include basic SLA rules; advanced SLA management with multiple SLA policies and department-specific calendars require the Enterprise tier. We verify the destination tier's SLA capabilities during scoping and flag any SLA features that require an upgrade.
Zammad
Tag
Zoho Desk
Tag
1:1Zammad Tags on Tickets map to Zoho Desk Tags. Tags are flat key-value labels in both platforms, so the mapping is direct. However, Zoho Desk tags applied at the ticket level are preserved, and we confirm tag visibility and filtering behavior matches the customer's expectations post-migration.
Zammad
Time Entry
Zoho Desk
Time Log
1:1Zammad time entries on tickets map to Zoho Desk Time Logs. This is a high-severity mapping step: Zammad time entries are immutable post-creation, so we require customers to audit and correct time entries in Zammad before migration. Incorrectly logged time in Zammad cannot be fixed after migration. Zoho Desk Time Logs are fully editable post-import, so any source-side corrections must be made in Zammad before the migration window. We flag any ticket with a time entry that appears to be logged incorrectly (e.g., negative durations, entries after ticket close) for customer review before migration begins.
Zammad
Attachment
Zoho Desk
Attachment
1:1Ticket article attachments migrate with content-type, filename, and size preserved. Zammad's default 10 MB per-attachment limit (configurable on higher tiers) maps to Zoho Desk's attachment limits per plan tier. We transfer large attachments (up to 50 MB per file in Zoho Desk Enterprise) via direct API upload with chunking for files over 25 MB. Attachment references in ticket thread text are updated to point to the new Zoho Desk-hosted file URL.
Zammad
Knowledge Base (Articles)
Zoho Desk
Knowledge Base (Articles)
1:1Zammad Knowledge Base articles and their category assignments migrate to Zoho Desk Help Center articles. However, Zoho Desk's Knowledge Base attachment handling (documented in Zoho's own migration guides) excludes article attachments — we handle these as a separate file transfer with URL remapping in the article body. Article visibility settings (internal vs external) in Zammad are preserved via Zoho Desk's article access control settings per department.
Zammad
Custom Object
Zoho Desk
Custom Module
lossyZammad Custom Objects (attached to Tickets, Users, Organizations, or Groups) map to Zoho Desk Custom Modules on Enterprise tier. We pre-create the destination custom module schema in Zoho Desk before migration, matching field types (Boolean, Date, DateTime, Integer, Float, Text, Single Select, Multi Select) to their Zoho Desk equivalents. Custom modules on lower Zoho Desk tiers (Standard, Professional) are not supported — we flag this during scoping if the destination is not on Enterprise.
| Zammad | Zoho Desk | Compatibility | |
|---|---|---|---|
| Ticket | Ticket1:1 | Fully supported | |
| User (Agent) | Agent (User)1:1 | Fully supported | |
| User (Customer) | Contact1:1 | Fully supported | |
| Organization | Account1:1 | Fully supported | |
| Group | Departmentlossy | Fully supported | |
| Role | Rolelossy | Fully supported | |
| SLA | SLA1:1 | Fully supported | |
| Tag | Tag1:1 | Fully supported | |
| Time Entry | Time Log1:1 | Fully supported | |
| Attachment | Attachment1:1 | Fully supported | |
| Knowledge Base (Articles) | Knowledge Base (Articles)1:1 | Fully supported | |
| Custom Object | Custom Modulelossy | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
Zammad gotchas
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
Zoho Desk gotchas
Agent email identity determines comment ownership after migration
Blueprints and SLA policies do not export via API
File upload capped at 10GB per migration batch
Tier-gated export and migration capabilities
Inbound migration is two-phase with a hard Phase 2 cutoff
Pair-specific challenges
Migration approach
Pre-migration audit and scoping
We audit the source Zammad instance across agents, customers, organizations, tickets, time entries, SLA configurations, tags, Knowledge Base articles, and custom object definitions. The audit includes a time entry integrity check: we flag every ticket with a time entry that appears incorrectly logged (negative duration, post-close entries, wrong agent attribution) for customer correction before migration. We also document the existing Group structure and ticket routing patterns to drive the Zoho Desk Department design. The output is a written migration scope, data inventory, and a list of source-side corrections required before migration begins.
Zoho Desk Department and schema design
We design the destination Zoho Desk structure before any data moves. This includes creating Departments matched to the customer's Zammad Group structure, configuring Roles with permissions equivalent to the source Role definitions, setting up SLA policies with calendar bindings (verified against the destination tier's SLA capabilities), and pre-creating any custom modules required for Zammad custom object mapping. Shared mailbox configurations for email routing Groups are designed separately from Departments. All schema is validated in a Zoho Desk sandbox before production.
Sandbox migration and reconciliation
We run a full migration into a Zoho Desk sandbox using a representative sample of data. The customer's admin reviews record counts, spot-checks thread history against Zammad source records, validates time log accuracy, confirms Department assignment, and signs off the mapping. Any corrections to field mapping, tag strategy, or Department structure happen here. Time entry corrections identified in the pre-migration audit are confirmed as resolved before proceeding.
Source-side time entry correction window
For customers with time accounting requirements (billable hours, SLA reporting), we run a dedicated correction window before production migration. The customer reviews and corrects time entries flagged during the audit, removes or rewrites any article containing an incorrect time entry, and confirms the corrected state in Zammad. We do not migrate time entry corrections post-import — Zammad's immutability means the source must be correct before the migration cutover.
Production migration in dependency order
We run production migration in record-dependency order: Departments and Roles first (schema), then Agents (mapped to Zoho Desk Agents with Department assignments), Accounts (from Zammad Organizations), Contacts (from Zammad Customers with AccountId resolved), Tickets (with thread history, time entries, tags, and SLA bindings), Knowledge Base articles (with separate attachment file transfer and URL remapping), and custom modules last. Knowledge Base attachment migration runs as a parallel track to ticket migration to maximize throughput. Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and automation inventory handoff
We freeze Zammad writes during cutover, run a final delta migration of any records modified during the migration window, then enable Zoho Desk as the system of record. We validate ticket created_at timestamps against Zammad source records. We deliver the Triggers, Macros, and Text Modules inventory document to the customer's admin team, with a Blueprint and Business Rule equivalent for each. We support a one-week hypercare window for reconciliation issues. We do not rebuild Zammad automations as Zoho Desk Blueprint or Business Rules inside the migration scope — that is a separate engagement or an internal admin task.
Platform deep dives
Zammad
Source
Strengths
Weaknesses
Zoho Desk
Destination
Strengths
Weaknesses
Complexity grading
Moderate Helpdesk migration. 5 of 7 objects need a mapping; the rest are 1:1.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Zammad and Zoho Desk.
Object compatibility
5 of 7 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
7-object category — typical timelines run 2–7 days end-to-end.
API constraints
Zammad: Not publicly documented in core REST API docs — Zammad is self-hostable, so effective limits depend on each instance's deployment topology and any reverse-proxy throttling in front of the app.
Data volume sensitivity
Zammad doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Zammad to Zoho Desk migration scoping. Not seeing yours? Book a call.
Walk through your Zammad to Zoho Desk migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Zammad
Other ways to arrive at Zoho Desk
Same-Helpdesk migrations
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.