My Logseq Workflow

Intro

My overall goal is to have a workflow that is as simple as possible while still having just enough complexity to capture my needs. Everyone will obviously have a different balance between these two.

There are two essential parts to my workflow: a daily journal template and some special page types that I use for different kinds of data.

Daily Journal

I have a template which produces the following blank page for a new daily journal:

- ### Agenda
    - [[daily/writing]]
    - [[daily/exercise]]
    - [[daily/reading]]
- ### Schedule
- ### Web
- ### Inbox

Here is how each of those sections gets used:

Agenda

First I will fill out the “daily” items with the actual projects, reading, workout that I am using. Then I will add block references to existing tasks I am working on right now, or new tasks I have to do today.

It will end up looking like this:

- [[daily/writing]] [[paper title]]
- [[daily/exercise]] [[workout name]]
- [[daily/reading]] [[book name]]
- NOW Call [[contact]] about [[that project]]
- NOW Send that package off at the post office

Even though the daily tasks aren’t marked as TODO items, when done I will mark them as DONE to let myself know if I completed them or not. That way the page for [[daily]] works as a kind of built-in habit tracker.

Schedule

Here I will write any appointments or meetings I have for that day. I use a calendar plugin (from the sample plugins) to enter these on future days as well.

I have a query in my config.edn that shows me all my scheduled events for the next 3 days

{:title "⏰ 3 Day View"
   :query [:find (pull ?b [*])
           :in $ ?start ?next
           :where
           [?p :block/anchor "Schedule"]
           [?p :block/page ?page]
           [?page :block/journal?]
           [?page :page/journal-day ?d]
           [(>= ?d ?start)]
           [(< ?d ?next)]
           [?b :block/parent ?p]]
   :inputs [:tomorrow :4d-after]
   :collapsed? false
   :breadcrumb-show? false}]}

I also have a page with a modified version that shows me a two week view.

Web

Here I post markdown formatted links to any online articles I found interesting or useful that day, along with tags so I can find them again easily. I use a Chrome extension that allows me to easily copy pages in markdown format to the clipboard and paste them in Logseq.

Inbox

Here is where I create new tasks or projects, or sometimes make quick journal entries.

Special Page Types

Project Pages

Project pages are like tasks, but have many moving parts so they get their own page. I mark them as such with page-tags and a page property marking their “status”.

Special page tags are in the form project/travel, project/writing, project/teaching etc. Wrapping them in double brackets means that I can use auto-correct to remember the categories I use for this.

The status properties are the same as I use for tasks: DOING, LATER, DONE and so on.

A page’s first block might look like this:

tags:: project, project/writing
status:: DOING

I can then query these to see the tasks I am currently working on or plan to do later: {{query (and (page-tags project) (page-property status doing))}}

On some project pages I might also put a query at the top to highlight all the tasks buried on the page: {{query (and (todo todo doing) (page <% current page %>))}}

Contact Pages

Because I link meetings, tasks, projects, and even books and articles, etc. to individual people, it is good to have some structure to how I organize those pages as well.

Not all contact pages need an alias, but anyone I link to frequently has an alias so I don’t need write their full name every time. alias:: joe

I also use page-tags such as contact, contact/family, contact/favorites, contact/student, contact/business etc.

Reading Notes

I have two kinds of notes pages:

Highlights and Annotations

These are all imported from Readwise via Obsidian, using the official Readwise Obisidian plugin and some custom templates. (See my post on using Logseq with Obsidian if you don’t have that setup yet.)

If I markup the readwise file, adding highlights, or moving the notes into a more structured outline format, I will add a page level “status” property: “edited.” That helps me find the files that I have marked up further after importing.

In Readwise I set the YAML front matter as follows. (Logseq can read YAML formatted headers and treat them the same as page-properties. The difference is that YAML is a block of text at the top of a markdown file with --- before and after it. Also, the properties use one colon : instead of two: :: like page properties.)

title: {{title}} (Readwise)
alias: {{title}}
tags: readwise, {{category}}, {{source}}

My Reading Notes

The second kind of reading note pages own note pages which all titled last name date such as Smith 2010 and have page-tags to make search easier.

Books might have aliases if I refer to them a lot, just to make it easier to link to them if I forget the author and date, and that way I also don’t need the full name of the book or article.

