A Zendesk migration to Gleap takes three kinds of work: importing your data, moving or rebuilding your configuration and switching your channels. Gleap’s Zendesk importer covers the data: companies, contacts and tickets with their comments and attachments. This guide lists what it brings over, what you move yourself and a cutover plan that keeps your team answering customers throughout.
We checked the importer in Gleap’s product code and Zendesk’s documentation on September 26, 2026. If you are still comparing the two products, start with the Gleap and Zendesk comparison and Gleap pricing.
What the Zendesk importer brings over
| Zendesk | In Gleap | What is included |
|---|---|---|
| Organizations | Companies | Name, first domain, organization fields as custom data, the Zendesk ID and the external ID when one is set |
| End users | Contacts | Name, email, phone, language, time zone, created date, tags and user fields as custom data; each contact is linked to its default organization |
| Tickets, including closed and archived ones | Inbox tickets | Subject, description, tags, company, the original created and updated dates and the Zendesk ticket ID |
| Ticket status | Status | New and open become Open; pending and on-hold become In progress when your inbox has that lane; solved and closed become Done |
| Ticket priority | Priority | Low stays Low, normal becomes Medium, high and urgent become High |
| Assignee | Assigned teammate | Set when a Gleap teammate has the same email address |
| Comments | Messages | The requester’s comments become customer messages, other public comments become agent replies and private comments become internal notes |
| Attachments and inline images | Message attachments | Copied into Gleap’s private file storage, up to 25 MB per file and 20 files per message |
A few details matter for planning:
- Identity. A Zendesk user with an external ID becomes a Gleap contact with that user ID, which matches the ID you pass to the Gleap SDK. A user without one is matched by email to the contact that already uses that address, the same contact a new email from that customer would reach. End users with neither are skipped in the contacts step; their tickets still import, and each such requester gets one guest contact that all their tickets share, on every run.
- Agents. The contacts step imports end users only. Agent comments show the Gleap teammate with the same email address, or the Zendesk agent’s name when there is no match.
- Suspended users. A suspended Zendesk user becomes a blocked contact in Gleap.
- Archived tickets. Zendesk archives tickets 120 days after they close. The importer reads Zendesk’s incremental ticket export, which also returns archived tickets, so older history comes along.
- Attachments. Files and images pasted into comments are copied with their message. Files that Zendesk’s malware scan flagged are skipped, and a file that cannot be copied is skipped while its message still imports. Comment text comes over as plain text, without its formatting.
- Rate limits. Zendesk allows 10 requests per minute on its incremental export endpoints. When Zendesk asks the importer to slow down, it waits the time Zendesk gives and retries, so a large account imports over a longer period in the background.
What does not move
The importer copies data. It does not clone your Zendesk workspace. Plan these items separately:
| Item | What to do |
|---|---|
| Help center articles | There is no Zendesk article importer. Move articles with Gleap’s CSV article import or paste them into the editor (step 4 below) |
| Help center links | Zendesk article addresses under /hc/ do not exist in Gleap. If you move a custom help center domain, set up redirects from the old addresses on your side |
| Ticket forms and custom ticket fields | Custom field values are not imported; each ticket keeps its Zendesk ticket ID. Recreate the fields you still need in Gleap |
| Macros, triggers, automations, views and SLA policies | Rebuild the rules you still need with Gleap workflows and settings |
| Satisfaction ratings and reporting history | Export the reports you want to keep before you close Zendesk |
| Agent accounts, groups and roles | Invite your team to Gleap and set up teams and roles there |
| Channels and phone support | Email addresses, chat and messaging channels move at cutover. If you use Zendesk for phone support, plan that separately |
Before you start
Prepare five things before the first import:
- A Zendesk admin. The importer connects to Zendesk with OAuth: you click Connect Zendesk, a Zendesk admin approves read access, and Gleap starts the import. The access lives only in the import job, and Gleap revokes it when the import ends.
- Your Zendesk subdomain, such as acme for acme.zendesk.com.
- Your Gleap account and hosting region. You choose EU or US hosting when you sign up for Gleap.
- Your team. Invite teammates with the same email addresses they use in Zendesk, so assignees and replies map to the right people.
- Your inbox lanes. Keep an In progress lane in the inbox if you want pending and on-hold tickets to stay separate from open ones.
If you use an API token instead
The import dialog keeps an agent email and API token form behind “Use an API token instead”. Zendesk is retiring API tokens in favor of OAuth. According to its announcement, accessed September 26, 2026: since July 28, 2026, tokens unused for 30 days are deactivated, and accounts created on or after that date cannot create or use API tokens at all; from October 27, 2026, accounts can no longer create new tokens; and on April 30, 2027, all API tokens stop working. Only Zendesk admins can create tokens, under Admin Center, Apps and integrations, APIs, API tokens (Zendesk API access guide). Use Connect Zendesk where you can.
Step by step
- Import contacts and companies first (optional). In Gleap, open Contacts, click the three-dot menu and choose Import from Zendesk. Enter your Zendesk subdomain and click Connect Zendesk, then approve access in Zendesk. You return to Gleap, and the import runs with a progress bar. This step imports organizations and end users only.
- Import tickets. Open the Inbox, click the three-dot menu at the top of the inbox, choose Data import and then Zendesk. The menu is visible to teammates with access to the project settings. Enter your subdomain, click Connect Zendesk and approve access. The importer brings organizations first, then contacts, then tickets with their comments and attachments. It runs in the background, so you can close the dialog and come back to check its progress.
- Check a sample. Open ten tickets of different ages and statuses. Check the thread, the internal notes, the attachments, the contact, the company, the assignee and the dates.
- Move your help center. Export articles with the Zendesk Help Center API, which returns each article’s body as HTML. Save them as a CSV file with a title, description, HTML content, collection ID and collection title for each article. In Gleap, open Help center, click Importer, choose Import from CSV and match your columns to Gleap’s fields. Articles are published unless you add a Draft Status column set to true, which imports them as drafts to review first. Images linked in the HTML are copied into Gleap when they are publicly reachable. You can also paste a single article as HTML or Markdown in the article editor.
- Set up answers and routing. Recreate the workflows your team still needs and connect your articles to Kai, so it can answer routine questions from the first day.
- Connect your channels. Install the Gleap SDK for in-app chat and bug reports, forward your support email address and connect other channels.
- Run the final import and switch. See the cutover plan below.
How long the import takes
The importer reads tickets in pages through the incremental export, requests each ticket’s comments and copies the attachments. The pace depends on your ticket count and on your Zendesk plan’s API limit. Zendesk’s rate limits page, accessed September 26, 2026, lists 200 requests per minute on Team plans, 400 on Growth and Professional, 700 on Enterprise and 2,500 on Enterprise Plus or with the High Volume API add-on.
As a rough lower bound, 50,000 tickets at 200 requests per minute need more than four hours for the comment requests alone. Start the import early in the day and let it run in the background; the dialog shows its progress.
Common problems and how to avoid them
| Problem | Cause | What to do |
|---|---|---|
| Connect Zendesk says the authorization expired | The approval took longer than 10 minutes, or another teammate started it | Start again from the same dialog and approve within a few minutes |
| A reply shows the Zendesk agent’s name instead of a teammate | The teammate’s Gleap email differs from their Zendesk email | Invite teammates with their Zendesk email before you import |
| Some end users are missing from Contacts | They have neither an email address nor an external ID in Zendesk | Their tickets still import with a guest contact; add an identifier in Zendesk first if you need them as contacts |
| Pending tickets show as Open | The inbox has no In progress lane | Add the lane before you import |
| A file is missing from a message | It is larger than 25 MB, the message has more than 20 files or Zendesk flagged it as malware | Keep Zendesk available, read-only, for reference |
| The API token is rejected | Token access is off, the token was deactivated after 30 days without use or the account was created on or after July 28, 2026 | Use Connect Zendesk instead |
| A ticket is missing its latest reply | It was imported before the reply was written, and later runs do not update imported tickets | Finish open tickets in Zendesk, or copy the last reply by hand |
Plan the cutover
The first import brings your history. A later run adds tickets created since then, but it does not update tickets it imported before. That shapes the cutover:
- Run the first import early to check the mapping and bring over closed history.
- Keep working open tickets in Zendesk until you switch. Tickets that were open during the first import keep that state in Gleap.
- Switch your channels to Gleap on a quiet day: the widget, the email forwarding and any messaging channels.
- Run the import once more right after the switch to add the tickets created since the first run.
- Keep Zendesk available, read-only, for anything you did not move.
Plans for the features you move to
Some Zendesk features map to Gleap features on specific plans:
- Every plan includes live chat, email and Kai, the AI support agent. AI usage is billed separately through prepaid credits.
- Team or higher adds unlimited seats, the help center, in-app bug reporting, the feature roadmap, a custom domain and the WhatsApp, Instagram, Messenger, Slack and Telegram channels.
- Pro and Enterprise add Kai Resolve for investigating technical tickets, Kai PM and Kai Code.
See Gleap pricing for current prices and limits, and the Zendesk comparison for how the two products differ.