Importing from Zendesk
On this page
Bring your Zendesk tickets, archived ones included, plus users, organizations and help center into Deskwoot. Everything comes over by default, and you can choose to import less. You need your Zendesk subdomain, the email of a Zendesk admin and an API token. The import runs in the background, keeps going through Deskwoot updates and can be started again safely. Nothing in your Zendesk changes.
What comes over
- Tickets become conversations with every comment, private notes, attachments, status and priority. Archived tickets (closed for about 120 days) come too when you use an admin's API token.
- Tags become labels. Zendesk system tags (like
ar_suggest_orintent__) are left out. - Satisfaction ratings become CSAT ratings on the matching conversation.
- End users become contacts, organizations become organizations, groups become teams.
- Agents are matched to your teammates by email (see below).
- Macros with reply text become canned responses. If a canned response with the same short code already exists in Deskwoot, the imported one is left out, and Import History shows how many were left out. Ticket and user fields become custom attributes.
- Active triggers become automation rules. They arrive switched off, so no rule writes to your customers before you have checked it. Active views become saved filters.
- Help center: categories, sections and nested sections in a new help center named after your workspace, with "Zendesk" and your subdomain in brackets. Published articles stay published, drafts stay drafts.
Files and images
The import copies every file Zendesk hosts into Deskwoot: comment attachments, images inside comments, images, files and attachments of help center articles, images in macros and triggers, and the profile pictures of your contacts. Nothing stays a link to Zendesk, so your files keep working after you leave Zendesk. If your workspace has booked the Virus scan, every file is scanned before it is stored.
- If a file cannot be copied right now (Zendesk does not answer even after several tries, or the virus scanner or Deskwoot's storage cannot be reached), the import ends with Imported partly. Start the import again to copy it. When 3 files in a row from the same server do not arrive, the run skips that server's files for 2 minutes and then tries one of them again. If that file arrives, the run carries on with the server's files. If not, it waits another 2 minutes. That way a server that does not answer cannot hold up the whole import, and the next run tries the skipped files again.
- A file that no run can copy is left out, and the import still finishes. This includes a file that could not be reached in 3 runs, so a server that never answers cannot keep your import at Imported partly. Only runs in which the file could not be reached count, not runs in which the virus scanner or the storage was down. The count starts over when the last of those runs was more than 7 days ago, and deleting any import of your workspace clears it. Import History lists these files under Files that could not be imported with the reason, for example too large (over 25 MB, profile pictures over 2 MB), a file type that is not allowed, refused by the virus scan or no longer available at Zendesk.
- Images that a message or an article loads from another website, such as your own, stay as they are.
What stays internal
Deskwoot keeps everything private that visitors who are not signed in could not read in Zendesk:
- An article that Zendesk shows only to a user segment (signed in users, agents and admins, or users with certain tags or in certain groups) is filed in an internal category next to its section, named after the section with "(internal)" at the end. A published article that visitors who are not signed in cannot see for another reason goes there too.
- A help center language that visitors who are not signed in cannot read, for example because your Zendesk help center asks everyone to sign in, arrives as internal with all its categories and sections. Import History shows how many languages were imported this way.
Internal categories and their articles are visible only to your team in the dashboard. They never show on the public help center, in the sitemap, in the chat widget or to Fynn, the AI bot.
Before you start
- In Zendesk, create an API token under Admin > Apps and integrations > APIs > API tokens.
- Use the email of a Zendesk admin. Only an admin may read the full ticket export that includes archived tickets, and only an admin sees every brand, which the import needs to copy files from a brand's own help center address.
- Invite your teammates to Deskwoot with the same email they use in Zendesk. You can also do this later.
How to import
- In Deskwoot, go to Settings > Import & Migration. Only admins can import.
- Pick Zendesk.
- Enter the Subdomain (
your-companyfromyour-company.zendesk.com), the Email and the API Token. - Under What to import, choose what comes over. Everything is on by default. To import only newer tickets, pick a day under Only tickets created on or after.
- Click Start Import.
While the import runs
- The import runs in the background, so you can close the page. The import page shows the step it is on and how many records are done. After a few minutes of measuring, it also shows the speed.
- Deskwoot updates and server restarts don't stop it. It continues where it stopped. If a run crashes or gets stuck 3 times in a row without getting any further, the import stops and says so. Start it again to continue.
- One import runs per workspace at a time. Start the next one when the current one has finished.
- To stop an import, click Cancel import on the import page and confirm with Cancel and delete. The import stops and what it imported so far is deleted. A conversation someone wrote in since then keeps those new messages.
- When Zendesk's API limit is reached, the import waits and then carries on. The Zendesk form shows the limit of each Zendesk plan before you start. If Zendesk stops answering or refuses a list, the import keeps what it already read, finishes the other steps and ends with Imported partly and the steps that stopped early. Start the import again to continue.
Your agents' tickets and replies
A ticket assigned to a Zendesk agent goes to the teammate with the same email, and their comments show them as the sender. If that person has no Deskwoot account yet, the ticket arrives unassigned and their comments show their name with (imported).
When they join your workspace later with the same email, Deskwoot hands them their work automatically: their unassigned imported conversations are assigned to them and they become the sender of their comments. Open, pending and snoozed conversations come with one notification for all of them. Resolved ones are assigned quietly. No status changes, and your customers see nothing. A conversation that someone in Deskwoot has already held stays as it is.
Imported conversations stay quiet
Imported conversations are history, so they stay quiet until the customer writes again or someone on your team replies in Deskwoot. Until then Deskwoot sends the customer nothing from them (no farewell message, no satisfaction survey), starts no SLA clock and does not resolve them automatically. Imported conversations never count toward your plan's monthly conversation limit and are never locked by it, also after the customer writes again. Resolving or reopening one by hand fires no webhook and no automation rule. From the first new message on, the conversation works like any other, except that Fynn, the AI bot, never answers in an imported conversation.
After the import
- Imported conversations go to your first email inbox, so you can reply right away. Without an email inbox, open a conversation and pick an inbox in the This conversation has no inbox notice before you reply.
- Imported automation rules arrive switched off. Check them and the saved filters (Zendesk conditions can be more detailed than Deskwoot filters), then switch on the rules you want. Import History links to them with Review and switch them on.
Frequently asked questions
The import says archived tickets are missing. Why?
Zendesk refused the full ticket export because the email belongs to an agent, not an admin. The import then reads the normal ticket list, which leaves out archived tickets, and ends with Imported partly. Start the import again with an admin's email and API token to add the archived tickets.
Does the import change anything in Zendesk?
No. It only reads from Zendesk.
Can I start the import again?
Yes, that is safe. A new run finds what is already in Deskwoot and skips it, so tickets and contacts are not duplicated. It brings in what is new or was missing. Rules and filters you edited after the first import stay as you left them. Help center articles your team edited in Deskwoot keep their new text, and a new run never publishes an article you unpublished or made internal. If Zendesk has since hidden an article, a new run makes it internal in Deskwoot too, even if your team moved it to another category. If Zendesk has since unpublished an article, a new run unpublishes it in Deskwoot too, but only if your team has not edited it. Keep in mind that conversations, contacts and notes you deleted or erased in Deskwoot since the last import come back if Zendesk still has them, and so do contacts you merged.
Can I import only part of my data?
Yes. Under What to import, everything is on by default, and you can switch off Tickets, Contacts and organizations, Knowledge base (the help center), Canned responses (from your macros) and Satisfaction ratings. With a day under Only tickets created on or after, only tickets created on or after that day come. Ratings come only with the tickets they rate, so that option is greyed out without the tickets. Teams, agents, fields, automation rules and saved filters always come. If you leave out the contacts, each imported ticket still brings its own contact. Import History shows under each import what was not selected and the start date. To get the rest later, start an import with everything selected: it skips what is already in Deskwoot and brings in what was left out, including the organization and fields of the contacts your tickets brought in.
How are ticket statuses mapped?
New and Open become Open, Pending stays Pending, On hold becomes Snoozed, Solved and Closed become Resolved.
Can I import two Zendesk accounts into one workspace?
Yes, one after the other. Deskwoot remembers which Zendesk each ticket and contact came from, so ticket 57 of one account never mixes with ticket 57 of the other.
Why is an article in a category ending in "(internal)"?
Zendesk showed that article only to a user segment, or visitors who are not signed in could not see it. Deskwoot decides visibility per category, so it keeps the article in an internal category next to its section. To publish it, move it to a public category in the article editor.
Does Deskwoot keep my API token?
Only while the import runs, stored encrypted, so it can continue after a restart. It is removed when the import ends.
Some files are missing. Why?
Open Import History. If the import ended with Imported partly, some files could not be fetched yet: start the import again to copy them. Files listed under Files that could not be imported are left out for good, each with its reason, for example too large or no longer available at Zendesk. A file that Zendesk did not deliver in 3 runs is listed there too.
How do I undo an import?
In Import History, click the trash icon next to the import. This deletes the conversations and contacts it created, together with the files it copied for them. A conversation someone wrote in since then stays with those new messages, without the imported ones, and a contact who still has a conversation stays too. Teams, agents, canned responses, labels, help center articles and other settings stay. Deleting continues after a restart, and you can start a new import once it is done. While another import runs, an import cannot be deleted. If you imported from Zendesk more than once, delete the imports from the newest to the oldest: while a newer Zendesk import exists, Deskwoot asks you to delete that one first.
Was this guide helpful?
Keep reading
- Deleting your accountHow to delete your Deskwoot account and what happens to your dataRead guide
- Importing from IntercomMove Intercom conversations, contacts and every help center collection to Deskwoot with one access token.Read guide
- Importing from CrispMove Crisp conversations from every inbox, contacts and your knowledge base in all languages to Deskwoot.Read guide
Ask Fynn about this guide
Get a short answer from this guide and the rest of the help center.