Building Out Your Roam Part 3: Templates and TODOs

In building a system for information consumption and processing, I have focused on one goal above all else. I want to avoid context switching...

Building Out Your Roam Part 3: Templates and TODOs

In building a system for information consumption and processing, I have focused on one goal above all else. I want to avoid context switching...

In Part 2 of this series, I discussed how you could use block references in Roam Research to create a navigation framework for your database. In this article, I will discuss Roam native templates and TODO item queries. Templates will build out specific pages faster. TODO item queries will allow you to maintain focus while working with TODO items.

TODO Queries and Context Switching

In building a system for information consumption and processing, I have focused on one goal above all else. I want to avoid context switching... Digital Smart Notes Part 1

If you have read my Digital Smart Notes article series, remember that in part one, a driving concept behind building out my smart note-taking system was to avoid context switching. I want my attention to stay focused on the task I'm doing at the moment. With that in mind, I tend to remain in the Roam Daily Notes Page (DNP) for most of my work in Roam.

When I want to add a TODO item to my database, I will add the item with appropriate tagging and let queries resurface them. Let's see what this looks like in practice by adding some TODO query sections to the block reference navigation we have been building in part 1 and part 2 of this series.

Adding Work TODOs to Your Navigation Structure

Follow these steps to add the Work TODO structure:

  • Create a page called "Work Tasks" and navigate to that page.
  • Open your "Life" page in the right sidebar.
  • Copy the #Work block reference to the first block under the "Work Tasks" page
Work Block Reference Under Work Tasks
Work Block Reference Under Work Tasks

Building Out Work Tasks with Queries

I use two main tags for any TODO item: #LiveList, #WaitingFor. The "LiveList" tag is for TODO items that need my attention soon. The "WaitingFor" tag is for TODO items that require an action or communication from someone else. I also use the concept of a "Backlog" of TODO items that are not tagged with either "LiveList" or "TODO."

With that in mind, let's create some sections in the "Work Tasks" page to place queries by following these steps:

  • Create three highlighted sections as siblings to the #Work block reference block. They should be ^^LIVE LIST^^, ^^WAITING FOR^^, and ^^BACKLOG^^.
  • Create an AND, NOT, OR query indented under the "LIVE LIST" block. It should look like this: {{[[query]]: {and: [[Work]] [[TODO]] [[LiveList]] {not: {or: [[query]]}}}}} The reason to add the NOT, OR is to filter out actual queries themselves that may contain the page references that are being queried. As a rule of thumb, I always use OR if I need to add another exclusion in the future quickly.
  • Create an AND, NOT, OR query indented under the "WAITING FOR" block. It should look like this:{{[[query]]: {and: [[Work]] [[TODO]] [[WaitingFor]] {not: {or: [[query]]}}}}}
  • Finally, create an AND, NOT, OR query indented under the "BACKLOG" block. It should look like this: {{[[query]]: {and: [[Work]] [[TODO]]{not: {or: [[query]] [[WaitingFor]] [[LiveList]]}}}}}
Work Tasks Page
Work Tasks Page

Creating and Navigating New Work Tasks

With proper tagging, you can surface TODOs with these queries. Let's test it out by creating a TODO on the Daily Notes Page using the following steps:

  • Open the "Life" page in the right sidebar.
  • Open the Daily Notes Page in the main area.
  • In an empty block on the Daily Notes Page, hit Ctrl(Cmd on Mac)-Enter to toggle a TODO item.
  • Type the following: Some important work task I need to do soon. #Work, #LiveList
  • Hit enter to go to the next block, then type the following: Some important work task that I need input on. #Work, #WaitingFor
  • Finally, hit enter to go to the next block, then type the following: Some work task that I will get to eventually. #Work

You should now have three TODO item blocks on your Daily Notes Page. Since they are properly tagged, they will also resurface with the appropriate query.

Daily Notes TODO Items
Daily Notes TODO Items

