Drafts and Interact on Sale in the Agile Tortoise Back to School Sale

It’s back to school time and Agile Tortoise is having a sale on two of their wonderful apps. For a limited time, you can grab Drafts (iOS) for $2.99, down from $4.99, and Interact (iOS | macOS) for $1.99 down from $3.99.

Interact is a great way to deal with contacts on iOS, but it’s biggest strength for me is the Scratchpad feature, which allows you to quickly and easily add new contacts, or update info for existing contacts, using plain text. The macOS version of Interact brings the scratchpad to your Mac as well. I definitely recommend it, even if you don’t deal with contacts on a daily basis (I don’t).

Drafts is where text starts on iOS. That tag line couldn’t be more true for me. I’ve been using Drafts since version 3 in 2013 and version 4, release back in 2014 and continually support since, has been and remains one of my go to, docked apps on all of my iOS devices. Drafts, and the pieces about it on MacStories are what got me into iOS automation – and eventually Workflow – in the first place. Luckily there are many actions available in the Drafts Action Directory so you can probably get started without any extensive knowledge of URL schemes. I highly recommend this app, and at $2.99 it’s a steal.

Using Workflow to get map images of locations

We just got back from vacation. By just I mean last weekend, but I may still be in denial that it’s over. I haven’t had a lot of time since, though, to write much, so I am working on that. In the meantime, I thought I’d just share a simple little workflow I sometimes find useful for saving locations.

There are plenty of ways to share your location with others these days, be it through the recently added features in Google Maps, the built-in options in Apple Messages, or some other service such as Glympse. There are also plenty of ways to save locations, using apps like Swarm (Foursquare) or, one of my favorites, Rego (more on that in the future, probably). Though not created specifically for saving locations, Day One is also a great app here, with its quick and easy Check-in feature, and ability to add location to a journal entry’s metadata. Usually, if I am saving a location, it is going to be by taking the location data from a photo using Rego, or creating a Day One journal entry. Sometimes, however, I want more than just a location’s coordinates, or a link to open it in Maps. Sometimes, I want to have a map image of the location.

While I could certainly take a screenshot in whatever map app I happen to be using, that requires cropping and potentially more. I want something I can access easily, tap, and get a map image of my current location, without having to tell it anything. Luckily Workflow provides a very simple way to get this, thanks to its ContentKit framework. When you pass input to an action in Workflow, that action will process the input based on the type of input it is expecting or capable of receiving. If you pass a photo into the Get Text from Input action, the output obviously wont be the photo. Workflow knows you want text, so it gets the only text associated with the input: the file name of the photo.

You might see where I’m going with this: Using this same concept, we can pass a location into the Get Images from Input action in a workflow. The only image that would be associated with location data, at least as far as Workflow is concerned, is a map image of that location, and so that is what it gives you. This means we can simply use the Get Current Location action, followed by Get Images from Input to get our map image for the current device location. You can use Workflow’s magic variables system to easily construct some more details, if you would like to share or save the image along with a location name, coordinates, or perhaps a Maps or Google Maps link.

Here is a simple version of the workflow that gets the map image and then lets you share it. Here is what the output looks like:

The workflow results in an image of a map of the current location.

If you have any questions about setting the workflow up for more specific scenarios or run into trouble with it, feel free to reach out to me.

The Sweet Setup on Saving Instapaper Highlights to Ulysses

I’ve been using Ulysses on iOS on and off over the past year, but I recently switched to it full time for my writing needs. It’s a powerful app with a lot to offer, like excellent support for automation and publishing, including publishing directly to WordPress, which I’ve found very useful over the last couple of months. Not to mention, it’s a beautiful app that makes your text look great. Instapaper is another beautiful app, which I’ve been using for several years, which makes other people’s text look great, by presenting articles in a beautified, simplified format, allowing you to read, save, share, listen to, speed-read, highlight, and annotate articles.

The Sweet Setup, last week, wrote about using IFTTT and Dropbox to automatically save Instapaper highlights to Ulysses for research. I’m currently doing research for a job I want to apply for, and really hope to get, so I decided to give this a try. I setup my IFTTT applet similar to how it is described in the link above. However, I changed it to use the Append to Text File Dropbox action, rather than the Create New Text File action. I also made another important change at the beginning. Rather than using New Instapaper Highlight as the trigger in my applet, I changed it to use the New Comment option instead. I’ve saved to Instapaper some articles related to this job position, a newer form of technology it involves, information about the future of the industry, etc. Instead of just highlighting important bits, I wanted to add a note for each bit I found important, stating why I thought it important, or some quick thoughts on how it is relevant. In Instapaper, adding a comment to selected text automatically highlights it as well and, if you’re using the comment option for the trigger in IFTTT, then both your note and the highlighted text are available. I setup my applet to format the highlighted bit as a markdown quote, with my note below it.

