Easier ways to work with Subtasks that are within the same table, Grouping

Hello Community!

I know this is a big topic around here, and I debated whether to create a new post, or add on to another:

A big piece in my Coda set up is related rows. I am trying to create an “All-in-One” Team Work management solution, for now in one doc, but perhaps using multiple as Cross-Doc evolves.

One of the biggest features that has drawn me to Coda is the great relations you can create. Granted, I eagerly await more around this functionality, but I will limit my comments about that for now.

A big challenge for me has been to determine which of my “stuff” should be in either a) different tables, or b) in one table, but relate with in-table lookups. In the latter case, I’m talking about tracking in one table things such as: Tasks and Checklists around those tasks, or say Product and Sub-Product; for example if you have a toy store and you want to set up your “Product” as “Model Airplanes”, and “sub product” each type you sell. I find lookups between tables fairly intuitive and I feel like I have a good grip on them, but the methods to set up In-Table Relations has challenged me. There is a good deal in the community here about how to use In-Table Subtasks, but it’s all pretty advanced.

You guys have released a bunch of great stuff lately to ease building out within the same table, such as the Advanced Table “Wizard:”

In particular for me, the ability to quickly add a column into a “destination” table that is related to the lookup was huge. So if I am looking up a Contact into my Company db, I can simply see in this menu the other columns I might want to quick add from the “Contact” table, like Email address, etc. without the need for a formula. Really great work with this guys!

I was thinking it would be great to see some similar capabilities when building out subtasks in the same table. Sorry to bring up Notion, but they have a pretty-user friendly Wizard of their own that walks you through doing this within a table:

I’ve tested that, and I’m able to set up some good in-table relations, or “rollups” I believe they’re called. I’m sure you guys are equally capable of similar Wizard/Prompts specifically around Subtasks in-table, so I hope you will find this suggestion useful!

What Notion can’t do though is the super-useful Grouping you guys offer. Another of my favorite features. But I am having trouble mastering this, in particular the differences between when you use it with In-Table Relations, or lookups. I posted about it here, but didn’t have much luck with a response:

This also relates to a huge area of potential on the card view that I am holding out hope that you guys may be working on, Swimlanes:

Right now you don’t have the true capability to create a horizontal breakdown, among other missing features in the Card View. With your already-excellent Grouping, you guys I think could really knock this one out of the park with just a few tweaks.

And finally, I wanted to reference another of your huge unique features that is closely related to all this - Subtables. I have found no other tool that allows such a great implementation of this. I have been building great views within table of subtables, and then adding related columns, etc. However it’s also a frustrating process, in particular when trying to deal with both In-Table Relations, and lookups. But you guys really designed the fundamentals here with real prowess. To again compare with Notion, I believe you have a much better arrangement as the user doesn’t need to embed a full table within a Row Details view, which is how Notion handles this (and I find overwhelming).

I hope this is all useful and I look forward to the evolution of these excellent tools in Coda. Part of my success in Coda is predicated around how easily I can get In-Table Relations, Groupings, and Sub-Tables all humming in unison.

Cheers guys!

1 Like

I just figured out a way to accomplish this. In my project management doc, I have a project with subprojects that all have subtasks. The subprojects are listed in the same table as the projects under the same headers. I added a column as a Lookup field type and added the projects that are “SubProject(s)”. Then I added a column called “Parent Projects” which uses this formula:
lookup(thisTable,[SubProject(s)], thisRow)
And for each “SubProject” I had added to a Project, those projects now list the “Parent” project automatically in the “Parent Projects” header.

Hope that’s helpful.

1 Like

Even cleaner is:
if(isblank(lookup(thisTable,[SubProject(s)], thisRow)),"",lookup(thisTable,[SubProject(s)], thisRow))

Up + 1

Sub-everything. :grinning:

Everything should have unlimited hierarchy.

  • page

    • sub-page
      • sub-sub-page
  • table

    • sub-table
      • sub-sub-table

Task, sub-task, sub-sub-task
Project, sub-project, sub-sub-project.

1 Like

I don’t know if it is helpful, as I see you are a “Regular” so you’re probably aware of this already, but it appears Coda is set up to have those subtables/subtasks, and I have my subtasks set up to easily add unlimited hierarchy of subtasks to a project. It’s simply a lookup of the same table. From the “Detail view” I then add this “SubTasks” field in as a table view and it is super intuitive to continually add subtasks to tasks in a project. I did the same with Projects, creating a SubProjects section to help delineate some of my more complex projects into phases or stages.


