Since Mac OS X 10.4 Tiger was released in 2005, Mac users have had access to simple, built-in automation with Automator. Third-party developers have spent years trying to replicate Automator’s power and simplicity on iOS.
If you use iOS more for consumption than creation, you might wonder why you’d want to automate iOS at all. Easy as iOS is, if you think about it, there are probably common tasks you can make easier by stringing multiple actions together. For instance, wouldn’t it be nice to call your spouse with one tap on a Dock icon? Or shorten a URL with a custom service and post it to Twitter? Maybe you take a lot of baby pictures, and would like to send the most recent photo to the grandparents quickly? Or if you’ve had a bit much to drink at a party, wouldn’t it be nice to request a car from a service like Uber to take you home with only a tap or two? These are all possible to automate on iOS. Just as with Mac automation, you can probably come up with a lot of ideas for common tasks to automate with just a little thought.
The most notable third-party development in iOS automation was x-callback-url, a clever, if kludgy, standard developed by Greg Pierce of Agile Tortoise. Before the days of Extensibility in iOS 8, x-callback-url was the main way apps could toss information back and forth across iOS’s sandbox wall to communicate with each other.
This led to some interesting experiments with iOS automation. Agile Tortoise’s own Drafts app lets you jot down notes and share them with other apps and services, among other things. Launch Center Pro enables you to launch multiple apps from one place, as well as automatically perform certain actions with some of those apps. Then there’s Editorial, a powerful text editor that can be customized with the Python programming language and that can use x-callback-url to process text from other apps.
While these are all fun to play with, and are useful for certain people (like Federico Viticci of MacStories, who has written extensively about his experiments in iOS automation), they’re too difficult for average users. You either have to learn a foreign syntax or work around the many limitations of iOS to get anything done.
What sets Workflow apart from past iOS automation efforts is that you can create workflows visually, with no traditional programming required. The design of the app is bright and friendly, making it ideal to learn or teach the basics of programming.
The beauty of Workflow is that you don’t have to be a programmer to take advantage of it. The app comes with useful, built-in workflows, and it offers a gallery of other workflows you can download. Users can also share workflows over the Web.
So what can you do with these workflows? Here are a few examples:
- Send someone your estimated time of arrival
- Call an Uber car to take you home
- Get the lyrics of the currently playing song
- Upload the last photo taken to Dropbox
- Shorten a URL
- Make an animated GIF from a series of photos
You can put workflows on your home screen as icons, or use them within Safari as action extensions. To use Workflow inside Safari:
- Tap the Share button in the toolbar.
- Scroll the bottom action row to the right and tap More.
- Toggle the Run Workflow switch.
To call a workflow from Safari, tap Share, and then Run Workflow. You’re presented with workflows that you have designated as action extensions, as well as potentially useful extensions from the app’s gallery.
To my mind, Workflow is worth the cost of admission just for the way anyone can use it to extend Safari’s capabilities. With a few downloads from the gallery, you can save a full Web page to Dropbox, export a Web page as a PDF, extract all images from a Web page, view a Web page’s source code, search the Web site, or even view an older version of the page on the Wayback Machine. Federico Viticci has made a custom workflow to append the title and URL of the current Web page to an Evernote note, which I find handy when compiling ExtraBITS candidates.
The way you create workflows is interesting. You start in the Workflow view, which comes with a few pre-installed examples. From the My Workflows view, tap Create Workflow. To add actions to a workflow, switch to the Actions pane, which lists actions in different categories. If you know what you want, you can search for a particular action. Once you see an interesting action, tap it to see a description, or drag it into your workflow. You can tap the Play button to run a workflow at any time for testing. From the Workflow view, you can also set a workflow as Normal or as an Action Extension — the former works as a standalone workflow, while you invoke the latter from the Share menu in other apps.
Workflow programming is entirely linear, with each action executed in order, from top to bottom, much like Automator. Actions that take inputs get them from the preceding action. Also like Automator, you can use the Set Variable action to store the output of a preceding action, then use the Get Variable action to recall that output. It’s a bit different from what most programmers are accustomed to, but anyone familiar with Automator shouldn’t have trouble grasping the concept.
Unsurprisingly for an initial release, Workflow has some rough edges. Its gallery can only be browsed, and is in desperate need of a search feature. The best way I’ve found to search for new workflows is a workflow that searches Tweetbot for other workflows, but that’s far from ideal.
Another annoyance is that you have to watch Workflow working through each workflow’s steps every time you activate it, even if you launch it from the Home screen. It would be nice if a workflow could hide its underlying actions like any other app, but I imagine that’s an iOS limitation. To see what it looks like to work through a complex workflow, here’s a video that demonstrates using Workflow to create a TidBITS Amazon affiliate link.
While I’ve only just begun to play with creating workflows like the one above, I’ve already encountered one frustrating limitation. Like most programming interfaces, Workflow features an IF statement to test if a condition is true or not and act accordingly. Unfortunately, it can evaluate only strings of characters, and not whether a preceding action succeeded. I’d like to create a workflow that would check to see if an Evernote document exists, and either append a note to it if available, or create one if the document doesn’t exist. Unfortunately, that isn’t currently possible.
But as I said, you don’t have to be a programmer to get use out of Workflow. Its gallery already features a number of useful workflows, with more sure to come. For $2.99, it’s a handy tool to keep on your iOS device. While automation isn’t for everyone, I encourage you think about repetitive tasks you perform frequently on your devices and give Workflow a try. You might be able to save more time than you would initially expect!