Asana exports JSON and CSV, but only imports CSV back

Asana exports a project in two formats and imports one. You can download JSON or CSV, but the CSV importer is the only way back in, so the richer of your two export files is one Asana itself cannot read. Above a single project, export moves to the admin console: whole-organisation export is an Enterprise+ feature that super admins request as a JSON file.

This guide covers what each export route actually gives you, why the round trip does not close, what it takes to export a whole organisation or your time tracking, and how to move Asana projects somewhere else without a file. Asana's behaviour was checked against Asana's own documentation on August 13, 2026.

1. What can you actually export from Asana?

Four routes, and only the first is a menu item. The gap between them widens the more data you want.

Route What you get Who can use it The catch
Project export, CSV One spreadsheet per project Any plan, including Personal Flat rows only, and it is the format the importer reads back
Project export, JSON One structured file per project Any plan, including Personal Richer, and Asana cannot import it
Organisation export Gzipped JSON of the whole organisation Enterprise+ super admins Admin console or API, and an API download link expires in an hour
API Anything the endpoints expose, including time entries Anyone who can write code You are building the export, not running one

The pattern worth noticing before you start: in Asana, the amount of data you can export by clicking is roughly one project. Everything above that scale is an engineering task.

2. How do you export an Asana project as CSV or JSON?

Project export lives in the project's own menu rather than in settings:

  1. Click the drop-down arrow next to the project's title.
  2. Hover over Export/Print.
  3. Select CSV or JSON.

Two extras are easy to miss. Asana notes that besides projects, you can also export a Search View or your My Tasks. The Search View export is the more useful of the two, because it is the closest thing Asana offers to exporting across projects: build an advanced search that matches what you want, then export the result as one file.

Which format to pick depends entirely on who reads the file next. CSV is for a spreadsheet or a human. JSON is for a script, another system, or an archive where you would rather keep structure than readability. If you are exporting because you are leaving, take both, because the two formats fail in different directions and the JSON one cannot be recreated later from the CSV.

3. Why can you not import your own JSON back into Asana?

Because Asana's importer does not read JSON. Its documentation is unambiguous in both directions: you can export a project "to the text-based file formats JSON or CSV", and you can import tasks "using CSV" or by pasting a list of task names. There is no JSON import path at all.

So the more complete of your two exports is a one-way file. It is fine as an archive, fine as input to something you write yourself, and useless as a restore. If you exported JSON believing it was the safer choice because it holds more, it holds more and gives back less.

What the CSV importer actually reads

The CSV route back in is narrower than most people expect, and it is strict about shape. Asana requires that "the Task Name must be the first column, followed by Description, Sections, and Assignee", with the remaining fields in a documented order. Get the order wrong and the import does not fail loudly; it maps your data onto the wrong things.

The recognised columns are Name, Description, Section, Assignee, Collaborators, Start Date, Due Date, Type, Dependents and Parent Task. Three details in that list bite:

  • Collaborator emails must have no spaces after the commas. Asana is explicit about it, and a normally formatted list silently fails to match users.
  • Start Date needs a paid subscription. Without one, Asana puts the start date column into the task description instead.
  • Subtasks link to parents by exact name. A parent task must appear above its subtask in the file, and the names have to match precisely.

There is no column for comments. Whatever your export file contains, the discussion on your tasks has no route back into Asana through the importer.

Two more things the importer will not do

Asana states plainly that "CSV import can only add new tasks to a project and cannot update any existing tasks". There is no merge, no matching on an ID, no correcting a bad run. If an import goes wrong, the fix is to delete what it created and import again, and if you simply re-run the file you get a second copy of everything.

And any custom fields the importer creates arrive scoped to that project: "custom fields created via CSV import are local to the project, not global, and must be manually converted to global custom fields" before they can be used for reporting or in a later import. A migration that recreates twenty fields leaves you twenty manual conversions behind it.

4. How do you export a whole Asana organisation?

There are two routes, and the plan gate is the same on both. In the interface, Asana's organisation settings documentation states that "super admins can request an export of all the data in your organization as a JSON file", adding that the feature "is only available on Asana Enterprise+ tier, as well as legacy tier Legacy Enterprise". Click your profile photo, select Admin console, then Domain export.

The same export is available programmatically, which is the route to use if you want it on a schedule rather than on request. Asana's API documentation notes that those endpoints "are only available to Service Accounts of an Enterprise+ organization".

