How to migrate from Zendesk without a big-bang weekend

A practical plan for moving a support team off Zendesk group by group, with the full history, a parallel run and a way back.

A woman carrying moving boxes in a living room
Photo: Vitaly Gariev / Unsplash

Most helpdesk migrations fail the same way: everything is switched on a Friday night, the rules behave a little differently on Monday, and the team spends a month firefighting. There is a calmer way, and it starts with not switching everyone at once.

1. Collect what you need first

Before the first import, gather four things:

  • An admin API token for your Zendesk account, read-only if possible. Lower roles cannot read SLA policies, schedules, every view and macro, or the incremental export.
  • A list of systems that call the Zendesk API: internal services, back-office tools, scripts, webhooks that call back into Zendesk. Each will need a new base URL and token.
  • Every site and app that embeds the Zendesk widget.
  • Your renewal date and notice period. They set the timeline, not the software.

2. Import everything, then look at the report

The ChaosDesk importer reads your account through the Zendesk API and rebuilds it in dependency order: brands and addresses, groups, roles, users and organizations, fields and forms, schedules and SLA policies, rules, webhooks, then tickets with their comments, attachments and audit history, and finally CSAT and the help centre.

The first run is a dry run. Read its reconciliation report: counts per object, records that failed, and rules with a condition or action that could not be mapped. Such rules are imported inactive and listed, never dropped silently, so you decide what happens to each.

Imported history fires no triggers, notifications or webhooks. Customers hear nothing while you test.

3. Run both side by side

Turn on delta imports every few minutes. ChaosDesk now follows Zendesk closely, and the team leads of the first group can open their views, forms and SLAs and compare them with what they see in Zendesk, on real tickets.

This is where small differences surface: a view that sorts differently, a macro that depends on a field nobody uses any more. Fix them now, while nothing depends on ChaosDesk yet.

4. Go live one group at a time

For each group that moves:

  1. Point its support addresses at ChaosDesk (email forwarding).
  2. Run a final delta import.
  3. Turn off that group’s triggers in Zendesk.
  4. Point the integrations it uses at the Zendesk-compatible API.
  5. Replace the widget snippet with the ChaosDesk messenger.
  6. Move the agents.

Keep Zendesk read-only for that group during a fallback window. If something is wrong, the Migration center rolls the group back.

5. Replace what cannot move

Your own scripts move with a base URL change. Integrations you did not write and that are hard-wired to *.zendesk.com cannot: the Zendesk app for Zapier, Fivetran’s Zendesk connector, the Zendesk mobile SDKs. List them early and decide on the replacement for each (webhooks, the REST API, the messenger in a WebView).

How long does it take?

For a small team, the import and a short parallel run fit in a day. Larger teams usually move one group per week, which keeps every Monday quiet.

If you have more than 20 agents, we plan the waves with you for free. See how switching works.

Zendesk is a trademark of Zendesk, Inc. ChaosDesk is not affiliated with Zendesk.

Written by The ChaosDesk team

We build ChaosDesk, a helpdesk that works the way Zendesk does at a fraction of the price. We write about what we learn moving support teams and running support ourselves. About us

Bring your whole Zendesk history. Keep your way of working.

Import tickets, users, rules and the help centre, run both side by side, and switch when your team is ready.

Send us a line from your work address and we will add you to the early access list.