Helpdesk migration

Migrate from Zammad to Freshdesk

Field-level mapping, validation, and rollback between Zammad and Freshdesk. We move data and schema; workflows are rebuilt natively in Freshdesk.

Zammad logo

Zammad

Source

Freshdesk

Destination

Freshdesk logo

Compatibility

75%

6 of 8

objects map 1:1 between Zammad and Freshdesk.

Complexity

BStandard

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Zammad to Freshdesk is a directional mismatch: Zammad ships a Freshdesk import wizard but not an export path, while Freshdesk has no native Zammad import path at all. We bridge that gap using Zammad's REST API to extract tickets, users, organizations, groups, and tags, then write them into Freshdesk via the Freshdesk REST API with per-plan rate-limit handling. Zammad's time entries are immutable post-creation — we flag any tickets with time accounting for customer review before migration, so corrections happen in the source system where they are possible. SLA configurations, Knowledge Base articles, and custom Objects require Freshdesk equivalents to be provisioned in advance; we deliver a schema pre-checklist with those requirements listed. Workflows, Triggers, Macros, and Text Modules do not migrate as code; we inventory them and hand the list to your admin for Freshdesk rebuild.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Zammad logo

Zammad

What's pushing teams away

  • 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.

Choosing

Freshdesk logo

Freshdesk

What's pulling them in

  • Free tier for 1-2 agents with no credit card makes initial evaluation risk-free and appeals to startups and small support teams.
  • Per-agent pricing is predictable and scales cleanly as teams grow from Growth at $15/agent/month to Enterprise at $89/agent/month.
  • Freddy AI Copilot and Email AI Agent bring AI assistance without forcing a full platform switch, appealing to teams already embedded in Freshdesk.
  • Multilingual help desk and customer portal features serve global SMB teams without requiring enterprise-level investment.
  • Collaborators up to 5,000 included in paid plans allow non-agent stakeholders to view tickets without additional licensing cost.

Object mapping

How Zammad objects map to Freshdesk

Each row shows how a Zammad object lands in Freshdesk, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

Zammad

Ticket

maps to

Freshdesk

Ticket

1:1
Fully supported

Zammad tickets map to Freshdesk tickets with state, priority, group assignment, owner, requester, organization, tags, and full article/thread history preserved. Zammad article types (email, chat note, call log, note) map to Freshdesk conversation entries. We resolve the requester to a Freshdesk Contact and the owner to a Freshdesk Agent at migration time. The Zammad ticket number does not persist in Freshdesk — we store the original Zammad ticket ID in a custom field zammad_ticket_id__c for audit traceability.

Zammad

User (Agent)

maps to

Freshdesk

Agent

1:1
Fully supported

Zammad Agents map to Freshdesk Agents. We match by email address as the dedupe key. Agents without a matching Freshdesk user go to a reconciliation queue — the customer provisions the Freshdesk agents before record migration begins. Role permissions (Admin, Agent) map to Freshdesk's agent groups and roles. Note that user passwords do not migrate — agents receive password-reset emails from Freshdesk post-migration.

Zammad

User (Customer)

maps to

Freshdesk

Contact

1:1
Fully supported

Zammad Customers map to Freshdesk Contacts. We migrate name, email, phone, organization membership, and any custom contact fields. The Zammad customer login identity does not transfer — contacts become users in Freshdesk with a Freshdesk-specific identity. Organization membership from Zammad maps to the Freshdesk Contact's company_name field, linked to the migrated Company record.

Zammad

Organization

maps to

Freshdesk

Company

1:1
Fully supported

Zammad Organizations map to Freshdesk Companies. We preserve the organization name, domain, note, and any organization-level custom fields. Company must be created before Contact migration so that the company link is satisfied at Contact insert time. A Zammad User can belong to multiple Organizations — we map each membership to a Freshdesk Contact-Company association record.

Zammad

Group

maps to

Freshdesk

Group

1:1
Fully supported

Zammad Groups map to Freshdesk Groups. We transfer group name, email address, assignment rules, and active/inactive status. Default groups like 'Users' and 'First Level Support' are preserved with matching Freshdesk equivalents. Group-level SLA bindings require Freshdesk SLA policies to be pre-configured; we deliver the SLA mapping checklist during schema pre-provisioning.

Zammad

Tag

maps to

Freshdesk

Tag

1:1
Fully supported

Zammad's flat key-value tags attached to tickets map to Freshdesk tags on tickets. Tags are preserved as-is — there is no tag hierarchy or taxonomy in either platform. We migrate the full tag list and all ticket-tag associations. Duplicate tag names are deduplicated at the destination.

Zammad

SLA

