Table of Contents

Next: , Previous: Using TODO states, Up: TODO Items


5.2 Multi-state workflows

You can use TODO keywords to indicate different sequential states in the process of working on an item, for example:

     (setq org-todo-keywords
       '((sequence "TODO" "FEEDBACK" "VERIFY" "|" "DONE" "DELEGATED")))

The vertical bar separates the TODO keywords (states that need action) from the DONE states (which need no further action). If you don't provide the separator bar, the last state is used as the DONE state. With this setup, the command C-c C-t will cycle an entry from TODO to FEEDBACK, then to VERIFY, and finally to DONE and DELEGATED.

Sometimes you may want to use different sets of TODO keywords in parallel. For example, you may want to have the basic TODO/DONE, but also a workflow for bug fixing, and a separate state indicating that an item has been canceled (so it is not DONE, but also does not require action). Your setup would then look like this:

     (setq org-todo-keywords
           '((sequence "TODO(t)" "|" "DONE(d)")
             (sequence "REPORT(r)" "BUG(b)" "KNOWNCAUSE(k)" "|" "FIXED(f)")
             (sequence "|" "CANCELED(c)")))

The keywords should all be different, this helps Org mode to keep track of which subsequence should be used for a given entry. The example also shows how to define keys for fast access of a particular state, by adding a letter in parenthesis after each keyword—you will be prompted for the key after C-c C-t.

To define TODO keywords that are valid only in a single file, use the following text anywhere in the file.

     #+TODO: TODO(t) | DONE(d)
     #+TODO: REPORT(r) BUG(b) KNOWNCAUSE(k) | FIXED(f)
     #+TODO: | CANCELED(c)

After changing one of these lines, use C-c C-c with the cursor still in the line to make the changes known to Org mode.