Blog

How to Import CSV into Asana

Learn how to import CSV into Asana with correct headers, field mapping and parent tasks. Avoid duplicate imports and inspect your project before finishing.

How to Import CSV into Asana; asana official website imagery
On this page

Here's how to import CSV into Asana and turn spreadsheet rows into project tasks. You'll need a CSV file with a header row and access to the destination project. Use the preview to check the mapping before finishing; a column that looks right in a spreadsheet can become the wrong field in the project.

How to import CSV into Asana without duplicating work

The importer adds new tasks; it doesn't update existing tasks. Reimporting a revised spreadsheet isn't a way to refresh the tasks you created yesterday. Asana states this in its CSV preparation help.

Start in a separate project if you're learning the mapping. Keep that small trial separate from the project where people already work. That gives you a place to inspect the result without mixing practice rows into someone's active list.

The Asana project page links to the service. Asana Personal allows two users for free; custom fields are a paid feature. Starter is $10.99 per user per month billed annually or $13.49 monthly, checked October 9, 2026.

1. Prepare one task per spreadsheet row

Add a header row and use title-case column names. Asana's preparation FAQ puts Task Name first, followed by Description, Sections and Assignee, with other fields after those.

Begin with the information you need for the task, not every column in an old reporting sheet. A task title, description and owner are easier to inspect than a row containing several obsolete status labels.

Save the file as CSV from your spreadsheet application. Keep the original spreadsheet too; the CSV is the import copy, not a replacement for the document you used to plan the mapping.

For a first pass, use a small set of recognizable task names. If all the rows say “Follow up,” it will be harder to identify which mapping produced which task.

2. Choose a new or existing project

For a new team project, open the sidebar, use the arrow next to the team's name, choose Create project, then Import spreadsheet. Select your CSV file.

For an existing project, open the project-header dropdown beside the project name. Hover over Import, choose CSV, then select the file.

Both routes lead to a preview. The new-project route is a good starting point when you want a separate trial. The existing-project route is for adding genuinely new work to a project that already has tasks.

Asana also documents a Quick add → Project route. You don't need to use all three; choose the one that matches the destination you want.

3. Open Make changes and inspect the fields

Choose Make changes before completing the import. Asana specifically recommends this step to review the data and change the mapping or field types.

Inspect which column becomes the task name, which becomes the description and how owners are assigned. A header mismatch can cause information to become a new text field instead of the field you intended.

For numeric custom fields, scan the whole column for stray spaces or characters. Asana's help gives the example of one incorrectly formatted row preventing a number column from importing correctly as numeric data.

When the preview works, the sample tasks should be recognizable. A title belongs in the name field, a description remains readable, and task information isn't spread across surprise custom fields.

4. Map custom fields only when the plan supports them

The advanced CSV guide says custom fields require a paid subscription. Extra columns can map to existing custom fields or create new ones, depending on the destination and naming.

Fields created through a new-project import are local to that project. If you need the same field for reporting across projects, Asana describes converting it to a global field afterward.

For dropdown fields, use values that match the available options. For multi-select values, the preparation help specifies comma-separated values inside the cell. The CSV file's own quoting still needs to preserve that cell as one column.

After mapping, check an example with more than one selected value. “Writing,Review” should not become one accidental option if you intended two choices.

5. Put parent and blocking tasks above their dependents

For subtasks, add a Parent Task column and enter the exact parent task name on the child row. The parent row must appear above the child. If names repeat, Asana uses the closest matching row above.

That makes unique task names valuable during import. Two parent rows called “Launch” can attach a child to a different row than the one you had in mind.

For dependencies, the advanced guide documents a Dependents column containing the names of tasks blocking the current row. Put the blocking rows above the blocked task and match names exactly. The importer can't create that relationship to a task that already exists outside the import.

Use this only when the relationships actually matter. A flat checklist is easier to review than an unnecessary tree of parents and dependencies.

6. Continue to the project and inspect the result

Once the preview matches the file, choose Continue to project. You should see your spreadsheet rows as tasks and their mapped information in the project.

Open one ordinary task, one task with extra fields and one subtask if you imported them. Check the description, owner and relationship. Compare those examples with the original spreadsheet before treating the project as ready for the team.

If something is wrong, record the mapping error before importing another copy. Repeating the same upload is unlikely to repair a wrong header or duplicate parent name.

Known problems and troubleshooting

Asana's import help describes these formatting failures and fixes:

Problem Cause Fix
A number column becomes text Stray spaces or nonnumeric values Clean every row, save a new CSV and review the preview
A child attaches to the wrong parent Repeated names or wrong row order Use exact names and place each parent above its child
A multi-select becomes one option Values weren't separated correctly Use the documented comma-separated cell values
A field can't be selected Formatting or plan availability Check the column type and paid custom-field access

For repeated imports, a shared custom field needs more attention than a column with the same display name. Asana documents converting local fields to global fields and matching options to avoid new duplicate local fields.

Two import variations

Start with a simple personal project

Use task names, descriptions and assignments first. Leave paid custom fields out of a free-plan workflow. A simple import is easier to inspect and can still replace a spreadsheet list of active work.

Move a structured team project

Prepare the custom fields in the destination and match the CSV values to their options. Add parent tasks and dependencies only where the official importer supports them. A project's comments, files and history need separate consideration; a row import isn't a full account migration.

Completion checklist

  • The file has a title-case header row.
  • The preview maps names, descriptions and owners correctly.
  • Numeric and multi-select columns have clean values.
  • Parent and blocking rows precede the tasks that reference them.
  • Paid custom fields are available in the destination.
  • Imported examples match the original spreadsheet.

Next steps

Ask the team to work in the imported project once the fields are correct. Keep one place as the active source of task changes; maintaining the spreadsheet and project independently invites conflicting dates and owners.

If the destination needs a different model, compare Linear for product issues, Airtable for structured records and Miro for visual plans. TickTick handles personal planning, while Nextcloud offers server-hosted task apps.

FAQ

Can CSV import update existing Asana tasks?

No. Asana's task CSV importer adds new tasks to a project and doesn't update existing ones. That also prevents using this importer to create a dependency on a task already outside the import. Treat a revised spreadsheet as new input to inspect, not a safe synchronization file for yesterday's imported project.

Can I import subtasks into Asana?

Yes. Add a Parent Task column containing the exact parent name on each child row. Put the parent above its children. Asana uses the closest matching parent row above when names repeat, so unique parent titles make the result easier to control and inspect after import.

Do I need a paid Asana plan for CSV import?

The basic importer is documented for Personal as well as paid plans, but custom fields require a paid subscription. Personal currently allows two users for free. Start with ordinary task information on a free plan; compare the paid field features only if the project needs extra structured columns.

Sources

Asana's Preparing Data for CSV Import, Advanced CSV Import Options and current pricing page, checked October 9, 2026. The two linked help pages supply the import routes, mapping rules and exact control names.

Related articles

Directory

Listings in this article

  • Asana

    Asana is a work and project management platform for human-agent teams. It provides tools for planning, automating, and executing workflows, including agentic work management, AI teammates, no-code automations, and integration with various services.