The Shortcuts App
With the Shortcuts app, the best timeline scenario I imagined last year is coming true: Shortcuts is the new version of Workflow, redesigned and updated for iOS 12. The Shortcuts app aims to keep near-perfect compatibility with your existing workflows, and uses iCloud sync to make them available across devices, replacing the old proprietary Workflow Sync service. Shortcuts isn't a "spiritual successor" to Workflow, like Apple Music might have been for Beats Music; Shortcuts is a continuation of the same app based on the same design, automation model, and integration with iOS features. Rather than calling it Workflow 2.0, Apple has taken the app we know and love, renamed it Shortcuts, and relaunched it as an advanced take on iOS 12's shortcut system.
In this review, I won't go over every single detail of the Shortcuts app for a simple reason: there are four years of Workflow coverage on MacStories that explain features and use cases that are still valid for the Shortcuts app today. If you want to know what Shortcuts can do and download practical examples I put together in the past, you can start here and spend a few days catching up. Allow me, however, to offer a brief recap and go over some of the key similarities between Workflow and Shortcuts.
The main idea behind Shortcuts is that you can assemble custom shortcuts to automate and speed up tedious tasks that you perform on a regular basis. This is done by chaining together a series of visual steps that pass data to each other and execute a sequence of actions from top to bottom. The design of Shortcuts is heavily inspired by Apple's automation app for the Mac, Automator. Like its muse, Shortcuts doesn't require any programming knowledge: you don't write code or scripts to make these actions run; you add them via drag & drop from a built-in editor that contains pre-assembled actions.
There are similarities with programming languages in Shortcuts, which is why people often refer to it as "visual programming". To pass an item – which can be some text, an image, a document, etc. – between actions, you use variables. A variable is a piece of content that can change dynamically every time a shortcut runs. However, the Workflow team had a fantastic idea years ago: unlike traditional programming languages such as Python or Swift, users don't even have to create and manage variables themselves thanks to a feature called Magic Variables. With Magic Variables, Shortcuts automatically generates variables for the result of each step, and the user can pick them, rename them, and use them with a visual editor.
Other traditional programming concepts have been implemented in a similar vein: conditional statements and loops are visually indented in the editor and you can define conditions or repetitions with a visual menu; the classic
console.log functions to display a result message have been replaced by native alerts that pop up in the middle of the screen. While you may be dealing with classic programming techniques when creating a shortcut, you never notice because of the app's visual, user-friendly approach.
This is largely made possible by two other fundamental concepts of Workflow that are at the center of Shortcuts as well: the Content Graph and integration with iOS frameworks. The former is a powerful engine that, behind the scenes, manages variables to ensure they can be passed from one action to another without producing errors. It is a unique spin on the idea of type coercion that, however, is completely abstracted from the user. The Content Graph is one of the most powerful proprietary Workflow technologies that Apple acquired alongside the app.
Integration with iOS and apps has always been Workflow's most impressive trait, and it's been further enhanced for the new app. Shortcuts has actions that integrate with native iOS features such as Reminders, Calendar, Apple Music, and Maps; it supports Quick Look and can import documents from Files; if you're an advanced user, Shortcuts can make HTTP requests and leverage iOS' built-in (Cocoa-flavored) regular expression engine.
You can fetch reminders in the background and run regular expressions in Shortcuts.
Shortcuts features native support for Apple Music, the iTunes Store API, and Siri. It can even send messages in the background.
You can set the device volume by using a numeric value.
Date calculations and Do Not Disturb are supported by Shortcuts too.
In addition to what you can do inside Shortcuts with iOS integrations, the app extends its reach throughout the entire system: you can run shortcuts as widgets; you can summon a shortcut from the share sheet with an action extension; and in iOS 12, you can even use your custom shortcuts running inside Siri. Deep, secure, and visual integration with iOS made Workflow stand out from other automation utilities years ago, and this aspect is stronger than ever in Shortcuts.
Applying these concepts when assembling a custom shortcut yields unadulterated freedom to create visual automations for anything on iOS. Perhaps you want to rotate and resize multiple photos in a row; or maybe you want to perform a mail merge to send emails to a few dozen contacts; perhaps you want to pass a series of tasks to the Things app or turn a selection from Safari into a note in Drafts. All of this is possible with Shortcuts. The app's automations are easy to build, they can save you time and provide consistent results, and they can be integrated with the system or even with each other. Your imagination's the limit.
As I mentioned above, if you never used Workflow before, I strongly recommend catching up here to learn the fundamentals of features that I can't cover in-depth in this review. It's fine – I'll wait. Fortunately, links to old workflows I shared on MacStories (and Club MacStories) still work today and allow you to import legacy workflows into the Shortcuts app. And if you'd rather listen than read, I suggest downloading the Workflow series we recorded on the Canvas podcast last year.
Now, let's have a closer look at the new Shortcuts app and what it enables in iOS 12.
What's New in Shortcuts
Shortcuts takes Workflow's grid-based design and refreshes it with an aesthetic that's more in line with other Apple UIs. The app is still organized in two main tabs: the Library, which features a colorful grid of your shortcuts, and the Gallery, which contains over 300 examples of shortcuts created by Apple ready to download and use. Apple has done an outstanding job picking useful examples for a variety of tasks and organizing them in a gallery that can be browsed and searched.
Once you've found a shortcut you're interested in, you can preview the actions inside it or add it to your library. As was the case with Workflow post-acquisition, shortcuts featured in the gallery are Apple-made only and users can't submit theirs. I hope that showcasing user-generated shortcuts in the public gallery will eventually come back as I think there's real value in featuring examples created by the community.
The most visible change in the Library view pertains to how shortcuts can be run and edited. In Shortcuts, tapping a shortcut in the grid starts running it immediately without opening the editor. If a shortcut displays custom interfaces such as lists or keyboard input, those elements will be shown without leaving the main view.
I believe Apple made this change for two reasons. First, it speeds up how you can run a shortcut as you don't have to be taken into the editor anymore. Second, and perhaps more importantly, this design obviates the need to look at a shortcut while it's executing, with actions running from top to bottom, which can be intimidating for first-time users who have never dabbled in automation before. Even though it takes some time to adjust to the new activation method, I think it was the right choice. If you want to open the shortcut editor, you'll have to tap on the three-dot button at the top right of each shortcut.
You can still re-arrange shortcuts with drag and drop in the library, but the app now uses haptic feedback while you're moving items across the grid, which is a nice touch. Also, both on the iPhone and iPad, you can rearrange multiple shortcuts at once via drag and drop.27 As someone who recently reorganized a library of almost 400 shortcuts, I can confirm that this addition is very much welcome.
Aside from a refreshed design, there are no functional changes in Shortcuts' action extension and widget. Existing limitations still apply: the widget can only display a subset of interactive elements and the action extension isn't well suited for intensive tasks given its memory constraints.
The shortcut editor still looks and behaves like Workflow's, with some exceptions. Action steps and variables are presented just like in Workflow, with customizable fields, sub-menus, and Magic Variables that can be configured exactly like in the old app. Unlike Workflow, the editor's appearance is now white with more colorful icons and an overall iOS 11-ified design. The Settings screen for an individual shortcut is also untouched, save for the new 'Add to Siri' button that lets you record a phrase to trigger a shortcut from Siri.
The biggest difference is in how you add actions from the editor. On iPhone, the old sidebar (a swipeable page on the left side) is gone, leaving room for a Maps-inspired bottom panel that contains a search bar and the action library. By default, the panel is collapsed so that you only see the search bar when you're editing actions. When you tap into the search box, or if you swipe up on the panel, the list of actions comes up, allowing you to view search results, browse categories of actions, and drag and drop an action into the editor.
On iPad, the app still features a sidebar when used in a regular size class; in compact mode (i.e. Slide Over), it follows the same bottom-panel approach of the iPhone version.
To add an action to a shortcut, you can still drag it from the action library and drop it at a specific point in the editor. The interaction has been polished and enhanced for Shortcuts, which is best showcased on iPad:
On iPhone, the Taptic Engine perfectly complements the gesture: when you hold an action, you feel a first haptic tap that suggests you've picked up an item; as you do this, the action panel collapses, allowing you to drag the action across the editor. When the action enters the editor, you feel a second tap and the action expands into the full cell. At this point, every time you "cross" another action with the one you're dragging, you'll feel a series of taps that indicate you're scrubbing through a list of actions. This has become one of my favorite uses of the Taptic Engine on iOS. I sometimes drag actions around the Shortcuts editor just to fiddle with the Taptic Engine and its haptic feedback.
As you play around with the new action library, you'll notice that it is now organized in three main sections: at the top, Favorite actions, Siri Suggestions, and Scripting; Content Types, which includes most of the app's native iOS integrations; and Apps, for actions belonging to third-party and other Apple apps.
While most of these are familiar names and actions that were already supported in Workflow, there are some notable new entries that reveal Apple's bigger ambitions for Shortcuts as an iOS automation layer and Siri companion. Let's go through them all.
The most prominent new category of actions in the Shortcuts app is where things get really interesting and, in a way, quite meta.
In Shortcuts, you can create custom shortcuts (i.e. workflows) that include app-based Siri shortcuts as actions. Essentially, the native shortcuts I covered above – the ones that are suggested in Search and that you can manage from Settings – can be treated as steps of a longer and more complex shortcut. So, yes: you can put a shortcut inside a custom shortcut and run it as a shortcut in Siri. The joke writes itself.
There are two ways to find these shortcuts from the editor: in the Siri Suggestions category of the library, you'll see a subset of shortcuts that have been recently donated by an app; in the app's individual entry under the Apps category, you'll find a list of all available shortcuts. Essentially, the Siri Suggestions category is there to provide a collection of app shortcuts consistent with iOS 12's Settings.
Despite confusion arising from the fact that everything is called a shortcut28, this concept is a powerful one. In addition to letting developers integrate with the Shortcuts app using URL schemes and x-callback-url (which are not going away), iOS 12 also lets them provide native app actions that can be executed inside a custom shortcut with or without showing an interface.
Once again: the same shortcuts you can run in Siri, the lock screen, or Search can be used as standalone actions in the Shortcuts app. This opens the door to a new kind of native automation that entirely abstracts URL schemes, and which instead leverages user activities and SiriKit as modules for the Shortcuts app. As you can imagine though, there are some limitations to this approach.
When they're part of a custom shortcut, Siri suggestions can behave in a few different ways. Those based on NSUserActivity that launch apps into specific screens will leave the Shortcuts app. If they use SiriKit intents, they can execute app actions in the background or bring up a custom UI when a shortcut is running. However, unlike other Shortcuts actions, Siri suggestions cannot receive input and set output. They can't be modified with variables and they do not produce any result other than performing the action they've already been assigned. They just execute as standalone, immutable entities.
The native shortcuts you see in the Shortcuts app are the same kind you see in Settings; just like you can't edit them there, you can't make changes to them in Shortcuts.
Given these limitations, why would you want to have a Siri suggestion in a custom shortcut? It depends on the context in which you're running a shortcut and what you're hoping to accomplish. If you've put together a shortcut that you're always going to run inside the Shortcuts app, perhaps you'll find it useful to have a Siri suggestion that loads a custom UI as a step in the middle of it. The Scriptable app, for instance, can display script results with a native interface while a shortcut is executing; LookUp can bring up a modal card for its word of the day; PCalc can show the result of a calculation executed in the background.
Daily Dictionary’s “word of the day” shortcut inside the Shortcuts app.
GoodTask can bring up lists and smart lists as shortcuts.
The CARROT Weather UI, running in Shortcuts.
WaterMinder’s confirmation buttons can be displayed in Shortcuts too.
Thanks to Scriptable, we can load a video player in the Shortcuts app.
This visual intent is actually loading an HTML file stored in iCloud Drive.
Or perhaps you've created a long shortcut and want to launch an app at the end of it as a final step. Siri suggestions that take you into specific app screens are great when they're placed at the end of a series of actions as they can suggest that the shortcut is done and you're now leaving the app. Examples may include launching your favorite podcast app into a specific playlist, loading directions in a navigation app, or opening a note.
My favorite kind, however, are third-party Siri suggestions that kick off an action in the background without interrupting you with a UI or forcing you to exit the Shortcuts app. These are made possible by SiriKit intents and disabling the 'Show When Run' toggle in the action. With these shortcuts, you can perform background tasks such as starting audio playback, copying text from an app to the clipboard, or triggering a home automation command. For instance, I've enjoyed the ability to perform unit and currency conversions based on a number contained in the system clipboard with PCalc, as well as log shots of espresso in HealthKit's Caffeine category using Joe Cieplinski's RECaf app.
This flavor of Siri suggestions represents Apple's first step towards a native automation framework for third-party apps that replaces URL schemes with a secure extension model. Apple is not labeling it as such, and rightfully so: with Siri suggestions in Shortcuts, you're just executing a pre-packaged item without the ability to control the flow of arguments going into the shortcut or the results coming out of it.29 It's easy, however, to imagine where things may go from here.
Right now, Siri suggestions cannot be customized by the user. In the future, the same SiriKit framework could let users create their own app shortcuts that support custom parameters and data fields to read content from an app, save data into it, and execute arbitrary tasks in the background – all without having to launch an app with a URL scheme. Part of this is already happening now, but the shortcut is defined by the developer and controlled by iOS. If the same system could be opened to user customization with variables and inputs/outputs, Apple could end up with a powerful automation stack free of the security concerns and inelegance of URL schemes. Consequently, power users would be able to program Siri and apps however they wanted instead of being limited to developer-defined shortcuts.
Looking ahead to Shortcuts' future, I think it's clear that Apple would prefer to go down this road rather than support URL schemes forever. I believe a native automation framework will be one of the next big steps for Shortcuts as far as integration with third-party apps goes. For now, Siri suggestions in Shortcuts can be a convenient way to extend your custom shortcuts with basic app integrations, especially when it comes to performing specific actions in the background.
- You can do this either by creating a stack of drag items the iOS 11 way, or by tapping the 'Edit' button, selecting multiple shortcuts, then long-pressing to drag away multiple items at once. ↩︎
- What's better: Workflow workflows or Shortcuts shortcuts? ↩︎
- Except for the system clipboard, which some apps have started using as a global "variable" to retrieve and set data. PCalc, for instance, can perform currency conversions based on a number extracted from the clipboard and save the converted result into the clipboard too. ↩︎