If you clear that bar, the request produces "the complete data of an organization in JSON format", compressed in a gzip container. Asana warns that "exports can take a long time, from several minutes to a few hours for large organizations", and the result is a presigned link that "may only be valid for 1 hour from the time of retrieval", with advice not to store the URL but to refresh it on demand.

Read that as a description of what an Asana backup really is. On Enterprise+ it is a scheduled job somebody maintains, producing gzipped JSON that Asana cannot import back. On every other plan it does not exist, and "backing up Asana" means exporting projects one at a time and keeping the files somewhere yourself.

That is worth knowing before you need it rather than after. A per-project CSV that you actually took beats an organisation export you are not entitled to run.

5. How do you export time tracking data from Asana?

This is the clearest example of the pattern above, because Asana documents the answer itself and the answer is a script.

For teams that need a complete CSV of time entries across the domain, for payroll or an audit, Asana's guidance is to use the API and aggregate the entries yourself, with a worked Python implementation in the help article. There is no equivalent in the interface, and the method is documented for Starter plans and above rather than for everyone.

The practical consequence for anyone moving tools: tracked hours are the part of an Asana workspace least likely to survive a migration, because getting them out is a separate engineering exercise from getting the tasks out, and most destinations have nowhere to put them anyway. It is the first thing to check and the last thing anyone remembers.

6. What does an Asana export leave behind?

Rather than list what the file contains, it is more useful to ask what cannot survive any of the routes above.

  • Anything outside a project. Export is per project, per search or per My Tasks. Work that lives only in someone's My Tasks and was never added to a project has to be found deliberately.
  • Rules and automations. They are project configuration, not task data, and there is no route that carries them. They get rebuilt by hand wherever you land.
  • Tracked time, unless you write code. Covered above.
  • The ability to put it back. The most important omission is not a field. Asana's export and import are asymmetric by design, so no file you download is a restore point.

None of this is unusual for a project tool, and none of it is hidden. It just means an Asana export answers "can I read my data elsewhere" rather than "am I protected", and those are the two different questions people are usually asking when they search for an export button.

7. How do you migrate from Asana to Jira, Trello or ClickUp?

This is where most people exporting from Asana are actually heading, and the destinations diverge sharply. One reads your Asana account directly and needs no file at all. One has no importer whatsoever. The rest sit in between.

Destination How you move The limit that catches people out
Jira Built-in Asana importer, reads your account Admin roles only; skipping member import turns every commenter into "Anonymous"
Trello Nothing first-party Atlassian states Trello "doesn't have a generic import tool"
ClickUp Built-in Asana importer Freestanding tasks, nested subtasks, recurring tasks and @mentions do not import
Notion Built-in Asana import Arrives as pages and databases, so a board becomes a table to rebuild
Excel or Google Sheets Open the CSV export Nothing structural, because a worksheet is flat too
Breeze Built-in Asana importer, reads your account Attachments are not imported; time tracking is

Asana to Jira

Jira ships a first-party Asana importer at Settings → System → External system import, and it reads your Asana account rather than an export file. Sections become statuses, a parent-level work type or a category depending on the space you land in; tasks become work items; subtasks become subtasks, each linked to its parent. Standard and custom fields are mapped during the import.

You need to be an organisation, site or space admin to run it, and two options in the wizard decide how much survives. Attachments are opt-in. Members are also opt-in, and Atlassian spells out the cost of declining: "if you choose not to import members, all user fields will be unassigned, user mentions in comments will be imported as plain text, and commenter names will change to Anonymous."

The same thing happens to people who are not full admins. Users who can create team-managed spaces can run the import but cannot move users, so their result arrives unassigned with mentions flattened whether they wanted that or not. If attribution matters to you, sort out who runs the import before anyone runs it.

Asana to Trello

There is no importer, and no amount of looking will find one. Atlassian's own documentation is blunt: "Trello doesn't have a generic import tool". It offers three alternatives, and it is worth knowing what they are before spending an afternoon:

  • Copy and paste. Pasting multiple lines into a Trello card creates one card per line, so a column of task names from your CSV becomes a list of cards. Names only, nothing else.
  • The Trello API, for full programmatic control, which is to say for someone writing code.
  • Third-party Power-Ups, several of which import data, none of which are Atlassian's.

So a realistic Asana to Trello move is a manual rebuild with the card names pasted in, or a paid third-party migration tool. The direction is easier the other way around, which is covered in our guide to exporting from Trello.

Asana to ClickUp or Notion