Configuration of an applet to save Instapaper comments to Ulysses (via Dropbox)

It’s been useful so far. If nothing else, just having my highlights and related notes in Ulysses is a good start. I do wish IFTTT would allow me to only include the URL and Title of the article in the first comment for a particular article, rather than each highlight however, I can work with that for now. I also setup and applet specifically for highlights (without comments), but I haven’t yet tested with both turned on, to see if they play nicely together on the same article (i.e. if I make some comments in an article, as well as some simple highlights without comments, if both will be appended to the same file, without duplicating the highlights when a comment is used, since comments also highlight the selected text. If anybody has ideas about that or has tried it, I’d be interested to hear. For my current mission, at least, the comment version will work sufficiently. Thanks to The Sweet Setup for another good idea and, if you haven’t before, you should check out the site.

Creating new TextExpander snippets with Workflow from (almost) any app

Using Workflow, you can create TextExpander snippets in nearly any app.

Snippets in TextExpander can save a lot of time typing

When you have a lot of repetitive typing to do, text expansion can be a real timesaver. iOS has built-in keyboard shortcuts, which can a big help for things you type often such as an email address or phone number however, these text shortcuts are rather basic. Though limited by Apple’s app sand boxing, a real text expansion app can typically go a lot further, and the best in this market is TextExpander by Smile Software. TextExpander can save you a lot of time, especially if you’re using apps that support it, and provides an SDK that has been adopted by several great writing apps, such as Drafts and Day One. There is a good number of apps that have added support for TextExpander, but they also provide a third-party keyboard to expand snippets. I do find I have some personal issues with the keyboard, and I’ve heard criticisms from others, but I still find it useful especially compared to the other options.

Though perhaps less known, TextExpander also provides a URL scheme. Sometimes, when I’m writing something for the x-teenth time, I think, I should really make that a snippet. I’ll do it when I’m finished here, and then I forget by the time I’m done. On the Mac, it’s really easy to create a snippet. On iOS you have to open the app and fill out the new snippet form. Luckily there is another way: the URL scheme.

TextExpander’s URL scheme offers a method for creating new snippets. All we need is a way to launch that URL while passing our intended snippet content to it as input, right from the very place we are typing. That’s where Workflow comes in. Though it has no support for TextExpander built-in, it does make it easy to take text input and run a URL scheme with it. However, I wanted a bit more control here. TextExpander provides a system of organization for snippets in the form of groups. I wanted to be able to select a destination group for the snippet when I create it, and set an abbreviation for it. That’s what the final workflow does.

This workflow creates a snippet from the selected text

To use the workflow, simply select the text you wish to save as a snippet. In the Copy/Paste pop up menu, there is also a Share option. Tapping Share from here will share the text only, which is what we want. Then select the Run Workflow action extension and choose the Create Snippet workflow. The workflow will first display the selected text so you can edit if needed and then confirm it. Next it will ask you to create an abbreviation for your snippet, and then show a list of groups from which you can select as a destination for the snippet. The workflow will then launch the Workflow app and prompt you to confirm you want to open TextExpander. Once it does, the new snippet is created and you are returned to Workflow. Unfortunately, due to Apple’s restrictions in iOS, the extension must first open Workflow to launch the URL scheme, and it is not capable of returning you to the original all you started in. For me, that’s a small annoyance but certainly not a deal breaker.

The workflow lets you select a group and apply an abbreviation

You should customize the workflow by changing the group names in the List action to reflect your actual snippet group names. Be sure to match spelling properly with how they appear in TextExpander. You can grab the workflow here. Let me know if you have any questions or suggestions.

Getting message links from Airmail with Workflow

Using Airmail’s integration with Workflow to get a more portable message link.

The number of email clients on iOS is no small thing, and it continues to grow as developers implement their own ideas on how to improve email. Each of these have their strengths and weaknesses and those can vary widely between some email apps. It’s undeniable that one of the biggest players in this space right now is Airmail (also available on macOS).

Airmail is an email client geared towards power users, providing users with numerous options for taking action on email messages. This includes the now-typical options to snooze a message or mark it as a todo, as well as a long list of actions to process messages with system features or send them to a number of apps. With Airmail’s actions, you can easily create a reminder, an event, or a PDF, or send the email message to one of the supported apps such as Trello, OmniFocus, Todoist, Day One, Ulysses, Bear, and even DEVONthink, just to name a few.

Apps and services available in Airmail

A more recent addition to Airmail actions is support for running workflows in Workflow and custom actions. Custom actions can be useful, allowing you to essentially carry out multiple actions in one. With custom actions, you can star an email and then create a task or reminder, without having to run two separate actions. Workflow actions are setup as custom actions as well.

When setting up a Workflow action, you can choose which elements of the message are sent to the workflow such as Sender, Sender name, To, CC, HTML, Text, and more. It also offers the Message Link parameter, however message links are created as airmail:// URLs, which means you can only open them in Airmail. While there are advantages to this, if I am linking to a message in a note or some reference material that I may come back to down the road, I want to be able to open that message even if I am using a different client. That’s where Workflow comes in. Apple Mail also has a URL scheme that allows you to open messages from elsewhere. The messages have a unique message ID. This ID is the same in Mail as it is in Airmail and this is what is required for Mail’s URL scheme to open the right message.

Mail’s URL scheme to open a particular message is message://<messageid>. We can set up the action in Airmail to send the message link to the workflow, and then we can use Workflow’s Match Text and Get Group from Matched Text actions to isolate the message ID from the Airmail URL that is sent to the workflow. We can do this using a simple regular expression messageid\=(.+)$ to match the ID and then insert the group we get from into a message:// URL within a Text action.

I should back up a moment and add that sometimes, I want a link in a markdown format. I setup my Airmail action to send the Subject in addition to the link. When setting up Workflow actions that send multiple parameters, Airmail lets you define a custom separator character1. At the beginning of the workflow, you can use the Split Text action to separate by the same custom character you set in the Airmail action. The you can reference each item individually at its index using the Get Item from List action2. This allows us to receive the link and the subject, and then provide multiple options for generating the link as a plain URL, or a markdown link. I took it a step further in my workflow by including the option to generate an Airmail markdown link or a plain Airmail link as well.

The workflow being used to copy a Mail URL as a markdown link.

Now whether I need to reference an original message source months from now, or just create a quick reminder with the link to a message, I’m good to go. You can get the workflow here.

EDIT: Somehow a couple of little things got changed that I didn’t realize before. The proper changes have been fixed in the version of the workflow linked above, so that shouldn’t be an issue. Just pointing out that the screenshots throughout this post may show a few differences. In setting up the Airmail custom workflow action, the separator field should not be blank, it should be a double pipe || character. I also changed the index in the workflow from what the screenshot shows. For some reason if a separator is specified in Airmail, the app will include a blank item first, so the subject was at Index 2, rather than Index 1. Finally, I added a copy option to the workflow, which was also not pictured. Apologies for any confusion. Hope you find this workflow useful.

Note: Airmail and Workflow icons are property of their developers/owners/designers, which is not me

  1. This field was blank in the screenshot, but the custom separator my workflow uses is double pipes (
  2. The screenshots of the workflow show it getting the first item to get the subject. For some reason Airmail sends a blank item first when using a custom separator so it should actually get the item at Index 2 for the subject. It’s fixed in the final workflow linked at the end of the post.

Workflow for Saving Recipes from Kitchen Stories to Paprika

When the Paprika extension isn’t available but a URL for the recipe is, Workflow can help.

I’ve recently discovered that I really enjoy cooking. I love trying to make something new and experimenting with various spices, seasonings, and other ingredients to create a unique and delicious flavor. For recipe management, I use Paprika Recipe Manager for iPhone, iPad, and Mac (separate purchases for each but recipes do sync between versions with a free Paprika account). Paprika allows you to save recipes via a sharing extension in the iOS share sheet. If it isn’t able to extract the recipe from a webpage, it will ask you to open the page in Paprika’s in-app browser, which provides some excellent clipboard tools for manually saving the recipe in a fairly quick and easy manner. For instance, you can select the ingredients on the page, and then tap the Ingredients button along the bottom of the browser, then do the same for directions, cook time, nutrition, notes, etc.

The recipe clipper in Paprika's in-App browser

Paprika also allows you to search recipes within the in-app browser, auto-detects if a URL is in the clipboard (and prompts to load it), create new recipes manually from scratch, manage and organize recipes through categories or favorites, pin multiple recipes for quick access when cooking, easily set timers (auto-detected in the text of the recipe), add ingredients of a recipe to a shopping list and sync that list to Reminders, and create weekly meal plans which can be synced to your calendar. Unfortunately the app hasn’t been updated in awhile and I’m not so sure it’s in active development anymore, which is a shame. That being said, as long as it works, I will continue to use it. One thing I have wanted to see from the developers for some time now is an improvement on the base URL scheme of the app: the ability to prefix a URL with their URL scheme and have that page opened in Paprika’s browser. There are apps which have used URL schemes in this way for some time. Prefixing a URL in Safari with the letter r, as in rhttp://recipesite.com/thisrecipe will open that URL in the in-app browser for the Documents app by Readdle. 1Password also provides the ability to open a URL within their browser (by prefixing a URL with op).

The extension for Paprika usually works great in Safari, in my experience. However there are instances where it wont be available, such as when viewing recipes from other apps. I’ve found the Kitchen Stories app to be quite fun to browse over the past few months but due to the data it makes available to the share sheet, the Paprika extension isn’t available here. You could use the Copy Link button available in their custom share page, and then launch Paprika manually, which would then prompt you to load the URL in the clipboard. Alternatively, you could let Workflow take care of that for you. Just like I have workflows to open a page in Documents or 1Password with their aforementioned URL schemes, I also have a workaround for Paprika. This uses the Workflow app on iOS as an action extension to copy the input URL to the clipboard and then launch Paprika using their paprika:// URL scheme, where the app will prompt you to load the page in the browser so you can save the recipe.

Saving recipes from Kitchen Stories to Paprika using Workflow

The workflow also stores your current clipboard content to a variable so that if you return to Kitchen Stories after saving the recipe, while the Workflow extension is still running, it will set the prior data back to your clipboard. I don’t prefer having to use clipboard workarounds so being able to at least maintain whatever I may have on there is a nice thing for me. The workflow will work from other apps as well, as long as they make the recipe’s URL available to the share sheet. You can get the workflow here.

I keep hoping to see some more advanced features from Paprika, as well as better export options, but I still find it to be really great at what it does and will continue to use it for now.

Optimistic iOS User

Some thoughts on why I am optimistic about the future of productivity, automation, and professional use of iOS — specifically the iPad.

Earlier this week, in the keynote for their annual Worldwide Developers Conference, Apple announced the next version of iOS: iOS 11. The announcement of the next version of iOS was expected, of course, but there some changes I wasn’t expecting quite yet but was happy to see, particularly in regards to the iPad which, as they joked on stage, is being turning up to 11.

We all have our own critiques, and I’m no different, but I’m generally an optimist about these things. iOS certainly has its flaws, as an software platform will, but the announcements from Monday do a lot to move the iPad forward as a legitimate computer; something some of us already saw it as, despite room for improvement. I expected Apple to eventually implement better features for multitasking (and perhaps even drag and drop), although I was expecting to have to wait another year or so — what a pleasant surprise. I haven’t gotten my hands on the beta yet, but I plan to try the public beta later this month (after a proper backbup, of course!). That said, I remain optimistic about the productivity improvements coming to the iPad.

The revamped control center and app switcher — resembling something more like Mission Control on macOS, the improved dock, the implementation of drag and drop, screen recording, and instant markup for screenshots — just to name a few — will undoubtedly enable many iPad power users to get more done more efficiently than before and, hopefully, draw in new iPad users and an increase in use for existing-but-less-frequent iPad users, pushing further it’s place in the wide world of computing devices.

I know a lot of people were concerned with Apple’s acquisition of Workflow. Some who rely on the app for work and other reasons were worried that this might be the end of Workflow and perhaps lead to less powerful automation on iOS. One of the reasons I can remain hopeful about the future of iOS — and specifically the iPad — in terms of automation, productivity, and professional work is that after being a part of the Workflow team for a little more than two years, I can say that they loved working on Workflow as much, or more, than I did: developing it, improving it, introducing new features to our customers. They were passionate about it. While I don’t have any inside information, I personally don’t think they would have made such a deal if they didn’t think they could continue to do these things in some manner at Apple. I should reiterate that I’m not basing this on anything other than what I saw working with them for a couple of years so I could certainly be wrong but, as I said before, I am optimistic.