How to Create an Organized, Digital Grocery List with Your Mouth
Grocery lists are like toilet paper and taxes: regardless of changes in the world around us, they’re really not going anywhere.
And like toilet paper, your interactions with your grocery list are going to be fairly regular. I hope. Mine sure are.
It won’t surprise anybody that I use my favorite task manager to house my grocery list. It syncs everywhere and even alerts me when I’m near my local grocery store. All fine.
The only friction in my grocery-buying process—other than the price of a good pork tenderloin—is the part where I add stuff to the list.
Sure, I can fire up OmniFocus, click over to the Grocery Shopping project and start adding items, but it takes several taps to do this and, more importantly, my grocery list is a living document. I want to be able to add one item when I think of it or twenty at once (and then a few more when I’m in the car on the way to the grocery store).
Nobody likes wasting time, least of all your loving Uncle Brett. My penchant for hyper-effiency led me to create the following solution for creating a grocery list with as little friction as humanly possible.
To reenact this particular robot dance, you’ll need four things:
In addition to my beloved Evernote, this list also happens to include three of my favorite iOS apps. If you’re not using any of these, you should consider it because they’re all insanely useful once you’ve got them wired up correctly. Hopefully this post will demonstrate just how useful these apps can be.
One thing I haven’t mentioned yet is that I shop at multiple stores for groceries:
- Sprouts, the hippy place that sells organic everything
- Ralph’s, the big-box place that only vaguely cares about organic stuff and sells inorganic detergents and other things that actually work (and my favorite frozen pizza)
- Target for miscellaneous things
That said, here were my requirements for this new grocery list creation process. I should be able to…
- type, in plain text, a list of the items I need to buy
- dictate said list, if necessary or convenient
- choose the appropriate store after I’ve composed the list
- have the list appear in OmniFocus, in the correct place and with the correct metadata (project and context)
So, after some munging around, here’s what I came up with. It works great:
First, capture. Drafts is the star of this part of the show, for sure. I just start typing my list, one item per line:
(Click/tap that image to see an embiggened version.)
Using Your Mouth
If you have the latest version of Drafts installed, you can use the dictation feature to capture your grocery list items instead of typing them. It works really well. There are two ways to access this mode:
- Force-touch the Drafts icon and tap the microphone, then start talking
- Tap the microphone in the Drafts Today widget
- Tap and hold the + icon in Drafts and select “Dictate” from the resulting menu
In the first two cases, the button you’re looking for looks like this:
Just make sure you say “new line” between each of your grocery items—“eggs, new line, milk, new line” and so forth—so the list is formatted properly: one item per line.
This is a pretty killer way to create a grocery list while your face is in the cabinet or refrigerator.
Bonus: If you have an Apple Watch, you can install Drafts and dictate your grocery list into the app. You’ll have to switch to Drafts on your iPhone to run the action that moves everything around, but you’ll feel a whole lot like Dick Tracy.
Once I’m finished, I run the “Add to Grocery List” action, which does two things:
- Prompts me to choose a store from a pre-defined list
- Launches Workflow and runs a workflow that’s called “[store] List” where [store] is the text of the button I pushed in the previous step (e.g., “Sprouts List”).
Here’s how the action is configured in Drafts. There’s a link to this thing below where you can download it and mess around with it if you like.
The first step is the prompt for input. I added my three store names, separated by the pipe character—right above the return key on an Apple keyboard—to create my button options. Whichever option I select when this runs will be stored as prompt_button:
The second step runs the Workflow workflow (which is super awkward to say/type). Using the prompt_button value, I dynamically assign the name of the workflow I want to run:
I have three workflows in Workflow, one for each store: Sprouts List, Ralph’s List, Target List. These workflows each perform virtually the same set of actions:
- Split the incoming text input into a list, one item per line.
- For each item in the list, add it to OmniFocus as part of the Grocery Shopping project with the name of the store as the context.
Here’s what the workflow looks like:
(The only part that’s not visible is the “End Repeat” action that runs after the whole loop operation completes)
As you can see, pretty simple. If you’re following along at home, just make sure you deselect the “Edit in OmniFocus” option. If you don’t, the process will halt when it opens OmniFocus and you’ll be forced to manually tap “Save” to continue (which would tank the utility of this whole exercise).
Once the workflow completes, it kicks me back to Drafts where, if I want, I can keep typing.
If I jump over to OmniFocus and take a look at my Grocery Shopping project, all of my stuff is there:
How to Set This Up on Your iPhone
Assuming you have all of the necessary apps already installed, here’s how to set this up for your own use:
- From an iOS device that has Drafts installed, tap this link to install the “Add to Grocery List” action. Add it to Drafts when prompted.
- Modify the Drafts action and change the button names to your frequent stores.
- From the same iOS device that also has Workflow installed, tap this link to download the “Sprouts List” workflow.
- Change the name of the workflow to match one of your preferred stores from step 2.
- Duplicate and rename the workflow so there’s one for each of your stores.
(Important: The store names in the Drafts button and in Workflow must match exactly. If they don’t, Workflow will barf up an error saying “No workflow called Piggly Wiggly List.”)
- Inside each workflow, find the Add to OmniFocus action and change the Context to the name of the store.
- In OmniFocus, create a project called Grocery Shopping and set it to be a “Single Action List.” This is where your individual grocery items will eventually live.
Once you have all of that wired up, you’re ready to rock. Type a few test items into Drafts and run the “Add to Grocery List” action. Tap the name of the store and a few seconds later, all of your items will be in the right place in OmniFocus.
Known Issues, FAQs
“When I run this, my phone completely wigs out and jumps between Workflow and OmniFocus and Drafts like it’s having some kind of fit. Can you see me through the phone’s camera?”
Inter-app communication on iOS is still a tricky affair. Most of the time, one must use URLs to create automations and this setup is no exception. All is well and there’s nothing funny going on; your phone is just rapidly switching between apps.
“You know, you could have figured out a way to use one workflow for all of these instead of creating three, nearly-identical workflows.”
As is, everything works fine and if I do ever need to modify the workflow, there’s only three of them.
“Why didn’t you just skip Drafts and use Workflow for the text input part?”
Because Drafts, among other excellent features, launches lightning fast, ready for me to type. Launching Workflow—even if I didn’t from a home screen shortcut—would require Workflow to spin up, launch the workflow I wanted, then ask me for input. It would have added another second at least and I was willing to spend five extra minutes to avoid that delay each time I want to remember to buy cheese.
Efficiency is all about removing friction and streamlining. There are myriad apps and tactics one might use to put together a grocery list, but this is about as friction-free as anything I’ve ever used and it works with the tools I already know and love.
Give it a try. If you love it, give me a shout on Twitter.
(Killer potatoes photo courtesy of Renoir Gaither)