How to Migrate from Zendesk to Freshdesk (2026)
Moving a support operation from Zendesk to Freshdesk is less like copying files and more like relocating a house: the furniture travels intact, but the wiring, the plumbing, and the smart-home rules have to be reconnected on the other end. Your tickets, contacts, and knowledge base can move across almost completely; the automations that quietly ran your queue — macros, triggers, SLA clocks, business hours — mostly do not, and you rebuild them in Freshdesk's own vocabulary. This guide walks through what actually moves, what you have to recreate, the tooling that does the heavy lifting, and the honest bits about downtime and cost, so you can plan the switch without nasty surprises on go-live day.
The two ways to move data
There are really only two credible routes, and it helps to be clear-eyed about both before you pick one.
Freshdesk's native import is deliberately narrow. Out of the box, Freshdesk lets you bulk-import contacts and companies from a CSV, and that is essentially the limit — there is no native CSV importer for tickets. Freshworks' own import documentation covers customer data only, and community threads confirm that historical tickets require either the API or a third-party app. (A quirk worth knowing: you need at least ten tickets already in the account before the contact importer will run.) So if all you're bringing over is a customer list, native import is free and fine. If you want years of ticket history, it won't get you there alone.
A dedicated migration tool moves the whole help desk. For everything else — tickets with their full conversation threads, attachments, agents, and knowledge base — the standard tool is Help Desk Migration (HDM, by Relokia). It connects to both platforms over API, maps the objects, and runs an automated transfer with a free demo first. Most teams migrating a real support history use HDM (or an equivalent) rather than hand-rolling the Zendesk import API.
What moves vs what you rebuild
This table is the heart of the migration. The left column moves automatically with a tool like HDM; the right column is manual rework in Freshdesk regardless of tooling.
| What moves automatically (via HDM) | What you rebuild by hand in Freshdesk |
|---|---|
| Tickets, with public and private notes | Macros → Scenarios (automations) |
| Ticket attachments and inline images | Triggers → Automations (rule engine) |
| Agents and groups | SLA policies and targets |
| Contacts and companies | Business hours / operating calendar |
| Ticket, organization, and contact custom fields | Email notifications and templates |
| CC recipients on tickets | Canned responses / saved replies |
Created_at, Updated_at, Closed_at timestamps | Channel and integration configuration |
| Knowledge base articles, folders, categories, tags | Reports, dashboards, and saved views |
The mapping in bold is the one people most often get wrong. In Zendesk, a macro is a one-click bundle of actions an agent applies to a ticket; in Freshdesk the equivalent is a scenario automation. A Zendesk trigger — a rule that fires the moment a ticket is created or updated — maps to a Freshdesk automation in the "Ticket creation" or "Ticket updates" rule sets. The concepts line up cleanly, which is good news, but per both Help Desk Migration's guidance and Freshworks' migration notes these workflow objects do not port — you re-author them in Freshdesk's rule builder. Treat that as a feature, not a bug: it's the natural moment to prune the macros and triggers that accreted over years and rebuild only the ones you still use.
Step by step with a migration tool
Assuming you're using Help Desk Migration for the ticket-and-KB move, the flow is consistent and doesn't require code.
- Connect the source. Authenticate your Zendesk account (subdomain plus an admin API token) so the tool can read tickets, users, and articles.
- Connect the target. Authenticate Freshdesk the same way — your Freshdesk domain and an API key from an admin profile.
- Map the objects and fields. Match Zendesk statuses, priorities, ticket types, and custom fields to their Freshdesk counterparts. This is where you decide, for example, which Zendesk group becomes which Freshdesk group.
- Run a free demo migration. HDM moves a small sample so you can inspect how tickets, notes, and fields land before paying. Check threading, attachments, and custom-field values here.
- Run the full migration. Kick off the complete transfer. HDM offers interval migration — you can pause the run up to five times, five days each — so you can align the bulk transfer with quieter business hours.
- Run a delta migration. After the full pass, a delta run captures any tickets that were created or updated while the migration was in progress, so nothing that happened mid-move is lost.
The screenshot above is Help Desk Migration's own tool page with the Zendesk→Freshdesk direction selected — it's the migration product, not a running transfer of your data. The actual wizard sits behind a sign-up wall, and the Freshdesk-side import screens require your own Freshdesk account, so the field-by-field mapping described here is drawn from HDM and Freshworks documentation rather than a live session.
The honest bits: downtime, cost, and what breaks
Downtime. The reassuring part: a tool-based migration runs over the API while both Zendesk and Freshdesk stay operational, so there's no hard outage. In practice your team keeps answering tickets in Zendesk during the transfer, then cuts over to Freshdesk during a low-volume window. The delta migration is what makes that safe — it sweeps up anything that changed while the bulk move ran. What you should plan for is a short freeze on agent-side config changes during cutover, and a period where agents are learning Freshdesk's UI.
Cost. Native import is free but limited. For HDM, pricing scales with record volume: by one published estimate, roughly $100 for 1,000 records and around $514 for 10,000 records, per eesel AI's migration analysis. Timelines run from 1–3 days for small data sets to 1–3 weeks for 100,000-plus tickets. Get a live quote from the demo — your custom fields and add-on options move the number.
What genuinely breaks (temporarily). Every automation object in the right-hand column of that table goes dark until you rebuild it. On day one in Freshdesk you'll have your tickets and history but no SLA clocks running, no triggers routing new tickets, and no macros for agents to apply. This is normal, but it means the rebuild isn't optional cleanup — it's part of the critical path. Budget real time to recreate your triggers as automations and macros as scenarios, re-enter SLA targets, and re-set business hours before you route live traffic through Freshdesk.
Where an AI layer fits — after the move, not instead of it
Once you're on Freshdesk, you don't have to rebuild every old Zendesk rule one-for-one. The migration is a rare chance to ask which of those macros and triggers were compensating for work a person still had to do by hand. This is where an AI agent layer earns its place, and it's worth weighing the build-versus-buy tradeoff honestly before you commit. The broader category of AI agents for customer service exists to handle the reasoning-heavy tickets that no static trigger can.
Macha is one such layer, and to be clear about what it is: it runs on top of the Freshdesk you just migrated to as a native connector — it does not replace Freshdesk, its scenarios, or its SLA engine. You connect Macha to Freshdesk with your domain and API key, and it reads and writes the same tickets Freshdesk holds: drafting or sending grounded replies, triaging by intent so tickets land in the right group, and looking up order or account status through a custom tool that turns a REST API into something the agent can call. Two honest caveats: Macha's connector is for Freshdesk specifically — not Freshchat, Freshservice, or Freshcaller — and credits are consumed per AI action, not per resolution, which the pricing page breaks down. The clean division of labour is to let Freshdesk own the record and the rules, and let an agent do the reading-and-answering the rules can't.
FAQ
What actually migrates from Zendesk to Freshdesk? With a tool like Help Desk Migration: tickets (with public and private notes), attachments, agents, groups, contacts, companies, custom fields, CC recipients, key timestamps, and your knowledge base (articles, folders, categories, tags). Freshdesk's native importer, by contrast, only handles contacts and companies via CSV — it has no native ticket import.
Do Zendesk macros and triggers move to Freshdesk? No. Macros, triggers, automations, SLA policies, and business hours do not port. You rebuild them in Freshdesk, where Zendesk macros become scenario automations and Zendesk triggers become automations in the ticket-creation and ticket-update rule sets. The concepts map cleanly, but the objects are re-authored by hand.
Is there downtime during the migration? Not a hard outage. A tool-based migration runs over the API while both platforms stay live, and a delta migration captures anything that changed mid-transfer. The practical "downtime" is the cutover window and the time your team spends learning Freshdesk and rebuilding automations.
How much does a Zendesk-to-Freshdesk migration cost? Native contact import is free but limited. A paid tool scales with volume — roughly $100 per 1,000 records and about $514 per 10,000 records by one published estimate — with timelines from a few days to a few weeks for very large data sets. Always confirm against a live demo quote.
Can I add AI to Freshdesk after migrating without replacing it? Yes. An AI agent layer like Macha connects to Freshdesk as a native connector and runs on top of your migrated help desk and its rules — it doesn't replace them. It helps handle the repetitive tickets so you rebuild fewer brittle macros and triggers.
Planning your move? Start a free trial of Macha and connect it to Freshdesk the moment your migration lands.
Add AI agents to your Zendesk
Macha resolves tickets end to end, right on top of Zendesk — no migration.
Shopify
Stripe
Slack
Notion
Google Workspace
Confluence

