Life without WorkflowComments

From originally not knowing how I would ever use it, Workflow has become such a big part of how I do things that I'd be pretty lost without it. So, just like a lot of others I had a moment of panic when the app was bought by Apple.

Acquisitions of that type tend to be for specific functionality or for the team with the app itself often falling by the wayside or being removed altogether.

Luckily, that doesn't seem to be the case so far but doesn't rule it out in future. I, therefore, started thinking about what I do and how I could do it differently.

First step: looking through my 'flows' to see what I use Workflow for

  • microblog posts to WordPress
  • longer status type posts to WordPress
  • Likes and Replies
  • Posting microcast episodes (including a flow to check the latest episode uploaded to iCloud Drive)
  • rename, convert and resize photos
  • joining images

Second step: how could I do things without Workflow?

Images can be processed by other means so that's not an issue. I have a few image apps I use on a regular basis (Enlight, Phoenix, Photo Joiner) so that is covered.

I use Ulysses for posting long form pieces with titles, and posts with images regardless of length so could use it for any normal post - it just feels a bit heavy for microposts.

I've never really liked the WordPress app for iOS (or Android for that matter) as it always seemed unreliable and messy. Still, I've not used it for ages so quickly installed it. It has definitely improved but still feels a bit clunky - maybe it's just something you have to get used to.

I could post using Drafts using an action to go via the WordPress app (without actually having to use it) but would then need to switch to wp-admin in some cases.

The app supports the core functionality, including post formats, so 'status' can be chosen for microblog and title-less posts. It doesn't, however, appear to support custom fields which is a problem for me.

Both 'Likes and Replies' and microcast posts rely on being able to add data to custom fields. Being unable to do this kills automation for me and forces me to post via the WordPress backend - which I hate doing.

Ulysses also doesn't support custom fields and, according to the last feedback I had from the team, doesn't intend to.

Maybe the WordPress app can support them via the wordpress:// URL scheme although I doubt it, or another app, otherwise I'd be stuck. But I don't really want to buy yet another writing app just for that feature.

Conclusion: where would I be?

Without Workflow I would be stuck in various multi-staged processes. It's perfectly doable but very fiddly compared to the ease of automation that we just take for granted.

It's good to know where you stand.

Life without Workflow

It was always going to be too early for Apple to announce anything about automation at WWDC. We're probably looking at iOS 12 before the Workflow acquisition starts to bear any native fruit.

Perhaps we'll see some fledgling - and by that I mean beta - functionality in a later point update but, if we do, it will be minimal.

Seeing as so much of what I do now goes through Workflow I've been thinking about the implications of becoming so reliant on a single solution. Likes, replies, microblog posts, titleless posts, the microcast, they all rely on Workflow.

Apple won't have acquired the app without having a plan for it or its developers, and some form of native automation seems almost inevitable, although most likely in the context of Siri and AI rather than in Workflow's current remit.

Once any native automation arrives I can't help but feel that the Workflow app will be pulled from the App Store potentially leaving quite a vacuum in its wake.

Perhaps other solutions will appear by then. Perhaps native automation will be more powerful and versatile than I imagine. Perhaps I'm worrying over nothing, however, I doubt it.

We may be some time from any changes but the sooner we assess our options the better.

Status

Posting with Workflow

While waiting for the Micro.blog app to launch I thought I'd take a different approach with posting now that the site itself is largely sorted.

My main posting routine from Ulysses is largely set in stone, incorporating a mixture of Phoenix and Enlight for editing images but this is a bit overkill for microblogging. I also wanted to automate the selections specific to microblog posts.

I have considered purchasing the Workflow app for a while but never had a genuine use for it.

Until now!

Drafts is better suited to writing short, text only posts (including markdown syntax) so this was the starting point.

A workflow would need to automatically set the following:

  • post type to "Status"
  • category to "Microblog"
  • post status to "Published"

Because I use the Medium plugin I need to ensure that microblog posts will not get cross-posted. When publishing via an external source (e.g. Ulysses) the Medium plugin does not appear to be triggered but is when the post is edited and updated via WordPress itself.

I, therefore, need to be taken to the post editing page to turn this off before any accidents happen.

Building the flow

The first step is easy: use the Get Text from Input action to get the text from Drafts into the workflow. Thanks to tight integration between Drafts and Workflow your creation can be added directly to the Drafts actions list.

The text is then passed to the built in Post to WordPress action. After configuring it to connect to your blog you can pick the required options as listed above.

Once executed this action supplies the URL of the resultant post. As microblog posts are created without titles WordPress uses the post ID as the permalink. The post URL is saved to a variable so we can easily use it later. (In the latest version of Workflow, Magic Variables may serve this purpose but not, I found, in all cases.)

In order to navigate to the post edit page we have to construct the url based on the post ID. First, we need to isolate the post ID using Get Component of URL. This action pulls out specific sections of the URL such as:

  • scheme (e.g. http),
  • host (the root domain, e.g. colinwalker.blog), and
  • path (the part of the URL after the host and before any queries)

The path component includes the post ID and, depending on the permalink structure, might look something like /2017/02/20/5941/ - 5941 here being the post ID.

Isolating the post ID requires us to use Split Text to divide the path into chunks using the / as the break points.

This generates a list of those chunks and Get Item from List easily lets us choose the last one (the post ID) and pass it to a new variable.

From here the quickest option is to use a Text action to manually type the full edit post URL and tag on the PostID variable created above. This would then just be launched using Open URLs.

Making it generic

Rather than typing in the full URL, which limits the workflow to one site, we could dynamically create it with repeated use of Get Component of URL to pull out the host (domain) and even the URL scheme to ensure it matches.

These components are then written to their own variables and used to build the full URL instead of being manually typed.

Removing Drafts

Drafts is good for making notes of things I might want to post later but if I wanted to post immediately and didn't need any Markdown I could remove Drafts from the process and replace it with the Ask for Input action.

The workflow can then be saved to the Homescreen as an app shortcut or added to the Workflow Today widget.

Learning curve

I'll admit that Workflow initially seems a bit daunting and there is definitely a learning curve to climb. There may, as always, be better ways of achieving the above.

However, having a clear idea of what you want to achieve, how this can be broken into simple steps, and taking some time to read the action descriptions makes it far easier.

Posting with Workflow