Challenge 4: Build a Project Management Dashboard

Click here to download the training graph for Challenge 4

We now challenge you to create the basic building blocks for a project management dashboard. No matter if you do client work or personal projects, what you practice today will come in handy for any project-related work.

The use case for today’s challenge is a bit different from the previous days. The reason is that we’ve noticed that most people using Logseq for projects do so in a client setting. That means that they juggle multiple projects for multiple clients.

Luckily, queries provide us with the tools to sort through piles of notes. Instead of repeatedly searching for the same information, queries enable us to create a single page for a client to automatically (and continuously) search the graph for relevant notes. This gives queries a huge time-saving potential.

As in the days before, we first look at the inputs, movements, and outputs for this process. Use this information to complete the exercises. If you’re stuck, ask for help in today’s forum topic.

The inputs

For this challenge, our inputs are:

  • Meeting notes related to client projects.
  • Tasks that are mixed in between meeting notes.

The movements

These are the steps to go from inputs to outputs:

  1. The starting point is to run a meeting template and fill in the links or properties in the parent branch.
  2. Add text in a Notes subbranch.
  3. Add tasks in between the notes.
  4. Fetch all tasks mentioned during the meeting.
  5. Filter out all tasks from the notes to create a summary.

The outputs

For this challenge, we’re looking for two outputs that will help create an outline for stakeholder updates:

  1. A list of tasks, distilled from the notes branch.
  2. A summary of clean notes (not containing any tasks).


  1. Inspect the structure of the meeting notes on page 2022/08/15 (make sure you use the training graph for challenge 4) and answer the following questions:
  • What is the function of each value in the query in the Tasks subbranch?
  • Why isn’t Finalize contract by having Marvin Acme sign it showing in the Tasks query?
  • What do you need to keep in mind when using the <% current page %> variable?

Hint: View the query in isolation. Why isn’t it showing any results?

  1. In the Summary subbranch of the meeting notes from 2022/08/15, add a query that fetches all notes but not the mixed-in tasks that are in status TODO or DONE.
    (Hint: Use separate not filters as there’s a known issue in some Logseq versions where the or and not filters don’t mix well.)

  2. Create a new template with at least the following characteristics (you choose what functionality to use, be it links or properties):

  • A value to mark the main branch as a Meeting.
  • A value to mark the main branch with the Client Name.
  • A subbranch that’s marked with the value Notes.
  • A subbranch that contains a query with Tasks and only fetches any TODOs from these meeting notes.
  • A Summary subbranch that contains a query that fetches all notes from these meeting notes, but filters out all tasks (TODO and DONE).

Stuck? The meeting notes you worked with in the previous exercise are a basic version of this exercise. Challenge yourself by creating a variation of this structure, using properties for example.

  1. On today’s Journals page (2022/09/01), use your meeting template to create dummy notes for a new client.
    Tip: See this Time article if you need inspiration for a name.

  2. On the page of each Client, add the following queries:

  • All Notes related to the client.
  • All open tasks (TODO) related to the client.
  • All closed tasks (DONE) related to the client.

Bonus points if you use more advanced features like the between filter and <% current page %> variable.

Questions? Insights?

If you have any questions or insights related to today’s challenge, please post them in this forum topic.

Much of the information surrounding my projects I send or receive through phone calls and emails. For phone calls, I can create a note in the journal page with the attribute “phone in/out” and a project reference, so I can see the calls from that project on a timeline afterwards via a query. Is there anyone, who has practical experience with capturing in Logseq the information, which comes from emails? Also there I would like to follow the thread with queries.

1 Like

I rarely draft emails in Logseq, but I do link to emails from tasks. If you’re on Mac, you can use Hook Productivity, which lets you create Markdown links to practically anything on your Mac (including messages within email apps).

Beyond straight copy & paste? Not really, I typically copy the header info + body and paste them into a quoteblock in Logseq for reference. Then my tasks or references are added as child blocks below the quoteblock.

- > from:: blah blah
  to:: blah blah
  subject:: blah blah

  Body message contents go here...

  - TODO Task items
  - My notes & thoughts

And it’ll look something like:


Thank you for sharing your process.

is there a video on this process recorded?

No. The whole course was text-based, and the challenges are there to get you to create something that works for you. Maybe in another cohort I’ll add videos, but my main aim is for people to start hacking around and get ideas they can apply to their own graph.

In other words: finding the “correct” answer isn’t the goal; the goal is to get you writing queries which hopefully will spark ideas for your own graph.

P.S. Welcome to the community! Make sure to surf around a bit to see what others have built.

1 Like