ClickUp has a genuine Asana importer, and it publishes exactly what it will not take. Six things do not import automatically: freestanding tasks, nested subtasks, tasks shared between projects, recurring tasks, private tasks, and @mentions. Most have a documented manual workaround; @mentions have none, and ClickUp says so.

Freestanding tasks are the one to act on before you start. ClickUp's advice is to move them into projects while you are still in Asana, because once the import has run there is nothing to move. The same is true of any tool you migrate to, so it is worth doing regardless of destination.

Notion imports from Asana directly as well, but into pages and databases rather than into a board. Expect the structure to arrive intact and the working arrangement, the grouping and views that made it a project, to need rebuilding.

Asana to Excel or Google Sheets

The simplest case in the list. The CSV export opens directly in Excel, and Google Sheets takes it through File → Import → Upload. Nothing structural is lost, because a worksheet is as flat as the file. What you lose is what the CSV never had: comments, attachments and tracked time.

Destination importers were checked against each vendor's documentation on August 13, 2026.

8. How do you move Asana projects into Breeze?

Breeze reads your Asana account through the API, so there is no export file and no format decision. It connects with read access, shows what it is about to do, and changes nothing in Asana.

Asana is the source Breeze carries the most from, and the reason is the section above. Tracked time comes across. It is the part of an Asana workspace that is hardest to export by hand, the part most destinations drop silently, and the part that is worth the most when it survives, because it is the record of what the work actually cost.

Running the import

In Breeze, open the menu in the top-right corner, select Settings, open the Import tab and select Import next to Asana. The wizard runs in four steps: connect, choose the projects, match people, and review before anything is written. There is no field-mapping step, because an Asana project always has sections and those become your board columns directly.

Choosing which Asana projects to import into Breeze
Each selected Asana project becomes a Breeze project, with its sections as the board columns.

Only a Breeze account owner or admin can import a whole workspace as new projects. Importing a single project into one you already have works from that project's settings instead.

What comes across from Asana

Asana Breeze Import behaviour
Project Project Each selected project becomes a project, unless you import into an existing one
Sections Lists Order is retained, so the board arrives arranged the way you left it
Tasks Tasks Names, descriptions, due dates and assignees are imported
Subtasks Subtasks Imported as checklist items on the parent task
Tags and custom fields Tags and custom fields Text, number, date and both kinds of dropdown are carried across
Comments Comments Imported; Asana's activity entries are not, because they are not comments
Time tracking Time entries Imported with their durations and dates
Attachments Not imported Asana's file URLs require authentication, so a stored link would not open
Reviewing an Asana import in Breeze before starting it
The review step lists what is carried across, including time tracking, before anything is written.

Two honest limits. Attachments are not imported, because Asana's file URLs are authenticated rather than public and a saved link would fail for anyone who followed it, so download anything you need to keep. And subtasks arrive as checklist items rather than as tasks in their own right, since Breeze tasks have no parent and child relationship, which means a subtask that carried its own assignee and due date in Asana loses those on arrival.

Unlike Asana's own CSV importer, running the same import again offers to update the project it created last time rather than making a second copy, and it never deletes what you have added in Breeze. Large imports keep running in the background and Breeze emails you when they finish.

Still deciding rather than moving? Compare the practical differences in Breeze vs Asana, or look at other Asana alternatives. Exporting is worth doing even if you stay, because it shows you which parts of your workspace are portable and which only exist inside Asana.

Common questions about exporting Asana data

Can you export Asana to Excel?
Yes. Export the project as CSV from the project menu under Export/Print, then open it in Excel, or upload it to Google Sheets through File then Import. The rows come across cleanly; comments, attachments and tracked time were never in the file.
Can you export all of your Asana data at once?
Only on Enterprise+. Super admins can request a full JSON export from the admin console under Domain export, or automate the same thing through the API with a Service Account. On every other plan, export runs one project, one search view or one My Tasks at a time.
Does Breeze import Asana time tracking?
Yes, with durations and dates. It is the main reason to move an Asana project through an importer rather than a spreadsheet, since Asana's own route to a full time export is a Python script against its API.

Export to read your data, not to protect it

Take the CSV when a person or a spreadsheet is the next reader, and the JSON when a script is. Take both if you are leaving, because they fail differently. Do not mistake either for a backup: Asana imports neither in a way that would restore your workspace, and the organisation-wide export is an Enterprise+ feature that most accounts cannot reach at all.

And if you are moving the work rather than filing it, the file is the wrong starting point, because tracked time and comments are lost before the destination ever sees your data. See exactly what Breeze imports from Asana, then try it with one project before you move the rest.