2017-09-11 My email capturing workflow

Last edit

Summary: +category

Changed:

< CategoryEnglish, CategoryBlog, CategoryEmacs

to

> CategoryEnglish, CategoryBlog, CategoryEmacs, CategoryOrgMode


I’m constantly fiddling with my email workflow. Those of you who are not professional procrastinators like me will probably never understand where the difficulty of answering a short email with a one-two sentence response may be a problem requiring a few days; those who are will probably nod their heads with the “been there, done that” gesture. And I guess many people will sympathize with me about the (sometimes quite important) emails lost forever down the “unread” list.

Of course, this shouldn’t happen, and therefore people are constantly devising various schemes to alleviate this problem. Probably the most famous one is “Inbox zero”, which I may decide to use at some point in the future.

Until recently, I had a Beeminder goal of spending [some time] on email every day. This turned out to work only partially; some emails still fell through the cracks. A few days ago, I came up with a (hopefully) better scheme: I set up another Beeminder goal, essentially boiling down to the commitment of having my (kind of) inbox empty at least once every four days. And “inbox kind of empty” means in this context: no unread messages for the last week.

See what I did here? This should work, no? Only that there is one more problem. What about an email which requires some action (and which must not be forgotten about), but this action cannot objectively be done now (for instance, it depends on a piece of information I am yet about to receive)?

What I decided to do is to flag that email and create an Org-mode to-do task (using the capture mechanism, of course).

But flagging an email in mu4e requires a few keystrokes. I don’t like that, so after a while of edebugging I came up with this.

(defun mu4e-flag-message-at-point-now ()
  "Flag the message at point immediately."
  (interactive)
  (let ((msg (mu4e-message-at-point)))
	(funcall (plist-get (cdr (assq 'flag mu4e-marks)) :action) (plist-get msg :docid) msg nil)))

And to bind all this together, I now have this in my setup:

(defun make-this-message-into-an-org-todo-item ()
  "Flag this message as important and capture it in Org-mode."
  (interactive)
  (mu4e-flag-message-at-point-now)
  (org-capture nil "t"))

The "t" corresponds to a “to-do” capture template:

(setq org-capture-templates
	  '(("t"
	 "Todo"
	 entry
	 (file+headline "~/capture.org" "TODOs") ; replace ~/capture.org with your path
	 "* TODO %?\n  %i\n  %a")
	;; more templates here...
	))

And the last piece of the puzzle is a keystroke for the above command in one of my hydras.

Obviously, this creates a potential loophole in my system, if I procrastinate on Org-mode to-do tasks. If this becomes a problem, though, it is simple enough to solve (or so I hope at least). The main accomplishment here is that I can stop treating my inbox as a to-do list (which doesn’t work for so many reasons). Anyway, we’ll see how it works.

Do you have anything similar? How do you ensure you don’t miss important emails? Share your wisdom in the comments!

CategoryEnglish, CategoryBlog, CategoryEmacs, CategoryOrgMode