4 min read

Using Siri to update your Todoist shopping list via Reminders

After Amazon removed the ability to sync your Alexa Shopping List to Todoist, and after I moved from denial to acceptance, I spent some time trying to figure out how to recreate the "add X to my shopping list" experience while keeping my shopping list in Todoist. I'm a Todoist diehard (a karma "master") and had no intentions of abandoning it.

I did, however, abandon Alexa (I disabled Alexa on my various Sonos speakers, returned my Echo Autos, and put my Echo Dot and Echo Flex into storage), so I needed a new voice assistant. I evaluated a few options, but as an Apple user, Siri was the easiest place to experiment with re-implementing my workflows.

▶️
At some point in the future, I plan to experiment with Josh.ai and/or Home Assistant Assist, but (spoiler!) Siri was able to do everything I needed — and I didn't have to purchase new hardware or set up a Home Assistant install.

With the power of the Shortcuts app, I got to work.

First attempt

Shortcuts are invoked via Siri by saying the name of the shortcut. In my case, I created a shortcut named "Add to Shopping List" and invoked it by saying "Siri, add to shopping list."

At that point, the shortcut would wait for additional input, at which point I would say the name of the item I wanted to add to my list. ("Siri, add to shopping list." [pause] "Fennel seeds.") I also had the idea to be extra clever and use a loop so I could add multiple items in a row, then stop running the shortcut if I said "stop" or "done". ("Siri, add to shopping list." [pause] "Fennel seeds." [pause] "Coffee filters." [pause] "Done.")

While this worked, it didn't catch on. For starters, Siri tends to be a little slower to parse your speech, and it was not uncommon that I would end up with garbled results as I jumped the gun, saying my next item before Siri had parsed and processed the previous item.

More importantly, the invocation was still awkward. The advantage of my Alexa integration was I could speak in natural language: "add [item] to the shopping list". Having to first invoke the shortcut, then say my items, was never intuitive and more often than not I would get frustrated when I got my incantations wrong.

Simplicity is bliss

After noodling on this for a while, I stumbled on a solution. After mistakenly saying "Siri, add bread to the shopping list" (rather than "Siri, add to shopping list. [pause] Bread. [pause] Stop."), I realized that Siri, like Alexa, supports this more natural speech pattern, and, also like Alexa, that invocation is locked to the platform's native list management tool. In the case of Siri, that's the Reminders app.

However, unlike Alexa, where your shopping list data is locked in the Alexa app, Apple's Reminders app has deep Shortcuts integration, which makes getting your data out an easy operation.

Armed with this information, I set about rethinking my approach. Rather than trying to bridge the gap directly between Siri and Todoist, I could actually ignore Siri entirely. Instead, I could let Siri handle getting the data into Reminders, then I would jump in to sync the contents of the Reminders shopping list to Todoist.

And… it worked!

Constructing the shortcut was relatively simple: find all the items in the Shopping List project, loop over the items, add them to the equivalent Todoist list, and remove them from Reminders:

Once I had the sync working, I could automate it so I didn't have to re-sync manually every time I added items. My initial plan was to use the "Time of Day" triggers to sync on a schedule, but time of day triggers can be awkward if you need frequent syncing (e.g. you can't set up "run shortcut every X minutes" which would have been my preferred approach).

Instead, I settled on triggering the sync whenever I left my home (when I leave home, I might be on the way to the grocery store) and whenever I open Todoist (if I open Todoist, I might be opening it to view my Shopping List).

So far, this has been a huge quality-of-life improvement, and made it much easier to maintain our shopping list. I still have some testing to do around syncing across multiple devices, as well as how this works from Apple Watch, but this is the closest I've been able to get to my old Alexa experience.

This process has also reinforced Siri's shortcomings. I hope Apple Intelligence helps with some of Siri's "smarts," but it also feels like Siri still struggles with simple speech processing. Alexa devices run circles around Apple with speech-to-intent pipeline speed, and Apple needs to make more of an effort here in this fundamental area; after all, conversational AI is no help if the AI isn't fast enough to hold a conversation.

Still, credit where credit is due: Siri's integration with the Shortcuts platform makes it far more capable for users with unique workflows or app integration needs. As Alexa stumbles, the relative openness of Siri in comparison makes it well worth the time for dissatisfied users who want to test the waters in a new ecosystem.