maps to

Freshdesk

SLA Policy

lossy
Fully supported

Zammad SLAs with response and resolution time commitments tied to calendars and priorities map to Freshdesk SLA Policies. However, Freshdesk SLA Policies use a different configuration model — they are defined per requester type or company rather than globally per priority. We deliver an SLA mapping matrix listing every Zammad SLA, its calendar bindings, business hours, and escalation rules, with recommended Freshdesk SLA Policy equivalents to configure before migration.

Zammad

Custom Object / Object Attribute

maps to

Freshdesk

Custom Object or Custom Ticket Field

lossy
Fully supported

Zammad custom Objects on tickets, users, organizations, and groups map to Freshdesk custom Objects (Growth and above, beta) or custom ticket fields. We map supported field types directly (Boolean, Integer, Float, Text, Single Select, Multi Select). Custom datetime fields in Zammad cannot map to a Freshdesk custom field type — we flag these and recommend converting to Date or DateTime fields in the source before migration. Any Zammad custom Object that uses the disabled-not-deleted convention is flagged separately for review.

Gotchas + challenges

What specifically takes care here

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 logo

Zammad gotchas

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

Freshdesk logo

Freshdesk gotchas

High

API access is blocked on the free plan

High

Per-minute rate limits are account-wide and endpoint-specific

Medium

Multi-channel source types do not map 1:1 to all destinations

Medium

Custom objects created in-product cannot be accessed by other apps

Low

Contact import requires at least 10 existing tickets in the account

Pair-specific challenges

  • No native Zammad-to-Freshdesk migration path exists

    Zammad ships a Freshdesk Migration Wizard (for importing INTO Zammad FROM Freshdesk) but has no export tool in the reverse direction. Freshdesk has no Zammad import path either. The pair requires a full bidirectional API migration — we extract from Zammad's REST API and write to Freshdesk's REST API — rather than a platform-provided import wizard. This shapes the timeline because there is no single-button start; we build the migration pipeline from scratch per-instance.

  • Freshdesk API availability and rate limits vary by plan

    Freshdesk's REST API is not available on the free Sprout plan. API access requires Blossom ($29/agent) or above. Even on paid plans, rate limits apply — 700 requests per minute is typical on higher tiers, lower on entry plans. We confirm the target plan's rate limits during scoping, configure exponential backoff and batch chunking accordingly, and pre-test against a Freshdesk trial account before the production migration window. Skipping this step causes API 429 errors mid-migration, which can corrupt in-flight record associations.

  • Zammad time entries are immutable — corrections must happen in source before migration

    Once a time entry is saved against a ticket in Zammad, there is no UI or API method to edit or delete it. We flag every ticket with time accounting during discovery and recommend the customer review and correct time entries in Zammad before migration begins. After migration, Freshdesk time-slots are fully editable, but the Zammad source data cannot be corrected post-export. This is a pre-flight data quality step, not a migration limitation we can work around.

  • Freshdesk API requires a full administrator account for migration

    Freshdesk's API access for data import requires a full administrator API key. Agents and limited-admin roles cannot create tickets, contacts, or companies via the API in sufficient scope. We require confirmation that the migration uses a full-admin Freshdesk account API key before migration begins. If the customer's Freshdesk account is not yet provisioned or is on Sprout, we flag this during scoping and recommend the plan upgrade before migration starts.

Migration approach

