I’ve been a huge fan of OmniFocus for years. A desire to play and inherent techie curiosity have made me try a wide range of other task management solutions, ranging from the simple to the complex, but OmniFocus is always the one I come back to. One of the great things about OmniFocus is that as much as it tries to adhere to the David Allen GTD Philosophy, it’s still powerful enough to be flexible for use in a myriad of other ways. I’ve spent years tweaking my workflow to get it down to something usable for me, and while I’ve eschewed the “purist” GTD approach in the process, I’ve managed to come up with a structure that mostly works for my needs.
However, I’m always looking on the side for ways in which I can improve the focus and consistency of my workflow, and one of the great things about the OmniFocus community is how many people are on the same page in that regard, sharing ideas and unique ways of approaching task management, producitivty, and focus. So it wasn’t surprising when I had a “eureka” moment on coming across Kourosh Dini’s recent post on Grouping Tasks by Session.
My current approach
I’ve been using a concept of a single “Hotlist” of tasks I want to action in the near future for some time, with a combination of weekly reviews, due dates, and flags to mark those actions as “doable” and leave everything else aside, but there are those days when my Hotlist is just cluttered to the point of affecting my focus. Contexts have never worked particularly well for me, as I work from home, so lines get blurred in that area (I can be at my “Desk” doing my home budget, or at my “Desk” writing a review for iLounge), and I’ve never found a mix of contexts that works particularly well for those purposes. I prefer to use focus areas as opposed to contexts, and then custom perspectives to take it from there.1
The problem, of course, is that there’s still room for stuff to get lost in the mix, especially that low priority stuff that I really do want to deal with when I have the time, but just doesn’t fit directly into my “Hotlist” model — it’s either too low priority to ever justify being flagged, or it’s medium-priority enough to make it onto the list, but too easily glossed over when more important things are on there as well (which is almost all the time). When I read Kourosh’s post, it suddenly clicked that putting all of these low-priority lists under “tickler” items in my Hotlist was the ideal way to accomplish this — keeping my Hotlist focused while ensuring that the other lower-priority “focused” lists don’t get too easily ignored.
Another element of secret sauce that makes this work is Kourosh’s discussion of the Considered Task. I had already implemented this in a lighter form — usually for single actions that need to be thought about — but combined wih the “Dashboard” concept it suddenly made even more sense. Lists of lower-priority tasks could be linked from a “Consider:” task, prompting me to at least think about tackling those lists on a regular basis, so I can bang off a couple of items when I have the time, but legitimately ignore the entire list and move on during days when things are too hectic, without having to mess around with adjusting defer dates or rescheduling things. Even with the keyboard shortcuts I’ve setup for deferring tasks2, there’s something still more logical to my workflow to “Consider” something as opposed to just pushing it off — one feels like success, while the other feels like failure, or at least procrastination.
Each of these “focus areas” are created as custom perspectives that include all available tasks from several focused projects and folders. Examples include things like tech projects, household projects, and blogging. I also use “Consider:” and other suggested prefixes such as “Review:” and “Clean:” in front of tasks that can be used to ping me to take other actions, such as reviewing items I’ve saved in Pocket, or getting to inbox zero by the end of the week, or considering making an entry in my Day One journal.
I’m a “fingers-on-keyboard” kind of guy, however, so I generally prefer keyboard shortcuts for routine tasks over having to fiddle with a trackpad or mouse, so that prompted me to find a way to automate this process even further. Kourosh’s idea of linking to perspectives in the notes of each Dashboard task is great, but the clicking of that didn’t feel like “flow” to me, so I set about to find a more intuitive way. The result was a bit of time spent baking up an Applescript that I could link to a hotkey via Alfred or FastScripts.
Scripting Better Flow
The original idea began with just fetching a link out of the Note field, although this was complicated by it usually being a rich text link. It took more messing around than I care to admit to before I came across this post by amy in the OmniGroup forums, which of course pointed out a method that’s built into the OmniStyle Script Suite in the OmniFocus dictionary.3
The script of course evolved from there into not only being able to open other perspectives, but since it’s based on a URI handler, anything else that uses a URI call, such as web pages (http:// and https://), links to send emails to people (mailto://), and even placing phone calls via Handoff (tel://). This means that I can put somebody’s phone number (as a rich link) into an OmniFocus note, and then simply call them on my iPhone by selecting that task and pressing CMD+G.
Since some of my tasks also prompt me to open apps to do things — Day One for journalling, Mail for reviewing my Inbox or follow-up folders, Pocket for reviewing my reading list — I also wrote in a trick to open any named app simply by prefixing it with “App: “ so a note that says “App: Pocket” will automatically open the Pocket app when the appropriate hotkey is pressed.
Anyway, In the true spirit of the OmniFocus community, I figured I should share my results for anybody else who wants to play around with this. I’m far from a “pro” Applescripter, so feel more than free to point out anything here that you think could be improved, or just take the script and run with it yourself and do whatever you like. If you want to download it directly, you can get it here.
A series of Applescripts, mapped to keyboard shortcuts with FastScripts, allow me to automatically “snooze” tasks to later in the day, the next day, the weekend, or next week. I’ve adapted them from Dan Byler’s original Snooze script ↩
Huge kudos are in order to The Omni Group for this one. Other methods for getting links from rich text in AppleScript are ugly, cumbersome and messy, to put it mildly. ↩