You can export account data such as tickets, users, or organizations to a JSON, CSV, or XML file.
For security reasons, you can restrict who can export the data based on the email domain of admins. You can also deactivate data exports in your account if Zendesk has enabled them. See Restricting or deactivating account data exports.
If you want to export data about your team members (your agents and admins) only, see Exporting team-member data.
The exporting tools described in this article are not available to customers on Team plans. However, customers on all Zendesk plans, including Team plans, can use the Zendesk REST API to export data. For an example, see Exporting your users with the API in the Zendesk developer guide. The article shows you how to create a small script that exports all the users in your account to a CSV file. You can then import the CSV file into your favorite spreadsheet application.
Exporting account data
To export ticket, user, or organization data from your account
- If not done already, get Zendesk to enable data exports in your account.
The account owner must contact Zendesk Customer Support to enable data exports in your account. Make sure to include your Zendesk Support subdomain name in the request.
Return here when data exports have been enabled in your account.
-
In Admin Center, click
Account in the sidebar, then select Tools > Reports.
If you don't see this option and data exports are enabled in your account, you may be restricted from exporting data. See Restricting data exports to certain admins.
If necessary, click the Export tab to display the data export options. Some legacy versions of Zendesk show the export options on a separate tab.
- Select an export option.
-
JSON export: Recommended for accounts with more than 200,000 tickets. Not
available in sandbox instances.
To run a JSON export, select a date range, select tickets, users, or organizations, then click Export.
For more information, see Full JSON export.
-
CSV export: Not available in sandbox instances.
To run a CSV export, select a date range and click Export.
For more information, see CSV export.
-
XML export:
To run an XML export, select request file next to each option. Setting a date range or selecting a data type is not available.
For more information, see Full XML export and User XML export.
-
JSON export: Recommended for accounts with more than 200,000 tickets. Not
available in sandbox instances.
export_YYYY_MM_DD_uniqueID_X
, where:-
YYYY
is the year -
MM
is the month -
DD
is the day -
uniqueID
is automatically generated and unique to an export -
X
is a numeric value related to the number of files in the zip. If there is only one file in the zip, it will end in_1
; if there are two files, you'll have files ending in_1
and_2
; etc. The numbers at the end of the file aren't related to the order of the data within the files.
Depending on the requested export date range and your account's level of ticket activity, the export process can take anywhere from a few minutes to a day or more. If you have concerns about a particular export that you're waiting for, contact Zendesk Customer Support.
If you haven't received the email notification, you can click latest beside Full JSON export, CSV export, Full XML export, or User XML export to download the most recently generated report. The latest report displays your account data from the file you last requested, not your current account data. See Delays in receiving the email with the downloadable data export file.
Understanding the data export options
You have the following data export options:
Full JSON export
Exports tickets, users, or organizations to JSON files. Accounts with more than one million tickets are downloaded in 31-day increments.
Zendesk exports the data in "NDJSON" or Newline Delimited JSON format. This format enables systems to stream JSON objects one at a time rather than read the entire file at once. This is helpful for extremely large export files, which may be too much for traditional JSON readers.
If you want a single JSON file containing all of your information rather than a streaming version, you can wrap the ticket objects in a JSON array. For example, if Zendesk exports the following ticket objects:
{"ticket":{"id":....}}
{"ticket":{"id":....}}
{"ticket":{"id":....}}
You can create a valid JSON file by wrapping the objects into a "tickets" array as follows:
{
"tickets": [
{"ticket": {"id":....}},
{"ticket": {"id":....}},
{"ticket": {"id":....}}
]
}
The date ranges for these exports use a system-generated timestamp. Typically, these timestamps match the most-recent update recorded on the ticket, user, or organization (not the creation date). There are some cases where system updates don't generate ticket events. In these cases, you may see a few unexpected tickets in the output.
- A JSON file that includes all the tickets you exported, including tickets that exceeded the 1 MB limit and were exported without comments
- A JSON file that includes the tickets that exceeded the 1 MB limit and an error message letting you know that the reason the comments were not included was because the ticket exceeded the 1 MB limit. Example:
CSV export
Exports ticket data to CSV files. The data does not include deleted tickets, ticket comments, or ticket descriptions.
If a single ticket has more than 1 MB of data, the ticket is excluded from the report. However, this rarely happens because CSV exports don't include ticket comments, which are usually the largest data component in a ticket.
All date and time values are converted to the account’s default time zone (at the time of the export). The dates displayed in the CSV file may not match the dates in the JSON export (UTC) or in Explore, which displays the user’s time zone. For more information about an account's time zone, see Setting time zone and format for Zendesk Support.
The ticket data in the report includes the data shown in the following table. Multi-line text and multi-select fields, as well as custom date fields, are excluded from CSV reports but can be included in JSON and XML reports.
Data | Description |
---|---|
ID | The ticket number. |
Requester | The name of the requester. |
Requester ID | The requester's ID number. |
Requester external id | The ID from an external system. Optional for accounts that have enabled Professional or Enterprise single sign-on using JWT or SAML. |
Requester email | The requester's primary email address. If you want to export a list of
users' secondary email addresses, you must use the List Users API endpoint while side-loading identities (for example:
|
Requester domain | The email domain of the requester's primary email address. |
Submitter | The name of the initial submitter. The requester's name is displayed if the requester submitted the ticket. If an agent submitted the ticket on behalf of the requester, the agent's name is used. If the requester is changed, the submitter does not change. |
Assignee | The assignee at the time of export. |
Group | The group at the time of export. |
Subject | The subject of the ticket. |
Tags | The tags added to the ticket at time of export. |
Status | The status at time of export |
Priority | Priority at the time of export. |
Via | The ticket channel from which the ticket originated. |
Ticket type | The type at the time of export. |
Created at | The original creation time and date. Displays in the account's time zone. |
Updated at | The time and date of the most recent update. Displays in the account's time zone. |
Assigned at | The time and date of the most recent agent assignment (i.e. the time it was assigned to the current assignee). Displays in the account's time zone. |
Organization | The organization of the current requester (if any). |
Due date | The due date at the time of export. Displays in the account's time zone. |
Initially assigned at | The time and date of first assignment to an agent (not to a group). Displays in the account's time zone. |
Solved at | The time and date of the final or most recent change to solved status. Displays in the account's time zone. |
Resolution time | The final or most recent resolution time in hours, rounded to the nearest whole hour. |
Satisfaction Score | The current satisfaction rating status (Not Offered, Offered, Good or Bad). |
Group stations | The number of group assignment changes made. The initial assignment upon ticket creation also counts as a station. |
Assignee stations | The number of agent assignment changes made. The initial assignment upon ticket creation also counts as a station. |
Reopens | The number of times a ticket has been changed from Solved to Open (whether by agent or end user). |
Replies | The number of public agent replies on a ticket to a comment from an agent or end user. |
First reply time in minutes | The time between ticket creation time and the timestamp of the first public agent comment, displayed in minutes. |
First reply time in minutes within business hours | Same as above, but only time that elapses during listed business hours is counted. |
First resolution time in minutes | The time between ticket creation time and the timestamp of the first change of status to Solved, displayed in minutes. |
First resolution time in minutes within business hours | Same as above, but only time that elapses during listed business hours is counted. |
Full resolution time in minutes | The time between ticket creation time and the timestamp of the final or most recent change of status to Solved, displayed in minutes. |
Full resolution time in minutes within business hours | Same as above, but only time that elapses during listed business hours is counted. |
Agent wait time in minutes | The total time spent in the Pending status, displayed in minutes. |
Agent wait time in minutes within business hours | Same as above, but only time that elapses during listed business hours is counted. |
Requester wait time in minutes | The combined total time spent in the New and Open statuses. If the ticket is reopened after being solved, time spent in Solved status is counted as well. Time after final change to Solved status is not included. |
Requester wait time in minutes within business hours | Same as above, but only time that elapses during listed business hours is counted. |
On hold time in minutes | The total time spent in the On-hold status, displayed in minutes. |
On hold time in minutes within business hours | Same as above, but only time that elapses during listed business hours is counted. |
Full XML export
Exports data to an XML file. This export option is not available if your account has more than 200,000 tickets. In that case, use the JSON export option.
- Accounts - all the settings for your account
- Groups - detailed information about your groups
- Organizations - detailed information about your organizations
- Tickets - all the details (including comments) for all your tickets
- Users - a list of all your users (end users, agents, and admins)
User XML export
- Groups - detailed information about your groups
- Organizations - detailed information about your organizations
- Users - a list of all your users (end users, agents, and administrators).
For the user and organization data, tags are included but custom user fields and custom organization fields are not. To retrieve your custom user fields, you can use the List User Fields endpoint in the Zendesk API. To retrieve your custom organization fields, you can use the List Organization Fields endpoint in the Zendesk API.
Exporting account data with the Zendesk API
You can also use the Zendesk API to export data from your account. For example, you can use the List Users endpoint to export all the users in your account. To learn how, see Exporting your users with the API in the Zendesk developer guide.
77 comments
Anne Ronalter
it seems like the function is not yet enabled for your account.
To do so, I will go ahead to open a ticket on your behalf.
-1
Mukesh Kumar
Hey Team,
I have been working on the data export and getting to know it slowly. I must say JSON export is great to view the data.
I have a question though, like JSON, where you can define a date range and data type, can we not do the same for XML / CSVs?
When using these options, the text files are way too big to be opened to view. What is the best way to pull/filter the data using a date range/data type for XML / CSVs?
0
Tony
thank you very much for your comment. I'm glad to hear that you really like JSON export.
So, as it is now, the Full JSON export is the only one capable of defining a data range and data type, as you already know.
However, there is a small margin in which you can play with CSV exports. You can export a view to a CSV file, or you can use Python for it.
Or, you can use our REST APIs endpoints to get the information you need, then after you can use Python for compiling the JSON to CSV, so you have only the information you want.
I hope that helps!
-2
Aleksandar Salevski
Hi All, the problem with this JSON is that there is no comma "," between users, any help with this one?
0
Nghĩa Hồ
Hi, i don't see Quick Look: Admin Center > Account > Tools > Reports, although my account is Growth plan
1
Jordan Moore
The instructions updated on 11/03/2022, state to go to Account > Tools > Reports.
There are no Tools or Reports sections. We are an enterprise customer. A lot of this is inaccurate. We're dead in the water trying to export our 4000 organizations to updates them, because you all only put a CSV upload, but no download....geeze!!
2
CJ Johnson
You might be able to force your way to the page via this url, you'll need to put in your own Zendesk domain:
https://domain.zendesk.com/admin/account/tools/reports
2
Jordan Moore
Unfortunately, that is a dead link.
0
Amy Dee
To Aleksandar Salevski - the JSON export tool uses NDJSON, or "Newline Delimited JSON" format. This format returns a series of standalone JSON objects separated by line breaks. It's optimized for streaming extremely large sets of data into a database, where a single file would be too large to handle effectively. If you want to convert the entire export into a single standard JSON file, you'll need to add commas between the lines and a "users" wrapper around the list.
To Nghĩa Hồ and Jordan Moore - data exports are not enabled by default. They need to be turned on before you can use them. If you don't see account export tools in the Admin Center, it means one of two things: exports have not yet been enabled for your account, or exports are enabled but there is a domain restriction blocking your access.
If exports aren't enabled, the account owner can reach out to our support team to have the feature turned on. If exports are enabled, the account owner can modify or remove domain restrictions on the export page. (The account owner can reach the exports page even if their domain does not match.)
I hope this helps!
-4
CJ Johnson
Amy Dee
If that's the case, it would be great if the entire article were re-written to reflect that this is no longer available in JSON. This is a bit like changing the article language from French to Spanish and saying it's still available Spanish because they are both Romance languages. It's not JSON anymore, and that means that JSON parsing in code will not work. My scripts that know how to read JSON, but cannot read NDJSON, because it's not the same language. This is why people are telling you that your JSON exports are broken.
4
Amy Dee
Hi CJ Johnson - Thanks for following up! There may be a misunderstanding here, so I want to clarify a couple points.
-4
Jordan Moore
CJ Johnson FINALLY, someone who knows what they are talking about...getting a sincable or timely solution from ZD is near impossible. They just need to allow for table access to our instances so we can just connect, pull, and be done. Instead, I've had to jerry-rig the same through AWS. It's a nightmare. Never seen a ticketing product where I cannot readily access my data for the purpose of maintaining data integrity, or making bulk changed.
2
Jordan Moore
Amy Dee the only problem is that Zendesk makes zero effort to tell us what is or is not turned on. I had no clue this option even existed. So I had to go out a buy a 3rd party app (again)...and spent considerable amounts of time trying to get data exports setup in AWS to automatically pull data. I literally pleaded in a meeting with ZD this week to tell me WHAT ELSE is not turned on. I'm an enterprise customer, turn on everything, or at the very least tell your customers what you have turned off. The only way I even know that the ADMIN > Tools > Reports option even exists, is because an end user made a post (not ZD). So I have to contact ZD to turn on the feature. And once it's finally turned on, its just a bulk dump, with date range. Absolutely no filter options. You all need to read these complaints. Some have been open for years with no resolution. I don't want JSON exports, I want access to tables and my customer fields. I go into reporting now and try to pull an Organization report, in your cube environment, but the datasets are only ZD, not our custom fields. 100% USELESS.
3
Monica Barin
Are archived tickets included in the export? If not, how can I export all tickets ever logged by a given client, including archived ones? I have a client that has over 1000+ tickets logged - these can be see on their organization profile. When I create a view to see all their tickets, it only has about 200. The other 800+ have been closed and since, auto-archived. We want a full picture of their historical tickets. Thanks.
0
Audrey Ann Cipriano
Hi Monica Barin welcome to our Community! :)
Archived tickets are definitely included in the export but you won't be able to filter it for one client. However, once you receive the export file, you can then filter within the file (outside Zendesk) for the client's email to get the tickets you need.
Another option is using Explore, you can create a custom query and filter for that requester's email so the query produces their tickets and you'll be able to export it as CSV as well. :)
0
Mark Leci
Is there any plan to add the option to export organization data as a csv? This seems like something so basic it should be possible via Explore, but it's not (you can only get organization data for organizations that are linked to tickets). I had to request a json export, then edit the json so that it was valid (!) and then load it into Excel to actually see this basic data. The whole process took a full day including the time I needed to research how to convert the non-standard json to something usable. Seems crazy for something you can do in ten seconds in Salesforce.
As noted above, using a non-standard json variant particularly for the org export seems like a poor design choice. I would guess it's unlikely most companies have millions of organizations, and even if they do I think giving admins the choice to download in standard json makes sense.
If anyone else is seeing this and wants to use the organization export data as valid json, what worked for me is the following:
1. Added '{"Organizations":[' at the top.
2. Separated each organization object with a ','
3. Added ']}' at the end
2
Pedro Reis
When you activate the agent workspace, does the data structure change on report export?
0
Gustavo Oliveira
No. The structure of the Data export will be the same in Agent Workspace and Standard agent interface.
Moving to Agent Workspace will not affect your export structure.
Best regards,
0
Virginia Buechel
Does the JSON file also include any files that are uploaded in ticket conversations too?
0
Joyce
JSON exports of tickets contain links to the various attachments as: https://subdomain.zendesk.com/api/v2/attachments/ATTACHMENT_ID.json
In order to download the attachments associated with each link, you will need to perform a GET request to that endpoint. Then download the file linked at the aforementioned content_url attribute.
You can read more about the article How can I download all attachments in a ticket?
Hope this helps!
0
Lila Kingsley
Just a heads up to anyone else interested in the JSON export:
As stated in the article the JSON date ranges use a system date that typically equates to last update date. We wanted to export some tickets, including tickets imported into Zendesk from other systems so I set the date range with last update date in mind...but, records were omitted. Turns out that for imported tickets you need to know/use the import date (which won't match last update date) in order to include those tickets.
Also, when the article says "accounts with more than one million tickets are downloaded in 31-day increments" it makes it sound like you can specify a single date range and the system will parse it out in the 31 day increments for you. Unfortunately, that is not the case. If your date range spans several months you will have to manually pull each month separately.
0
Omar
I am the account owner for Zendesk, I should have rights to download the data as CSV
Following instructions
Admin center >> Account >> Tools
But there is no reporting option, searched for reporting also int he search bar
I need to download all the ticket data from 1st Jan 2023- 30 Sep 2023
please advise, thank you
1
Noly Maron Unson
Hi Omar,
Data exports are not enabled by default in Zendesk accounts. Normally, you must contact Zendesk Customer Support to enable data exports in the account but I created a ticket on your behalf so that we can move this request faster.
Please check your email and respond to my message. Thank you.
0
Almog Zamir
I downloaded the XML file. The "tickets" file is over 2.5G.
I assume Excel can't open the file because its weight is 2.5G.
What can I do to succeed in opening the file?
I aim to get all tickets and their comment - but only tickets contain the tag 'x'.
0
Andres
Why is it so hard to get our customer's email address? I don't know what to do with a json file, I just want the email addresses, is this at all possible?
0
Brandon (729)
Hey Andres -
For the users that created a ticket, you can pull an export of tickets with the attribute of requester_email.
You can also use the API, but that's also going to return JSON.
That said, you can open the JSON file in any text editor, then select all and copy / paste into Excel. That should help you visualize the data, and filter on any cells containing "email:"
Hope this helps!
0
Andres
Thank you Brandon (729) - pasting it into excel is a good trick, but all the ticket info just goes into one row, which isn't all that useful, I'm sure there are formulas to look for commas and put into a new cell but it just seems like so much extra work for such basic functionality.
Anyway I managed to pull all my ticket info in an excel file, so that has email address so I'm good, I just don't understand how simple things like this are just ignored, looking at this thread people have been asking for this for years.
Anyway I appreciate your suggestion, thanks!
0
Uday Kumar
Hi Team,
If we Export the tickets data in JSON or CSV format, do we get comments and attachments of a particular ticket?
Thank you.
0
Mike DR
You can view the comments in the JSON or CSV format but you can also use our Zendesk Comment APIs for specific tickets.
0
Chris Fassano
Is it possible to export organization data as a CSV? I don't see an option for this.
0