Since we started Helpando.it about two years ago we’ve helped more than 200 clients migrate their data from over 30 different source systems, such as Freshdesk, Salesforce, Kayako, Desk.com to Zendesk. I wanted to share what we’ve learnt about Zendesk migrations, as a summary of our experiences and the best practices we’ve established.
I’ve broken it into 2 parts.
In Part 1, we’ll discuss the setup for a data migration:
- Why and when to migrate your data to Zendesk? What are your likely pain points?
- What source systems can be used for a Zendesk migration?
- And, importantly, what data can be migrated.
In Part 2, we discuss how your data migration with us will work:
- The two migration strategies: staggered vs. full switch over
- How does a data migration work?
- The most common source systems for migrations.
- Migrating from a custom data source.
- Will your account be affected while the zendesk data migration is going on?
- How long does a migration take?
We’ve encountered several reasons why our customers want to migrate their support requests to Zendesk.
References and availability of past support requests
Imagine the following scenario: You’ve recently moved to Zendesk, a customer reaches out via email, or calls you and makes a reference to a ticket ID from your legacy system. Your agents need to be able to find this old ticket using the legacy ID to get an understanding what the request is about. It is likely your agents do not have access to the old system anymore, and they simply have no idea what the customer is talking about.
Even if they have access to the legacy system it would take a significant amount of time to open the software and search for the old reference, pull the data in question and use it to write a response in Zendesk. Migrating your data to Zendesk, all your agents need to do is to use the search functionality to find the old ticket ID.
You probably used the system you are switching from to Zendesk for a couple of months, if not years. The ticket creation dates, in combination with the ticket solved dates, can be migrated to Zendesk and provide valuable insights into your customer service. Migrating your data to Zendesk means you do not lose your reporting data from legacy support requests. Using Insights, you can combine your migrated data with reporting data coming in from native Zendesk tickets.
According to the country you live in you might be forced to store your data for a number of years for legal reasons. It’s worth looking into, tough customer loyalty is enough of a reason.
What source systems can be used for a Zendesk migration?
Over the years we’ve migrated data from more than 30 different systems to Zendesk.
To say it short: If there is any way to access/export data from your current system then we can do the migration.
Using an API
In case your source system has an API (a programmable interface to access your data), all we need to access and migrate your data is an admin account for your legacy system.
These are the common solutions our customers migrated from in the past which have an API:
In case your system uses a MySQL database and you or your server administrator can easily export a SQL dump, we can work with it. Often times this is the case when you were using a custom solution. As well, for the following systems, the preferred data export to work with is an SQL dump:
CSV / XML / XLS / HTML
The easiest way to export your data from your legacy system is to use a built-in function to generate a CSV export. You usually do not need the help of a technical person to create this export as many systems provide a CSV export functionality out of the box. Here are some examples:
- Sage CRM
- WordPress (Knowledge base / Help Center content)
- Mindtouch (Knowledge base / Help Center content)
Even you do not see your current ticket solution listed above, if there is any way to extract your data, we can migrate it to Zendesk.
What data can be migrated?
You can see a list of what entities can be migrated in the Zendesk API documentation.
In general there are two types of migrations, a ticket migration and a Help Center / Knowledge Base migration.
The most common entities to migrate when changing from a self developed system or from a a Zendesk alternative to Zendesk, are the tickets. Tickets themselves can depend and relate to many different entities. The most basic ticket migration though only needs two resources to be migrated, Tickets and Users.
Ticket data holds data which is directly saved on the ticket level, such as:
- Creation date
- Resolution date
- Custom ticket field values
- And more…
A ticket itself is opened by a customer (an end-user in Zendesk), can be assigned to an agent or an admin and can have various comments by the customer, end-users, agents and/or admins.
When creating a ticket via the Zendesk API those Users already need to be existing in Zendesk (that’s why migrating users is always the first step).
User data holds data about your customers and your support agents, such as:
- Phone number
- Custom user fields
- And more…
Tickets and users are mandatory for every ticket migration, they are the most basic entities to migrate. Usually migrations are more complex and also include some of the following entities, all of them being optional. The most common are:
Ticket & Comment attachments
A ticket or a ticket comment can have multiple attachments, sent either by an end-user to an agent or vice versa. Both type of attachments can be migrated. In case you migrate from CSV files, the CSV itself usually only contains the attachment file name. A .zip file usually contains the attachments itself. Sometimes attachments are also stored as binary data directly in the database.
In Zendesk multiple end-users can belong to the same organization. Larry Page and Sergey Brin can be individual end-users but both belong to the organization “Google”.
Just as end-users can be associated to organizations, your zendesk agents and admins can be grouped together in Zendesk groups, such as “Spanish Support”, “First Level”, “Second Level”
Macros are pre-written reusable text templates also called “canned responses”. Many different ticketing systems support macros. Also if you used to use an excel sheet with your canned responses, we can work with your data and import your macros into Zendesk.
Business rules (Zendesk to Zendesk migrations only)
In case you are migrating from Zendesk to Zendesk we can migrate your existing triggers and automations.
Views (Zendesk to Zendesk migrations only)
In case you are migrating from Zendesk to Zendesk we can migrate your existing views.
Dynamic content (Zendesk to Zendesk migrations only)
In case you are migrating from Zendesk to Zendesk we can migrate your existing dynamic content items.
The two migration strategies: staggered vs. full switch over.
In general there are two strategies to bring over your tickets:
Full switch over
When doing a full switch over you basically bring over all tickets, independent of their status, in one single migration. This strategy makes sense either if your migration would not take too much time (hundreds or thousands of tickets with none or a minimal volume of attachments) or in case all of your tickets are closed.
Imagine you’d want to migrate half a million closed tickets and about 2000 non-closed tickets from your current system to Zendesk, with many of those tickets have attachments. The migration might take up to two days depending on the attachment size. By the time the migration finishes you probably already have new tickets which came into the old system and which were not part of the migration. To avoid a long migration time and losing data, the preferred strategy in this case is a staggered migration.
The process is:
- On any given day, do a first data export and only migrate all closed tickets to Zendesk.
- On a specific day and time, do a new export of all tickets that were not yet migrated, closed and non closed tickets.
- Redirect incoming emails and all other channels to Zendesk.
- Doing a quick migration of all tickets that were not yet migrated, closed or non-closed tickets.
How we work to make you migration smooth and painless
It’s worth mentioning how we work as we discuss handling a migration. Before any work is done we create a statement of work, containing the deliverables of the data migration, costs and timeframe.
You would then create a user with role “admin” for us to we can use the Zendesk API to write data into your account.
If you are migrating from another software solution which provides an API (e.g. Zendesk, Desk.com, Uservoice, etc.) we also need an admin account for your source system.
In case you migrate from a set of CSV files or an API dump you will need to provide us with your data.The archived data can be sent in numerous forms, we’ll work that out with you, depending on the size of the archive.
Migration of non ticket data
Once we get green lights we migrate all data except tickets. We would start with migrating the entities that are not dependent on any other entities, in the following order:
- Migration of groups (optional)
- Migration of organizations (optional)
- Migration of ticket fields (optional)
- Migration of users (mandatory) and user fields (optional)
- Test migration of 10 or 20 randomly selected tickets
- Approval of test tickets or change requesting changes in ticket format
- If test tickets approved -> Migration of all tickets (is complete switchover) or migration of closed tickets only (if staggered migration)
- (if staggered migration) -> migration of remaining tickets on an agreed day and time whenever you switch over to zendesk
The most common source systems and how they migrate.
Zendesk to Zendesk
When migrating from one or multiple zendesk accounts to one Zendesk target account we will use the API on both sides, all you need to do is to add us as admins on all involved Zendesk account (no need to provide any data to us).
A preferred Zendesk partners, We have a direct connection to Zendesk and can easily have the API limit increased, meaning that after the initial scoping and preparation we can perform the actual migration pretty quickly. About 500-1000 tickets per minute.
Desk.com to Zendesk
Desk.com, like Zendesk, provides an API. Unfortunately there is a 300 requests per minute limit on the Desk.com API which means that migrations can take quite long.
When migrating from Desk.com we will ask you to create a filter which lists all tickets that you want to be migrated from Desk to Zendesk.
Freshdesk to Zendesk
Freshdesk provides an export functionality which generates .xml files which we can work with.
The most common files we will need from your freshdesk installation are:
- Tickets.xml (might be multiple files depending on the amount of tickets you have)
- Groups.xml (optional)
- Customers.xml (optional)
Salesforce to Zendesk
There’s multiple ways to extract CSV data from your Salesforce account. No matter if you use a third party solution like dataloader.io or you find another way to extract CSV, we can work with the files you provide us with.
The most common files we will need from your salesforce installation are:
- histories.csv (optional)
- accounts.csv (optional)
Kayako to Zendesk
Kayako stores it’s data in a MySQL database. All you will need to do is to send us your full Kayako database and your ticket attachments in case they are stored in a file system and not directly in the database.
Migrating from a custom data source
Many of our past customers had at one point developed their own help desk or ticketing system and wanted to switch to Zendesk. No matter how your data structure looks, if you use MySQL or Postgres as a database, if you provide the CSV or XML files, we can migrate you over to Zendesk.
After having a look at some of your sample data we usually can give a quote. We will then make suggestions how to map your data to Zendesk and deliver several test migrations to verify the format of your users, tickets, etc.
Your Zendesk account while the data migration is going on
Don’t worry. While the data migration is going on, your account won’t be affected. We are using the Zendesk API to read and write data from or into Zendesk accounts. Except for new users and tickets showing up, there will be no effect on your Zendesk account. Your agents can keep working and probably won’t even notice that something is going on in the background.
The time the migration takes
The time your migration will take depends mainly on these three factors:
How many users/tickets are being migrated?
Are ticket attachments being migrated and how many GB’s of attachments are included?
In case we read from a source system with an API, what is the system’s API limit?
Usually a migration of closed tickets does not take longer than a couple of hours, unless you have millions of tickets.
And everything else
That’s most of it. We’ve done so many migrations at this point that we’ve probably seen your challenge before and can deliver your data source to Zendesk.
If any that sounded complicated, or if you are unclear about any of the points we’ve discussed above, please reach out to us. We’re passionate about Zendesk data migrations (and online customer service in general). We’ve seen so many of our customers go from overwhelmed and nervous, to blissful and appreciative for the solutions we provide and usually with a quick turnaround.