Books will also have page-tags in the format: publication, pub/book, pub/academic, pub/teaching etc.

On these pages I will link to the imported readwise highlights as well as place any additional notes. (One can think of these pages as MOC (Map of Content) pages for that book or article.)

Sometimes I will do an additional step of highlighting specific highlights on my Readwise pages using the format == highlighted text == and then use the Obsidian “Extract Highlights” plugin to copy these to the clipboard and past them on the publication page I have created.

(I would use the built-in Zotero support to create these pages, but I don’t use Zotero, I use Paperpile. I may consider switching in the future, but that would require a lot of work and I actually like Paperpile better, though Zotero is catching up.)

Etc.

The following are not special pages, but I thought they deserved some discussion here as well, since they are important parts of my workflow.

Meeting Notes

These will usually just be directly under the meeting in my daily page “schedule” section, but sometimes I will create a separate page for these.

Wishlists

Wishlist items are just TODO items tagged with to/watch, to/see, to/eat, to/visit, etc. and a priority A, B, or C though C means that I am currently reading, watching, or planning to visit (etc.) that item. I use TODO instead of NOW, LATER, etc. because that way these don’t show up in my normal task queries. One can think of it as the equivalent to a “SOMEDAY” tag, which I would use instead if I could customize the terms.

Final Thoughts

All this works pretty well for me as it is. What would make it better are some feature requests I’ve put in, such as a built-in readwise plugin, built-in support for task-like project pages, customizable TODO keywords, better options for repeating tasks, and a built-in schedule or calendar feature. (Paperpile support would also be nice, but Paperpile hasn’t yet released an official API for developers to work with…)

cool workflow!
for URL copy try “Copy as Markdown” plugin Copy as Markdown - Chrome Web Store - it can copy tab, all tabs, selected tabs links

3 Likes

Thanks for sharing - very interesting to read - even / or especially because our workflows differ in some aspects there are other parts that are similar.

I find it very inspiring to learn how others manage their notes and tasks. :heart:

3 Likes

Thanks. Useful reference for my own workflow. Some thoughts while going through it.

  1. Daily Journal structure. You structure by function (Agenda/Schedule/Web/Inbox). I structure by chronology (mostly). Typically looking something like this in the middle of the day.
- 07:00 -> [[YouTube]] LD18, DP
    - 14:00 RCE
- 12:00 -> [[WhatsApp]] cleared backlogs -> 12:30
- 16:00 -> [[TransitMY]] shared [A/B Street](https://github.com/a-b-street/abstreet) 
    - micro transit simulation using OSM base map for lanes/intersections information
- 17:00 -> [[Logseq]] web now v0.3.9
    - discuss workflow
    - discord custom theme
-
- Something I noted earlier but didn't do, so no time mark.
- LATER something else I noted and want to do in future [[Sep 27th, 2021]]
  1. TODO items. I treat all items in the daily journal as daily tasks. I think the NOW/LATER preferred worklow that rotates LATER/NOW/DONE actually implies all items/blocks are todo tasks. You said …

Even though the daily tasks aren’t marked as TODO items, when done I will mark them as DONE to let myself know if I completed them or not.

3 Likes

Regarding #2, I now do something similar with my daily tasks (e.g. [[daily/writing]] as above). I will mark these as DONE, even though they are not marked as TODO initially. Mostly so I can query which “daily” tasks I have completed and get a sense of my last week…

Are you doing anything with task organization or handling projects with a lot of tasks listed?

Not sure I understand the question. Did you see my comments about project pages in the original post?

I did, but when I read this:

I wasn’t sure if that implied you had a different, parallel/connected process (possibly written about elsehwere) for task management and/or for displaying and keeping tracks of tasks across projects, or if you had a specific method on the project pages, etc.

In short, I am trying to figure out if I can work things well enough to drop ToDoist…but that might be too big a bite until I understand more about queries, attributes, etc in logseq.

2 Likes

Well, I mention in that section that I run a query on long project pages to show all the tasks mentioned on that page at the top. Beyond that, one can use tags to link together related tasks across project - for instance by tagging a co-worker (these will then show up on that person’s page in the backlinks). For me this works better than Todoist for everything besides collaborative projects, and I used Todoist for many years before this.

7 Likes