Navigate to the queries that we just created in the "Work Tasks" page with the following steps:

  • Click on the inline-block reference number to the right of the #Work block.
  • Click on the words "Work Tasks" that appear.
  • You will see the "Work Tasks" page structure that you created.
  • Expand the "LIVE LIST" section to see the query results.
  • Expand the "WAITING FOR" section to see the query results.
  • Expand the "BACKLOG" section to see the query results.
TODO Items Under the Life Navigation Page
TODO Items Under the Life Navigation Page

When you surface your TODO items with queries, you can avoid context switching by simply tagging them as you create them in the Daily Notes Page. By adding some simple navigation under the "Life" page, you can trust that you will easily find the items later.

Projects, TODOs, and Meetings

Often, your TODOs will be project-related and not just work-related. You can also track projects and their TODOs in the navigation framework you are setting up by following this article series. I like to track projects by creating a new page for each project. The naming convention of that page is "P-. On that page, I place a project structure for my project notes and TODO items.

Test Project Page
Test Project Page

I use the following highlighted sections:

  • Keywords- The "Projects" tag is listed here by default. I'll separate any others that I think are necessary with a comma. The keywords make querying easier should I need to do so in the future.
  • Due Date- The due date, if known, for a project. By default, I use a "TBD" tag.
  • Goals- Goals for the project.
  • Project Todos- Query for project-specific TODO items.
  • Deliverables / Files / Links- Important links, files, or other deliverable for the project.
  • Meetings- Query for project-specific meetings. I will detail the structure that I use for meetings in the next article in this series.

You can set up this page structure very quickly by using a Roam Native Template. Templates in Roam are a feature that lets you type ";;" and bring up a list of templates that, upon selecting one, will automatically fill in the structure in the template. To create a template, use the following steps:

  • Create a new page called roam/templates.
  • In the first block on the new "roam/templates" page, type the template's name. For this example, let's use Project Page.
  • Then, indented under the "Project Page" block, type out the rest of the page structure. You will need to adjust the queries so that they are AND, NOT, OR queries to exclude the "roam/templates" page and any queries themselves.
Project Page Template
Project Page Template

To see how this works, let's create a new project page by using the following steps:

  • Create a new project page called "P-Test Project 2."
  • Copy the "P-Test Project 2" page title text so that you will be able to paste it once the template builds out.
  • On the first block in the page, type ";;" to bring up the list of templates and select the "Project Page" option.
  • The rest of the page will build out.
  • Finally, replace the "P-ProjectName" text in the queries with the actual project name.
Template Selection Command
Template Selection Command
Test Project 2 Page Template Build Out
Test Project 2 Page Template Build Out

Work Projects Navigation

Now that you have created a project page structure, you can easily bolt the navigation structure for those pages into your "Life" page navigation. To do this, use the following steps:

  • Create a page called "Work Projects."
  • Copy the #Work block reference from your "Life" page into the first block of the "Work Projects" page.
  • Under the #Work block reference block on the "Work Projects" page, embed each project page that you create by typing the following (P-Test Project example): {{[[embed]]: [[P-Test Project]]}}
Embedded Project Pages
Embedded Project Pages

You can now discover the projects through navigation. To see it in action, open the Daily Notes Page on the main screen and open the "Life" page in the sidebar. Take the following steps:

  • In the next empty block, create a new TODO item and tag it with "Work" and the project name.
  • Click on the inline-block reference number to the right of the "Work" block under the "Life" page.
  • Click on the "Work Projects" text to expand the new "Work Projects" page structure.
  • Click on the bar to the left of the "P-Test Project" page to expand the "P-Test Project" page.
  • You will see the entire project page and the newly created task under the "Project Todos" query.
Project Navigation Under Life
Project Navigation Under Life

Conclusion

We covered a lot of ground in this article. The structures you are putting in place now for "Work" can be implemented in the same way for the "Personal" section of the navigation framework.

Harley Stagner

I'm an IT professional working in technical marketing. I truly believe that our thoughts are the most unique asset that we can offer to the world. This will be a curated collection of mine.