Asana export subtasks: why they go missing in Sheets

Asana export subtasks problems explained: why subtasks go missing or flatten in Google Sheets, what each export method does with them, and a COUNTIFS rollup.

Key takeaways

  • Subtasks belong to their parent task, so a tool that reads only a project's task list skips them.
  • Asana allows up to 5 levels of subtasks, and a tool has to ask each parent for its subtasks one at a time.
  • Asana's CSV export includes subtasks with a Parent Task column, but Asana doesn't document how many levels deep it goes.
  • Unito's Google Sheets connector doesn't sync subtasks, by Unito's own guide.
  • With a parent column in the sheet, =COUNTIFS(Tasks!C:C, A2) counts the subtasks under each parent.
Title card for the post: the title in white on the Asana to Sheets brand background, with asanatosheets.com/blog in the footer

The launch plan in Asana has 38 tasks. Open any of them and there's a stack of subtasks underneath, so the real count of work is closer to 140. The spreadsheet shows 38 rows.

Asana export subtasks problems come in 2 shapes once the data reaches Google Sheets™. Sometimes the subtasks are missing. Sometimes they're there with no sign of which task they belong to. Either way, the workload report under-counts by a factor of 3 or 4.

This post explains where subtasks live in Asana, what happens to them in each export method, and how to build a subtask report in Sheets once they arrive. Sources are Asana's help center and the vendors' own pages, read on 21 October 2026.

The short answer

Subtasks belong to their parent task. They only belong to the project when someone adds them to it as well. So any tool that reads a project's task list sees the parents and skips the rest. To get subtasks, a tool has to ask each parent for its own subtasks, one parent at a time.

Asana's CSV export does include subtasks and marks them with a Parent Task column. Unito's Google Sheets connector doesn't sync subtasks at all. Asana to Sheets, our Asana to Google Sheets add-on, writes each subtask as its own row, next to its parent task's name.

Subtasks hang off a parent task

A subtask is a full task. It has its own assignee, due date, custom fields and comments. The only difference is a link to a parent.

Asana allows up to 5 levels of nesting. Picture a launch task with a design subtask under it, a review subtask under that, and so on down to level 5. Asana's help says you "can only have a maximum of 5 levels of subtasks".

The project itself doesn't list subtasks as its own tasks. A subtask shows up in the project's list only if someone added it to that project directly. Most teams never do, so most subtasks are invisible to anything reading the project from the top.

Screenshot of a Google Sheet filled by Asana to Sheets in which subtask rows show their parent's ID and name in the Parent ID and Parent Name columns, and the parent task Write 6 feature pages reads 2/6 done under Subtasks Done

Asana export subtasks with the CSV

Asana's CSV export marks subtasks with a Parent Task column. Asana documented that column in its 2014 post announcing the export, with the note "Parent Task (for subtasks)". It hasn't published a column list since.

2 things stay undocumented. Asana doesn't say how many levels deep the export goes. One forum report says only the first level comes through, and Asana hasn't confirmed or denied it. And the Parent Task cell names the parent, so 2 parents called "Review" look identical.

Check your own file. Pick a task you know has subtasks 2 levels down, export the project, and search the CSV for the deepest one. If it's missing, the export is flattening your tree. The Asana CSV export post covers the other columns worth checking.

Subtasks in 6 export and sync methods

Method Subtasks What to know
Asana CSV export Included, marked by Parent Task Depth isn't documented. A snapshot, so new subtasks need a new export
Asana's Sync to Google Sheets Not stated on Asana's help page Advanced and above, 500-row cap
Unito's Google Sheets connector Not synced Unito's guide says its Sheets integration "does not sync subtasks"
Zapier One row per new subtask The New Subtask trigger adds a row per event, so you get a log of new subtasks
Make Watch modules for subtasks Watch New Subtasks in a Task and Watch Tasks or Subtasks. The matching is yours to build
Asana to Sheets Each subtask on its own row The parent task's name sits in its own column. Large trees sync slower

Unito is a strong tool for syncing both ways across many apps. For subtasks in Sheets it's the wrong pick, by its own documentation. Asana to Sheets vs Unito compares the rest.

