How to import tickets into Zendesk from a CSV
By Jake Marsh · Updated
To import tickets into Zendesk from a CSV, install Ferrywell, open it from the left navigation bar as an admin and pick your CSV files. Match the columns (requester email, subject, status, dates, comment author and text), check how old status values translate, then click Preview import. Fix what the preview flags, click Import, and Ferrywell sends the tickets through Zendesk's ticket import with their original dates and authors.
What your CSV can look like
Ferrywell reads three CSV layouts (TSV works too):
| Layout | How to set it up in Ferrywell |
|---|---|
| A tickets file and a comments file linked by ticket id | Comments: "In another file, linked by the original ticket id", then pick the comments file and its ticket id column |
| One file with a row per message | Rows are grouped by the original ticket id |
| A tickets file alone | "No comments file: the description is the only message" |
Steps
- Create what tickets refer to. In Zendesk, add the agents, groups, brands, ticket forms and custom fields your old tickets use. Ferrywell matches to them by email or name and creates only end users.
- Pick the files. Open Ferrywell and use Pick files, Pick a folder, or drop them on the page. Ferrywell lists the tables it found.
- Set Tickets are in to the table with one row per ticket (or per message).
- Match the ticket columns: original id, subject, description, status, priority, type, tags, requester email and name, assignee, group, brand, form, and created, updated, solved and due dates. The sample beside each field shows the first value of that column.
- Match each comment: text or HTML, author email and name, public or internal, sent at, and attachment names. A column named "Private", "Internal" or "Note" reads true as an internal note.
- Add custom ticket fields, one row per field.
- Translate values. Under Status, Priority and Type, every value in your export is listed with its count. Pick the Zendesk value each one becomes.
- Set the options (table below).
- Click Preview import. Read the errors and warnings, open a few subjects to read their conversations, untick rows you don't want.
- Name the import and click Import. Keep the tab open until it finishes.
Options worth checking
| Option | Why it matters |
|---|---|
| Dates like 03/04/2024 are | Month first or day first. The most common cause of dates a month off. |
| Times without a zone are in | The time zone for dates that carry none. |
| Status when blank or unknown | The status a ticket gets when the export has none. |
| Requester when a row has none | A fallback requester email, such as an archive address. Blank makes those rows errors. |
| Tags for every ticket | Extra tags added to the whole import. |
| Keep the original ticket id as the external id | Lets you find a ticket by its old id later. |
| Comments that don't say are internal notes | For exports where the public flag is missing. |
| Send closed tickets straight to the archive | For very large imports. |
How custom fields are read
| Field type | What Ferrywell accepts |
|---|---|
| Drop-down | The option name or its tag value |
| Multi-select | Comma-separated option names |
| Checkbox | yes/no or true/false |
| Date | Any date it can read |
What the preview flags
- Errors leave a row out: nothing to import, no requester, a date in the future or before 1970.
- Warnings import the row with something left out: an agent, group, brand or form not in Zendesk, a drop-down value that isn't an option, an unreadable date, a message over 64 KB (shortened), a due date on a ticket that isn't a task.
- People shows how many requesters and authors already exist, matched by email, and how many new end users will be created.
What it costs
Ferrywell is a one-time payment per Zendesk account: Standard $299 once for up to 5,000 tickets, Plus $599 once for up to 25,000, Unlimited $999 once with no limit. There is no trial. Undone tickets give their allowance back. The Ferrywell documentation covers JSON and every column.
Ferrywell
Historical ticket importer: past tickets keep their comments, authors and dates. Preview, then undo. From $299 once per Zendesk account.
Questions
Does the CSV import keep the original created date?
Yes. Every ticket keeps its created, updated and solved dates, and every comment keeps its author and time, because Ferrywell uses Zendesk's ticket import rather than normal ticket creation.
Why do agent replies show as the customer?
The comment author email column isn't mapped. Map it, and agents are matched by their Zendesk email address or a unique name.
Can I import from an Excel file?
Save the sheet as CSV first. Ferrywell reads CSV, TSV, JSON and email archives.
A row says the assignee is not in the group. What do I do?
Add the agent to that group in Zendesk, or leave the group or assignee column unmapped.
Can I import users and organizations from the same CSV?
Ferrywell creates the end users a ticket needs, matched by email. It doesn't import organizations or agents.