Shortcuts and Scriptable: The State of iOS Automation
Automation on iOS has always been different from automation on the Mac: for years, it has served a different purpose, and it's always been based on a different set of technologies and sandboxing considerations. Unlike others, I do not believe iOS automation is objectively inferior to its Mac counterpart; in many ways, in fact, I prefer automating tasks and apps on my iPad.
The biggest factor to consider when comparing automation tools available on Apple's two platforms is the lack of the Apple Events technology on iOS. As Brent Simmons recently described it, there is a special kind of beauty and freedom in the ability to fully script and control apps in the background, letting the computer do the work for you. There's an argument to be made about why and how Apple should rethink Apple Events for Shortcuts, but I'm going to cover this later. The fact of the matter is: if you're used to a certain kind of automation – if by "automation" you strictly mean Apple Events-powered scripts and actions – then iOS has been, and likely will continue to be, a disappointment for you. And that's not to mention how iOS does not come with a shell, the built-in scripting languages of the underlying Darwin core of macOS, or its own scripting language to automate apps.
But that doesn't mean iOS fails to offer any kind of useful automation tools, period. They're vastly different from macOS, and they've always required a fresh mindset unencumbered by past preconceptions, but they exist and they've been helping users get more work done on iOS for years now. If you've been reading MacStories long enough, my stance on this shouldn't be surprising as it's a topic I've covered time and time again. Automation on iOS is different from automation on the Mac, but it can be just as powerful in its own context.
Over the past several years, three main types of automation gained traction on iOS: URL schemes, specifically with x-callback-url; scripting native iOS features through IDEs such as Pythonista and Scriptable; and Workflow, which was eventually relaunched by Apple as Shortcuts.
In this story, I'm going to focus on two apps, each representative of its own category, that have helped me rethink my iOS automation setup and work faster on my iPad: Shortcuts and Scriptable. As much as dabbling with URL schemes got me (and others) started with automation on iOS, I don't think that's where the future of iOS automation is going, and I find myself launching apps via URL schemes less and less these days. URL schemes can still be useful for specific tasks and quick actions, but, at least for me, they're well past their prime.
Shortcuts and Scriptable, on the other hand, are exciting new visions of what native iOS automation can do today, as well as what it may become over multiple iterations in the future. Besides the fact that one of these apps is made by an indie developer and the other by a large team at Apple, Shortcuts and Scriptable are based on profoundly different concepts: they're at opposite ends of the iOS automation spectrum and they appeal to different kinds of users and needs.
In the nine months I've been using them, Shortcuts and Scriptable have complemented each other in different areas of my work on the iPad, allowing me to get more work done more quickly in a very busy period of my professional life. Shortcuts and Scriptable represent the best that iOS automation has to offer today, and I'd like to explain why.
Shortcuts: A Different Breed of Automation
I don't think Shortcuts needs an introduction on MacStories. I don't want to rehash years of coverage of Workflow (which you can find here) or describe all the changes in Apple's relaunch of the app – I did that with a dedicated chapter in my iOS 12 review. And with over 160 custom shortcuts currently available in the MacStories Shortcuts Archive, I think I've already provided a few examples of the app's versatility. Instead, I want to explain how Shortcuts helps me work on the iPad every day and highlight a few areas of improvement I think Apple should focus on next. If you're not familiar with the Shortcuts app at all, I strongly suggest reading my review from September, then come back here.
First, there's a common notion I'd like to dispense with, which is the idea that instead of building an enhancement for iOS in Shortcuts, you should "just use a Mac instead". This is a comment I often receive from a subset of casual MacStories readers on Twitter, and I believe some of them mean it in a subtly derogatory way to suggest that it's useless to attempt to get any work done on an iPad. But others don't – they actually argue that, rather than attempting to optimize a computer for your needs, you should just use a different computer instead.
This argument strikes at the very core of what I consider the beauty and pure joy of automation: to me, user automation represents the idea that the power to control the computer resides in the user's creativity and willingness to learn. Conceptually speaking, creating automations on an iPad is no different from creating automations on a Mac. Automation isn't for everybody, but when it empowers someone to get more out of their favorite computing environment, be it a Mac or an iOS device or a PC running Windows, I feel like nobody should be the judge of that effort.
You can wish for iOS to become more powerful on its own and get value out of using Shortcuts to work around its limitations at the same time. The two concepts are not mutually exclusive: whether you're using AppleScript to build a feature your Mac doesn't have or creating shortcuts to overcome the iPad's limitations, what matters is that you're able to do this at all in the first place. More power to the user: that's always been my only guiding principle. Ultimately, the kind of automation tool you prefer to use for your work is a matter of taste and personal preference. But I want to stress how automation on iOS via Shortcuts isn't conceptually or genetically inferior to Mac automation; it's different, and it requires a new approach, which is why it has allowed me to do things on my iPad that I would have never attempted on a Mac.
At a high level, there are two kinds of automations that the Shortcuts app has enabled me to create: small utilities to overcome the limitations of the iOS platform, and custom workflows specific to my needs. Both are made possible by Shortcuts' unique blend of classic programming techniques and visual action manipulation, and they're good examples of the different roles that automation can serve on iOS today.
Fixing iOS Limitations with Shortcuts
Consider the simple action of writing an email message and inserting a hyperlink to a webpage somewhere in the body text – not a plain URL, but actually making some words a link to an external webpage. That's easy enough on a Mac: you just copy a link from the browser, select text in Mail, hit ⌘K, and that's done – the highlighted text becomes an underlined link. For some reason, this is still not supported in the iOS Mail app, so I decided to make my own 'Create Hyperlink' shortcut to insert clickable links in any iOS app with a rich text field.
In about a dozen actions, here's what the shortcut does:
- Clipboard integration. The shortcut gets the contents of my iPad's system clipboard, expecting to find a URL in it.
- Type validation. The shortcut uses the 'Get URLs from Input' action to ensure that the clipboard does, in fact, contain a URL.
- Error handling and multiple selections. Using 'Count' actions and conditional blocks, the shortcut displays an error if no URLs are found in the clipboard, and it lets you pick one if multiple URLs were copied.
- Rich text hyperlink generation. After asking for input text with a native dialog, the shortcut turns one or multiple words into a rich text hyperlink that is copied back to the system clipboard again, ready to be pasted in any app.
Now, this sounds fairly complex when described in words, but take a look at the shortcut itself, and tell me it's not extremely easy to understand what's going on without any kind of formal programming education:
I've been using this shortcut to write better emails on my iPad: instead of pasting plain text URLs in the body of a message, I can embed links as part of the text itself, which is much cleaner. Obviously, on a Mac I wouldn't have this problem in the first place because Mail (and other rich text fields) support hyperlinks by default. However, if I wanted to recreate this entire logic – including checking for URLs, picking one from a list, and converting from Markdown to rich text – using something like AppleScript, I'd have no idea where to begin. With Shortcuts, anyone can build this kind of enhancement to iOS without writing a single line of code, just by dragging a few actions around.
Create a rich text hyperlink based on a URL from the system clipboard. This shortcut is ideal for creating underlined links for apps that do not support rich link creation such as Notes or Apple Mail.
Downloading files from a webpage is another example of a task that, as I noted before in the story, is still too confusing to perform in Safari alone. You could use a third-party browser such as iCab, like I do, just to download files from webpages and have them appear in a file provider location in the Files app; or, you could create a shortcut that downloads the contents of any URL and saves it as a file in iCloud Drive with five actions:
Download a file from a URL stored in the system clipboard. The downloaded file can be saved in iCloud Drive or other storage providers with a native Files interface.
Another favorite of mine in the "let's fix iOS limitations one shortcut at a time" department is the shortcut I use to extract all files from a .zip archive and save them into a new folder in iCloud Drive. The shortcut brings up a native Files picker, which allows me to pick one or multiple .zip archives from any location of the Files app. The shortcut then creates a new empty folder with the same name as the archive inside the iCloud Drive/Shortcuts/ container (more on this limitation later) and proceeds to extract every file from the archive into the newly created folder. At the end, a confirmation message details what happened.
Extract All Files from Archive
Extract all files from a compressed archive passed as input and save them into the same folder in iCloud Drive/Shortcuts. The name of the archive is used to create a new destination folder in Shortcuts' iCloud Drive container.
As you may have guessed, this shortcut was designed to replicate the default macOS behavior when you double-click a compressed .zip archive in the Finder: the archive is extracted as a folder that contains the files originally compressed in the .zip file of the same name. Due to restrictions of the iOS sandboxing model and Shortcuts' integration with the Files app, the shortcut has to extract .zip archives into a sub-folder of the Shortcuts directory in iCloud Drive; I've pinned this folder to my favorites in Files, but, ideally, Shortcuts should gain the ability to save new files to any location in iCloud Drive.
Still, one person's shortcoming is another person's advantage: if I wanted to create an AppleScript, or an Automator workflow, to accomplish the same task – programmatically extract multiple .zip archives in a row and have them end up in specific destination folders across the filesystem – I wouldn't know how to do it. With Shortcuts, all it takes is a handful of actions I can connect with each other using drag and drop.
All of these examples beg the question: at what point does relying on Shortcuts to work around limitations of iOS become a legitimate advantage of iOS automation thanks to Shortcuts' integration with native system features? Where does Shortcuts automation cease being a stopgap solution to a temporary problem and become a strength of the platform in its own right?
Optimizing Shortcuts for Work on the iPad
The answer, I suppose, lies in the flexibility that Shortcuts affords in creating whatever kind of automated routine you need, going beyond the mere "fixing" of basic iOS problems to craft workflows that are custom-tailored to your favorite apps and work requirements. And, for me, this has meant building my own personalized enhancements to iOS in a way that wouldn't have been possible – or as intuitive – on a Mac without Shortcuts.
I've always wanted to present screenshots of apps in my articles inside pretty iOS device frames that show app interfaces in the context of the device on which they're running. For the longest time, I had to rely on image editors to assemble these composite images manually before discovering that I could do the same with Python scripting. But then Workflow came around, and I was able to put together a series of actions that, with Shortcuts, can now frame screenshots for every Apple device from an action extension, the widget, and even Siri with a custom activation phrase.
My Apple Frames shortcut, which I used throughout this story to put screenshots inside iPad device frames, is the perfect example of automation being more than just a tool to overcome a limitation of iOS. Framing app screenshots isn't a problem of iOS, but it was a problem for me, and no third-party developer was (rightfully) interested in making an app that would perform the task exactly as I liked it. With Shortcuts, I was given the power to create a self-contained tool that integrates with the Photos library, system clipboard, and iOS' built-in ability to decode base64 image data to generate professional device images that bloggers, developers, and folks who work in marketing are now using to show and promote their apps. I'm pretty sure that, years ago, I must have spent several hours in aggregate just lining up screenshots correctly in Pixelmator, exporting them as PNGs, and combining them; now, it takes me about five seconds with Shortcuts to achieve a faster, more consistent result.
Add device frames to screenshots for iPhones (6, 7, 8, X, and XS generations in standard/Plus/Max sizes), iPad Pro (11" and 12.9", 2018 models), Apple Watch S4 (40 and 44mm), MacBook Pro (Retina 13-inch), and iMac (5K). The shortcut supports portrait and landscape orientations, but does not support Display Zoom. If multiple screenshots are passed as input, they will be combined in a single image.
Publishing articles to WordPress is another task which I struggled to optimize to my preferences and needs years ago. I remember that when I was hospitalized for three weeks to undergo aggressive chemo treatments in 2012, I spent several days in my hospital bed researching WordPress clients on the App Store that supported Markdown conversion and features such as custom fields. I came up empty because, once again, no app could match the exact kind of functionality I wanted.
Seven years later, the entire process is a custom shortcut called 'Publish to WordPress' that takes roughly 30 seconds to execute from start to finish. Not only does the shortcut accept Markdown input from the share sheet (so I can publish articles from any text editor) and enable me to select various WordPress fields, but it also integrates with Siri shortcuts from other third-party apps such as Chris Hannah's Text Case, a handy utility that formats our headlines according to the Chicago Manual of Style. Text Case's 'Title Capitalization' feature can be used as an individual action as part of my longer workflow thanks to Siri shortcuts, and it's saved me several minutes I would have spent tweaking titles and posting to WordPress manually. Don't even get me started on how I wouldn't have been able to replicate this with "traditional automation" on macOS: I know because I once tried to create all of this both in Python and AppleScript, only to fail miserably.
Publish to WordPress
Publish a Markdown post to WordPress via the Shortcuts action extension. The shortcut can extract the h1 Markdown header from a post and use it as title. Optionally, you can publish both standard and "linked list" post types by adding a custom field supported by your WordPress installation.
You don't have to work at MacStories to appreciate what Shortcuts can enable once you immerse yourself in the mindset that you can simply create a feature that iOS doesn't offer as a built-in option. Need to convert between different units of length without downloading a third-party app for the job? That's easy to do in Shortcuts, which comes with pre-installed actions for numeric input (the iOS numeric keyboard will be shown) and measurement conversions, so you can easily convert between inches and centimeters, and vice versa:
As a European who has colleagues based in the United States, I run this shortcut constantly, both from the app (usually in Slide Over if I'm doing some bookkeeping in Numbers) and from the widget, which supports input without opening the app:
Convert between centimeters and inches with a menu that lets you pick a starting unit. The shortcut supports interactions (including entering numbers) in the widget as well.
In a similar fashion, I built my own shortcut to perform currency conversions with support for historical exchange rates. MacStories readers may remember how I built a spreadsheet template in Numbers to take advantage of Apple's implementation of historical currency conversions; however, with time I discovered that the service Apple was using for this feature was not as reliable as I hoped, so I decided to recreate the functionality in Shortcuts using the Fixer.io web service. With minimal knowledge of web APIs – which, by the way, can also be scripted in Shortcuts using visual web requests – I put together a shortcut that lets me convert between multiple currencies to double-check historical exchange rates while I'm tracking my income in Numbers.
Convert Historical Currencies
Convert between currencies using the Fixer.io web service. The shortcut requires a private API key to operate. The shortcut supports historical exchange rates and lets you convert between currencies using the current date or any past date. You can type dates with natural language. The converted amount is copied to the clipboard at the end.
I used to hate doing bookkeeping on the iPad because of the lack of third-party apps designed for my unique needs; with Shortcuts, I made the task feasible on iOS and created a setup that, thanks to Split View and Slide Over, allows me to keep track of numbers and different sources of income across multiple apps at once.
I could go on for hours by citing dozens of instances where Shortcuts empowered me to enhance working on the iPad with tools that neither Apple nor third-party developers were interested in building due to their ultra-specific nature. After getting a Mac mini to use as a home server, I created a suite of custom shortcuts to control macOS from the iPad via Shortcuts and Siri; I made shortcuts to facilitate saving files to Evernote and retrieving the contents of specific Evernote items without opening the app; thanks to Shortcuts' integration with the Reminders framework, I built an entire roster of Reminders-based shortcuts that unlock functionality Apple itself isn't exposing in the Reminders app. The very MacStories Shortcuts Archive where I share all of these shortcuts is assembled, updated, and converted to HTML for MacStories using a series of custom shortcuts.
My point being: iOS automation through Shortcuts isn't just a tool to fix the shortcomings of iOS with a veneer of creativity, as I've seen some people argue over the years. Automation in Shortcuts is different from the Keyboard Maestros and Hazels that are popular on the Mac (and which I also use myself), but it shares a common principle with these apps: when a computer doesn't offer pre-installed features to do what you need, or if those features aren't fast or flexible enough for you, automation enables you to design your own.
From such a standpoint, Mac automation and iOS automation aren't so dissimilar after all: they have a different lineage, and they rely on different technologies, but both types of automation are valid, widely adopted, and useful. Thanks to Shortcuts, I've found that it's just as possible to tinker on an iPad Pro as it is on a Mac; it's just a different experience, and one that has made me enjoy working on the iPad more year after year.
The Problems with Shortcuts
Oh, you thought that all of this meant I had nothing to complain about regarding the Shortcuts app, or that I didn't have a whole list of suggestions for what I'd like to see in the future of the app?
Add an automation API for third-party apps. Remember when I mentioned Apple Events, the technology that lets you control specific features of Mac apps in the background? As I've argued on multiple occasions (i.e. podcasts) before, I think it's time for Apple to ship a similar feature – at least in spirit – as part of a new Shortcuts API that lets third-party apps expose their features and data natively to Shortcuts without URL schemes, with more power than iOS 12's Siri shortcuts framework.
As it stands right now, third-party apps can integrate with Shortcuts in two ways: they can either donate Siri shortcuts, which users can import as action steps, or they can support URL schemes. The first method, as I outlined in my review of iOS 12, is severely limited in that it was primarily designed for Siri integration, and it does not offer any kind of native I/O support in Shortcuts13; Siri shortcut-based actions are self-contained entities that cannot be customized with parameters and variables.
Actions based on URL schemes are different: they do let you exchange data with apps, and some of them are even presented as nice visual blocks in Shortcuts, but, at the end of the day, they're still URLs, which means they have to leave Shortcuts to launch other apps. URL schemes have been used for automation purposes, but they're not an automation technology per se; they've been repurposed as such by the iOS community, but they're still fancy launchers mostly limited to text.
What I'm imagining is something simpler, yet exponentially more difficult for Apple to build: I want Shortcuts to integrate with third-party apps just like it can request native access to Reminders, Calendar, Apple Music, HealthKit, and other Apple apps. For Shortcuts to take its integration with the iOS app ecosystem to the next level, developers have to be able to provide actions based on a secure API that replicates the kind of direct integration Apple frameworks have with Shortcuts.
To understand the potential of a real Shortcuts API, take a look at this built-in action for the Things app:
It looks great, right? This action lets you create a new task inside Things from Shortcuts, and it comes with customizable fields where you can enter variables, so each parameter can be dynamically generated when a shortcut runs. The problem is that this action is still based on x-callback-url, so it needs to leave Shortcuts and launch the Things app to create a new task in the app, only to then switch back to Shortcuts at the end. And the information that Things gives to Shortcuts about the newly created task is an alphanumeric ID, not a rich object that can be inspected visually. Despite its nice appearance in Shortcuts, this action is still a URL scheme which was simply prettified by Apple.
Now, consider Reminders' integration with Shortcuts. When you first run a shortcut that has a Reminders action in it, you'll be presented with a native permission prompt to grant Shortcuts access to Reminders; doing so will show Shortcuts as one of the apps with access to Reminders under Settings ⇾ Privacy, which you can revoke at any time. But there's more: once it's been authorized, Shortcuts will be able to create new tasks in Reminders, fully in the background without having to launch the Reminders app at all. The direct integration between Reminders and Shortcuts allows Shortcuts to create new tasks from Siri, the widget, or the action extension too – all those extension points can also communicate natively with Reminders.
This system, however, goes beyond individual task creation: you can create multiple tasks in Reminders at once from the same shortcut without leaving the app; you can search and retrieve task content from Reminders, letting you visually preview data coming from the Reminders database; every time Shortcuts calls upon Reminders to perform a function, the "object" returned by Reminders is a rich item that shows you multiple pieces of information about a task.
After taking a look at the native integration with Shortcuts and Apple's apps, it's easy to imagine how third-party apps could benefit from an API modeled after the same technology. Rather than relying on the not-so-secure URL schemes, apps could grant Shortcuts access to their documents and data on a feature-by-feature basis; Shortcuts would be able to create, edit, or retrieve content in and from apps with support for custom parameters, variables, and batch operations; third-party actions would always execute securely in the background, without having to leave Shortcuts.
The more I think about it, the more a Shortcuts API makes sense as the next step to blend the richness of the App Store ecosystem with Shortcuts. The existing Siri shortcuts framework is too limited and URL schemes are an unsafe communication method that was not designed to pass data around. To not release a native API for Shortcuts automation with support for I/O and configurable actions would be a wasted opportunity for Apple, and I want to believe this will be part of the announcements at WWDC next month.
Add user interactions in Siri. Currently, when a custom shortcut runs in the Siri context14, it can only do so provided it doesn't bring up an action that requires user interaction. If a shortcut requires you to pick an item from a list, type some text, or choose an option from a menu, Siri will tell you to continue on your iPhone, or it'll just launch the Shortcuts app if you're trying to do this on iOS.
As I argued last year, Apple should add basic interaction capabilities to shortcuts running inside Siri so that you can enter basic inputs without leaving the assistant. This could be done by matching Shortcuts actions such as Ask for Input, Choose from List, and Choose from Menu to Siri's existing conversational capabilities. Siri is already able to follow-up on a question and ask you to confirm a name or choose an item from a list of options; a custom shortcut running inside Siri should automatically gain access to these same abilities to create one seamless experience whether you're running a shortcut in the Shortcuts app or Siri.
Adding support for user interaction to shortcuts running inside Siri could dramatically increase the utility of the app: all shortcuts could become eligible for voice-only usage in Siri, which means that all of your custom shortcuts could accompany you, and do something for you, throughout the day, whether you're at the gym and only have an Apple Watch with you or are driving and can only talk to Siri via CarPlay. Support for interactivity in Siri is key to expanding Shortcuts' automation to a larger set of possibilities and daily experiences; it would be a shame if the Shortcuts app remained the only way to execute shortcuts in full.
Support Quick Look previews in Siri. On a similar note, Apple should match Shortcuts' ability to preview any content type via iOS' Quick Look feature to Siri's ability to display rich media previews on iOS. This is already possible with third-party apps: Scriptable, for instance, uses the SiriKit API to display HTML, images, and even videos (!) inside Siri. As an Apple app, Shortcuts should, at the very least, match what third-party apps are already doing with rich Siri previews for media content.
Let users organize shortcuts with folders. Seriously: even if you don't have a few hundred shortcuts in the Shortcuts app like I do, organizing your library in the app right now is a nightmare. You can only rearrange one shortcut at a time via drag and drop15 and there are no folders or tags whatsoever; personally, I've resorted to arranging my shortcuts via the tool used to rearrange shortcuts for the widget because it's faster than doing the same in the app.
I'd be fine with the basic ability to organize shortcuts in folders to stop the current madness that is scrolling a library of 200+ items. If Apple wanted to go the extra mile, they could:
- Support adding custom icons and colors to shortcuts and folders;
- Support tagging in addition to folder-based organization;
- Add smart filters to categorize shortcuts that integrate with specific apps or that use features such as the share sheet or the widget.
Frankly, at this point, anything would be better than the simplistic grid we've had to deal with since the Workflow days. Please, Apple.
Better integration with Files. Automation is a natural complement to file management, as demonstrated by Mac utilities such as Automator and Hazel, which are able to integrate with any Finder directory in a programmatic fashion to modify files and monitor changes in user-selected folders. However, these features are not available in Shortcuts as the app can only let you pick a document manually from Files (with a document picker) or access files and folders located in Shortcuts' own iCloud Drive documents directory.
As far as individual files are concerned, Shortcuts cannot access extended attributes of a file such as comments (which you can add from the Finder on macOS) or tags (which are supported in iOS' Files app).
I'd like to see Apple bring more robust and flexible Files integration to Shortcuts in future updates. For starters, Shortcuts should support a permission-based system to read the contents of folders located outside of its own iCloud Drive directory. This could be done with the existing file bookmark framework that enables apps such as Working Copy or Scriptable to gain read/write access to folders from other apps that use iCloud Drive or a compatible file provider storage location. Such functionality would allow for the creation of custom shortcuts that can create files anywhere in the filesystem as well as read the contents of documents that are not stored in Shortcuts' iCloud Drive folder. Combined with support for automatic shortcut execution in the background (see below), this could even open the door to folder-monitoring features reminiscent of Hazel and macOS' folder actions for automatic document filing and processing.
There are other improvements that Apple could consider in addition to extending Shortcuts' file access beyond the confines of its sandbox. Shortcuts, like Scriptable, should be able to read tags attached to files and modify tags previously assigned to a document. The document picker (which Shortcuts can already display) should support filtering file types by UTI (also an API various third-party apps are already using) so that users can only pick specific document types when a shortcut is running, such as PDFs or images. And Shortcuts should also be capable of generating shareable links to documents using the native CloudKit sharing feature instead of the current implementation based on creating Mail Drop URLs (a leftover from the Workflow days). And that's not to mention how Apple could ship the equivalent of Mojave's Quick Actions as Files extensions to let users act on documents in the Files app using custom services built with Shortcuts (effectively creating a new extension point for all developers to plug into).
There's so much more that Apple could do with Files and Shortcuts than the current system limited to Shortcuts' iCloud Drive folder and the document picker. Third-party automation apps are already doing more than Shortcuts on this front, and I hope Apple will be able to eclipse them with future updates to Shortcuts.
Automatic triggers. This is one of the features that always comes up whenever readers ask me about how Shortcuts can fit into their daily routines. The Shortcuts app should offer users the ability to let their custom shortcuts be automatically triggered in the background by environmental or device-specific conditions that would kick off automations without the need to press the 'Play' button.
Here's what I wrote in my iOS 12 review last year:
You can't, for example, run a shortcut when a calendar event is due, or at a specific time of day, or when you leave a location. Whether from the app, the widget, or Siri, shortcuts always have to be manually triggered by the user. What I argued for Do Not Disturb holds true for Shortcuts as well: I'd love it if the app could react to different environmental/OS triggers and run automations on the user's behalf.
When it comes to automatic triggers, Apple should take a page from Contrast's Launch Center Pro and offer the ability to have specific shortcuts fire off when you enter/leave a location or on a regular schedule, at the very least. Doing this would enable automation to seamlessly blend into a user's routine without having to rely on third-party workarounds such as launching shortcuts via URL schemes through Launch Center Pro or Launcher. But I'd also like to see Apple do more than just match what Launch Center Pro already offers: shortcuts could be attached as actions to be automatically performed when a calendar event or reminder is due; device-specific conditions such as Bluetooth, network, and battery status could be treated as triggers to kick off a shortcut in the background (imagine having shortcuts that automatically run when your iPhone connects to the office's WiFi network or when your battery is running low); perhaps apps could even offer their own "automatic trigger extension points" to tell Shortcuts to run actions when certain app-specific conditions are met (e.g. a document is moved to a folder in Ulysses or a tweet is liked in the Twitter app).
Automatic shortcut execution would have to be configured manually by the user first, there should be a settings page where users could monitor the automatic execution of shortcuts at any time, and everything would have to be communicated clearly to the user either in the form of notifications when a shortcut runs or other new confirmation methods to verify the execution of actions. It's a lot of work, and it would require a fundamental rethinking of what it means to "run a shortcut", but I believe the Shortcuts team can offer an elegant, secure, and native solution to all of this.
Control app multitasking. As I noted in the Multitasking chapter, I'd love for Shortcuts to gain the ability to automate app multitasking with actions to create workspaces with specific apps and script Split View or Slide Over. If Apple doesn't want to bake options to create favorite spaces and control the size of app windows in the app switcher, those functionalities could become Shortcuts actions and power users would know where to find them. Imagine if Shortcuts was able to control apps and multitasking like Mac apps such as Moom and Keyboard Maestro can, but done in a new, iOS-specific way.
Run shortcuts everywhere. Here are all the ways you can run a shortcut in iOS 12:
- From inside the Shortcuts app;
- Via the Shortcuts widget;
- From the action extension;
- Via Siri shortcuts (from Siri, Search results, and suggestions on the Lock screen);
- From 3D Touch quick actions on the iPhone's Home screen;
- From the Home screen (by adding a shortcut as a Safari web clip);
- Via URL scheme (the Shortcuts app will launch).
This is already a solid selection of execution methods, but I think Apple should take the next logical step and allow users to assign system-wide hotkeys to shortcuts, which could then be run from anywhere in iOS just by pressing a keyboard shortcut.
If you're a Mac user, you're likely familiar with automation tools such as Keyboard Maestro, Alfred, and FastScripts, which can execute scripts/macros/workflows at any time just by invoking a specific keyboard shortcut. I believe Apple should consider a similar approach to allow users to run shortcuts from other apps without having to necessarily go back to the Shortcuts app, use the share sheet, or open the widget.
Let's say that you need to paste some text or a series of images into a document you're working on, but that content is generated by a shortcut; rather than going back to the Shortcuts app to run the shortcut, copy content to the clipboard, then head back to the first app and paste it, imagine if you could just hit a hotkey to have a shortcut appear in the middle of the screen (or maybe even run in the status bar?) and instantly insert the content you need in the app you're using.
If Apple can't or doesn't want to build an API to let Shortcuts insert content into other apps, I'd be fine with being able to run my automations from anywhere in the system via keyboard shortcuts. And while they're at it, if the iPad Home screen is indeed getting a makeover in iOS 13, Apple should consider a more powerful, native way of adding shortcuts to the Home screen than saving web clips from Safari.
Extend the Notes actions beyond plain text. Shortcuts' integration with Apple Notes is one of my favorite additions to the app in recent months: without leaving the shortcut you're running, you can create new notes and search for existing ones using custom filters. However, as I noted when it came out, the integration is limited to plain text and does not support passing rich text or file attachments to Notes. Both data types should be supported in Shortcuts so that users could create notes containing formatted text, PDF documents, or rich web links. I'd also like to see support for creating notes in specific folders (without having to pick one from the compose sheet) and with a specific title.
AirPlay 2, Apple TV, and HomePod actions. Lastly, as I also wrote in my iOS 12 review:
Shortcuts would make for an incredible tool to create automated workflows that control music and podcasts on specific HomePods and other AirPlay 2 devices in your house. Alas, AirPlay 2 continues to be a manual control-only affair in iOS 12 as Shortcuts doesn't offer any actions to automate connections to individual devices or groups of speakers. You can use Siri to control audio playback on individual AirPlay 2 devices; I'd like to do the same with Shortcuts.
Despite the welcome improvements that Apple made to AirPlay media controls in iOS 12.2 earlier this year, the AirPlay 2 speaker ecosystem is still entirely inaccessible from Shortcuts. That's too bad, because I believe Shortcuts' automation could provide Apple with a competitive advantage over Amazon's Echo speakers and Fire TV devices in terms of automating audio playback and speeding up control of the tvOS interface.
With the right integrations and actions, Shortcuts could do it all: it could start playing specific playlists, albums, or podcasts on specific speakers with volume presets; it could be used to turn on the Apple TV, open a specific app, and start playback of the latest available episode of your favorite show; the app could even become a way for advanced users to control playback of different sources of content on multiple AirPlay-enabled devices at the same time. I know that I'd love to avoid opening Control Center on my iPad when I want to send music or podcasts to one of my three HomePods.
- Unless developers rely on the system clipboard as a hack-y workaround. ↩︎
- This includes the Siri UI on iOS, Siri on watchOS, HomePod, and Siri on CarPlay. ↩︎
- Why doesn't Shortcuts support picking up multiple items via drag and drop and moving them at once? The app can select multiple shortcuts, but it won't let you drop them elsewhere like you can drop multiple app icons on the Home screen in one spot so they're all rearranged at once. Such a strange omission. ↩︎