Six steps for a successful Zammad to Freshdesk data migration

  1. Discovery and plan confirmation

    We audit the Zammad instance for ticket volume, user counts (Agents and Customers), organization count, tag inventory, SLA configurations, knowledge base articles, and custom Object definitions. We confirm the Freshdesk target plan — specifically whether it includes API access (Blossom or above required) and the applicable rate-limit ceiling. We also review Zammad's agent tier (Starter cap at 5, Professional cap at 35) to flag any agent-count risk. The discovery output is a written scope and a pre-flight checklist naming every Freshdesk object that must be provisioned before migration begins.

  2. Freshdesk schema pre-provisioning

    We deliver a schema pre-provisioning checklist to the customer before migration. This includes: Groups matching the Zammad group structure, Companies (from Zammad Organizations) pre-created or mapped during import, custom ticket fields matching Zammad custom Object field types (or flagged for conversion), SLA Policies configured per the Zammad SLA mapping matrix, and knowledge base categories matching Zammad article categories. The customer provisions these in Freshdesk while we build and validate the migration pipeline against a Freshdesk trial account.

  3. Migration pipeline build and sandbox validation

    We build the extraction pipeline against Zammad's REST API (pagination, rate-limit handling, attachment streaming) and the load pipeline into Freshdesk's REST API (batch chunking, parent-record lookup, dedupe). We run a sandbox migration using a representative sample — typically 100-200 tickets with attachments, time entries, and custom field values — and deliver a reconciliation report comparing source counts against destination counts. Mapping corrections happen here, not in production.

  4. Time-entry pre-flight review

    We extract every Zammad ticket that contains a time entry and deliver a time-entry report to the customer. The customer reviews and corrects any erroneous time entries in Zammad before migration. Once extraction begins, Zammad data is read-only in our pipeline — we do not write back to Zammad. Corrections after extraction pass begins will not be picked up unless a second extraction pass is scheduled, which extends the timeline.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Groups (created in Freshdesk first), then Agents (provisioned in Freshdesk with a reconciliation queue for unmapped owners), then Companies (from Zammad Organizations), then Contacts (from Zammad Customers with company links resolved), then Tickets (with requester, owner, group, tags, and article history), then Tags, then SLA mappings, then custom Object records. Each phase emits a row-count reconciliation report before the next phase begins. API rate-limit handling and exponential backoff run throughout.

  6. Cutover, validation, and automation inventory handoff

    We freeze Zammad writes during cutover, run a final delta pass of any records modified during the migration window, then confirm Freshdesk as the system of record. We deliver a full reconciliation report (source vs destination counts per object), a Zammad-to-Freshdesk ID mapping table, and a written inventory of every Zammad Trigger, Macro, Text Module, and Scheduler with its trigger conditions and recommended Freshdesk Automation Rule equivalent. We do not rebuild Zammad automations as Freshdesk automations inside the migration scope; that is an admin task or a separate engagement.

Platform deep dives

Context on both ends of the pair

Zammad logo

Zammad

Source

Strengths

  • Fully open-source with both cloud-hosted and self-hosted deployment options, giving complete control over infrastructure.
  • Omnichannel consolidation — email, chat, SMS, Telegram, Twitter/X, Facebook, and WhatsApp unified in a single ticket queue.
  • Per-agent pricing with generous free tier on Starter (€7/agent/month annual) and no per-contact billing surprises.
  • GDPR-compliant with ISO27001-certified German data center for hosted deployments.
  • REST API supports automation, integrations via n8n or custom scripts, and programmatic ticket/User/Organization management.

Weaknesses

  • Time tracking entries cannot be edited or deleted after creation without rewriting the associated ticket communication.
  • Per-agent pricing scales linearly — large support teams on Plus tier (€25/agent/month) approach commercial SaaS cost territory.
  • Custom Objects lack clear API documentation for read/write operations, requiring developer experimentation for integration work.
  • Feature development pace is governed by a small nonprofit team, with community feature requests frequently deprioritized.
  • WhatsApp and Facebook channels are gated behind the €25/agent Plus tier, not available on lower-cost Professional.
Freshdesk logo

Freshdesk

Destination

Strengths

  • Generous free tier with no credit card required for 1-2 agents for 6 months.
  • Per-agent pricing model is transparent and scales linearly with team growth.
  • Freddy AI Copilot integrates assistance directly into the agent workspace without requiring separate tooling.
  • Multilingual help desk and customer portal serve global teams on Pro and Enterprise plans.
  • Shared inbox, threads, and tasks keep ticket context unified across multi-channel conversations.

Weaknesses

  • Freddy AI is a separate paid add-on charged per session, making AI costs unpredictable and hard to budget.
  • Performance issues including delayed loading and duplicate tickets are recurring user complaints during high-volume periods.
  • Customization is more limited than Zendesk, with fewer workflow options and reporting flexibility.
  • Add-ons for chat, advanced routing, and custom reporting are gated behind higher tiers or separate module purchases.
  • API access is completely disabled on the free plan, blocking any programmatic data export or migration tooling.

Complexity grading

How hard is this migration?

Standard Helpdesk migration. 1 of 7 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Zammad and Freshdesk.

  • Object compatibility

    B

    1 of 7 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    7-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    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

    B

    Zammad doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Zammad to Freshdesk migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Zammad to Freshdesk data migrations

Answers to the questions buyers ask most during Zammad to Freshdesk migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Zammad to Freshdesk migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Small instances under 5,000 tickets with no knowledge base or custom objects complete in two to three weeks. Migrations with 15,000-50,000 tickets, knowledge base articles, or custom objects land at four to eight weeks. The biggest variable is Freshdesk's API rate limit — lower-tier plans require smaller batch sizes, which extends the runtime of the ticket and attachment phases. We confirm the rate limit ceiling during scoping and size the chunking accordingly.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Zammad.
Land in Freshdesk, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day