Ultimate Brain supports Notion’s native sub-items feature out of the box.
Since the Tasks database is configured as a “Tasks” database, its sub-items are called sub-tasks.
Ultimate Brain isn’t configured for heavy use of sub-tasks by default. Most task views, especially on the main page of the template, are set up to show a flattened list, meaning sub-tasks won’t be nested under their parents.
For example, the Scheduled view, which shows all tasks that have a due date, will show both parent and sub-tasks – but as a flattened list. I’ve made this design decision for a few reasons. A big one is that Notion’s mobile apps don’t move the toggle icon to the right side, and it’s simply too easy to accidentally tap the Status checkbox when trying to toggle open a parent task.
However, sub-tasks will always show where needed. If they’re given a Due date, they’ll show in the date-based views (like Scheduled). Additionally, every task page has a dedicated Sub-Tasks tab where you can view and manage sub-tasks.
On this page, you’ll find sections covering both the included automations in the template that focus on sub-tasks, as well as guides on how to add new sub-task-focused automations and other optimizations.
Copy link to headingIncluded Sub-Task Automations
Ultimate Brain ships with a few automations that deal with sub-tasks. Each of these are details in the Tasks database reference, which includes a full build guide for each:
- Change Project → Remove Parent – mimics behavior in Todoist and other task managers, where setting a Project on a Sub-Task will turn it into a regular task by removing its Parent Task. Warning: Enabling this automation will make it impossible to create sub-tasks directly in the Tasks views of a Project page. The filters will auto-assign the Project relation to the sub-task, triggering this automation and removing its parent. There is currently no fix this this behavior. IMO, most people won’t need this automation.
- Sync Parent/Sub-Item Projects & People – when enabled, this automation will sync changes to the Project, People, and Content (UB+CC only) relations on a Parent Task to its Sub-Tasks.
- Task Done → Close All Open Sub-Tasks – when a Parent Task has its status set to Done, all open sub-tasks related to it will also have their statuses set to Done.
These automations are disabled by default. If you’d like to use one of them, you’ll need to enable it. To do so:
- Unlock the Tasks database.
- Click the Automations (⚡) icon to view all the included automations in the Tasks database.
- Find the automation you want, click the
•••button that appears on hover, and set it to Active.
Auto-Complete a Parent Task When All Sub-Tasks are Done
Some folks want Ultimate Brain to automatically set a parent task’s to Done once all sub-tasks are finished.
This automation isn’t included with Ultimate Brain, but it is possible to build, so long as you have a paid Notion plan that allows you to create new database automations.
If you prefer video, here’s a Loom tutorial that shows the entire process.
With the Tasks database unlocked, access that same Automations menu (⚡) and click New Automation.
Here’s a look at what you’ll want to set up:
The Trigger section is easy. Just create a single trigger: When Status is set to Complete.
The Do Section will have two steps:
- A Define Variable step
- An Edit Pages In… step
Create a Define Variables step, then add a single variable named Parent that needs closing.
Click the Σ symbol to open the formula editor. You should be able to paste in this formula:
context("Trigger page").prop("Parent Task").filter(
current.prop("Sub-Tasks").filter(
current.prop("Status") != "Done"
).length() < 1
).filter(
current.prop("Status") != "Done"
)
Code language: JavaScript (javascript)
If not, you may need to type it manually. Here’s my primer on formulas if you need it!
This formula creates a list of Parent Page blocks, filtered so that a Parent Page will only be in the list if it’s not already Done, and if all of its Sub-Tasks are Done (which will include the one that just got marked Done, hence triggering this new automation we’re building).
Next, add an Edit Pages In… step. In the Data Source dropdown, select the Parent that needs closing variable. It should show up, because it represents a list of pages.
Select the Status property from the Edit Property dropdown, then set it to Done.


