Automate all the tasks

Omnifocus, Workflow, and templates

With all of the discussion around the Omnigroup’s release of automation for Omnifocus for iOS, I have found several types of automation can be run through Workflow.

  1. Project
  2. Project with Defer or Due Dates
  3. Project with variable replacement
  4. Optional multi-section project
  5. Omnifocus task manipulation

Basic Project

The most basic, just a list of tasks in a project. Almost no automation. Using the Taskpaper syntax in a Text Action, and passing the input to a Omnifocus URL.

Basic Project Workflow


Project with Defer or Due Dates

Omnifocus has some great built in automation surrounding dates, specifically the use of relative dates for tasks and projects:

2d, –3w, 1h, 1y1m, and so on — Relative dates and times put the date at a certain amount of time from right now. Negative numbers represent times in the past.

This feature can be used in the template format. Huzzah!

This Workflow only sets the due date for the project and uses the relative date formatting to set start and due dates for the tasks.

Sample Project Template

Basic project @context(A Context) @defer($dueDate -3d) @due($dueDate) @autodone(true)
    - Task 1 @context(Another Context) @defer($dueDate -3d) @due($dueDate -2d)
        A note for Task 1
    - Task 2 @context(A Context) @defer($dueDate -1d) @due($dueDate)

Project with Defer or Due Dates


Project with variable replacement

The same Replace Text Action used in the Projects with Defer and Due Dates can be used in multiple scenarios, not just dates.

Sample Project Template

$account project @context(A Context) @defer($dueDate -3d) @due($dueDate) @autodone(true)
    - Talk to $person1 @context(Another Context) @defer($dueDate -3d) @due($dueDate -2d)
        A note for Task 1
    - Prepare $account report for $person2 @context(A Context) @defer($dueDate -1d) @due($dueDate)

Project with variable replacement


Optional multi-section project

This is where the whole automation process gets interesting. Sections of the project can be omitted if not needed. Adding to this the variable replacement, now there is some significant automation to be had here

Optional multi-section project


Omnifocus task manipulation

I have long used Applescript on the desktop to manipulate tasks, creating a “waiting for” task, by prepending information to the task “Waiting for:” and changing the context to “waiting”. Creating a similar task in Omnifocus on iOS isn’t nearly as simple. Basing this workflow off of one provided by Ken Case, I have changed this to create a “waiting on” task in the format that I prefer.

Waiting On Omnifocus Task manipulation


I am very excited about the automation features that are now in Omnifocus. Using Omnifocus on an iOS device, without a desktop is becoming a reality.