@Steve_Yang But I do agree that it would be nice to have some way to automate this kind of setup with a wizard or something.

Hi @Kolbi_Christianson

Thanks you for your help.

If you could share your doc without private data, and allow to copy , that’s very intuitive.

@ABp means more easier ways to …setup subtask by relation button in table of cell.

It’s about UX design.

In Coda ,there 3 ways to setup subtask .

  1. Group


  1. Simple lookup


The subtask is one of columns.

You can’t switch subtask by click subtask cell.

  1. Task Tree mode


task and subtask, sub-subtask is a tree mode on the left , other columns on the right .

You no need to switch all tasks , subtask ,sub-sub-task on the same place.

But it’s too advanced setup for everyone.

But you just need to copy that template, and then modify task, subtask name,

That’s why before I’ve request how turn into ouliner to table with formula with one button .

Most of my case ,need more than 3 hierarchies task.

sub-sub-sub- task

@Kolbi_Christianson and @Steve_Yang, hey appreciate the commentary here!

Kolbi, I think what you are describing is what I’ve been doing on my own as what I’d call a “manual” process that requires a good deal of delving into formulas, in particular filters and “thisrow” which has been one of the more challenging for me - I am not a developer. And in fact, Steve has hit the nail on the head of the point I was trying to make: Coda has the architecture to handle fully infinite “children” within a row due to the ability to do lookups inside a row and table. However, it is not intuitive from a UX point-of-view I’ve found, exactly as Steve is suggesting.

The other point that I continue to struggle with is the distinction between Lookups from other tables, and Lookups from the same table. There is various behavior I’ve seen - sorry I can’t recall now as it’s been a while since I looked at this closely - where they are different. Things like grouping and the ability to add inline, and some others I think.

I am really hoping to see some improvements come down the pike soon, I’m guessing the Coda Product Team has this somewhere in the backlog based on @Krunal_Sheth comment here:

which is a great post exhibiting the power of Coda, but again, too advanced for me!

Thanks again for your responses!

1 Like

There are a couple things I would be cautious of when trying out these strategies. Coda is a very flexible product that lets you do nearly anything you can dream up, but this also brings with it a little bit of responsibility in finding the right schema to use. The other side of this is removing all freedom and only allowing what is absolutely safe to use…which isn’t any fun. So we work hard to find the right balance of limiting a few things while also allowing the freedom to push Coda to new heights.

The first word of caution is that you can create circular references, This is where a formula tries to run that affects a row that is linked to another row that causes the first row to jump back into a calculation. This happens often with many-to-many workarounds and these can crash your doc. An example here would be having a Projects table and a People table and wanting to add people to the projects and projects to the people. It’s best to consider one direction of association in these cases.

The second word of caution is that you can drastically increase the size of your doc and performance can take a big hit. Here is a very simple example of a Projects table and a Tasks table. I only have one lookup column that allows only one option for each row. You can see when you hover over the previous rows reference in the column that all information from that row is included in the current row too. You’ve pulled it in with the lookup. You only have to do this twice for these to chain together, and at 3 times, you’ve quadrupled the data for a single row. A contains everything in B, which contains everything in C, which contains everything in D. This isn’t literally written data over and over, but it can operate as if that’s the case when formulas are involved.

You can see how much data fans out from the last row alone of this very simple table…which then will fan out again to include the Projects table row. So think about how complicated this gets if you have a couple dozen columns and hundreds of rows.

Be creative and give things a try for sure, but also check your schema for things that might add up over time. A well engineered doc doesn’t mean it has every feature you can think of, it means that it’s found a fine balance between efficiency and productivity.

For the reference to folding, this was a canvas feature that we released already. We may find more table tricks in the future, but they aren’t currently on the map.

Further Reading

Here are a couple great help articles that give some insight on how to better optimize your docs and formulas…

I’m always happy to help, but I also don’t want to let anyone build themselves into a corner, so I do look for schemas that will give you a long running and happy doc in the end!


Thanks @ABp reply
Thanks @BenLee let me know Coda can impletment Tree task .
Thanks @Krunal_Sheth template. really amazing !

I re-edit my reply .

  1. Group
  2. Simple lookup
  3. Task Tree mode