Zapier and Make solve a different problem. They react to events, so they're good at logging each new subtask as someone creates it. Keeping a table of every subtask current means building your own lookup and update steps.

Big subtask trees sync slowly

Asana hands subtasks over one parent at a time. A sync that reads 400 tasks with subtasks has to ask Asana 400 extra times. Deeper levels add more on top.

Asana also limits how often any connected tool can ask. The limit is about 150 requests a minute on a free Asana workspace and 1,500 on a paid one. At 150 a minute, those 400 extra asks alone take close to 3 minutes. On a paid workspace the same 400 fit inside one minute.

A well-behaved tool pauses when Asana says slow down, then picks up where it stopped. So a first sync of a big project on a free workspace can run for several minutes. Later syncs are smaller. Asana rate limits explains the numbers in plain terms.

An Asana subtasks report in Google Sheets

Once subtasks land as rows with a parent column, the report is a few formulas. Build it on a second tab, never inside the synced one.

Say the synced tab has the name Tasks. Column A has the task name, column C has the parent task's name, and column E says whether the task is done. Your column letters will differ, so swap them in.

On a tab called Report, list your parent tasks in column A. Then add these.

  1. Total subtasks for the parent in A2: =COUNTIFS(Tasks!C:C, A2)
  2. Completed subtasks: =COUNTIFS(Tasks!C:C, A2, Tasks!E:E, TRUE). If your completed column shows a word like Yes, put that word in quotes where TRUE is.
  3. Progress as text: =C2&"/"&B2&" done", which reads like 3/5 done.
  4. Top-level tasks only, for a clean list of parents: =FILTER(Tasks!A:E, Tasks!C:C="")
  5. Latest subtask due date, if column D has due dates: =MAXIFS(Tasks!D:D, Tasks!C:C, A2)

The last one earns its place. Put it next to the parent's own due date. A parent due on the 14th with a subtask due on the 20th is a launch that slips a week. The sheet puts both dates on one line.

The same pattern answers the workload question from the top of this post. Swap the parent column for the assignee column and count open subtasks per person. 140 pieces of work spread over 5 people looks different from 38.

Asana has no checklists. Teams use subtasks instead, so a "3/5 done" column is the nearest thing to checklist progress in Asana.

One real catch. COUNTIFS matches on the parent's name. If 2 parent tasks share a name, their subtasks get counted together. Rename one of them in Asana, or add a second condition on the project column.

Keep the synced tab intact

The sync writes into the same columns every run. Delete a column or drag one somewhere else and the next run writes into the wrong place.

Resizing and hiding columns are safe. Everything else, from charts to pivot tables to the formulas above, goes on a second tab that reads from the synced one with QUERY or FILTER.

Frequently asked questions

Why are my Asana subtasks missing from the export?

Subtasks belong to their parent task, and many tools only read the project's own task list. Asana's CSV includes them with a Parent Task column, but the depth isn't documented, so check your file for deeper levels.

How many levels of subtasks does Asana allow?

Asana's help sets the limit at 5 levels of subtasks. A sync tool has to ask again for each level, so deep trees take longer.

Does Unito sync Asana subtasks to Google Sheets?

No. Unito's own guide to its Google Sheets integration says it does not sync subtasks. It does sync tasks, projects and portfolios.

Can I see which parent task a subtask belongs to in Sheets?

Yes. The CSV export uses a Parent Task column, and Asana to Sheets writes the parent task's name next to each subtask. Both match on the name, so duplicate parent names need care.

Do subtasks count against a row limit?

A subtask takes a row like any task, so 38 tasks with 100 subtasks make 138 rows. Asana's own Sheets sync caps at 500 rows, which a subtask-heavy project reaches fast.

Your next step

Export one project with deep subtasks and check whether the bottom level made it into the file. If it didn't, or you need the report to stay current, see what each plan includes on the pricing page.

Asana is a trademark of Asana, Inc. Google Sheets and Google Workspace are trademarks of Google LLC. Asana to Sheets has no affiliation with either, and neither endorses it.