A few days ago, Microsoft decided to release a preview of Flow – their alternative to IFTTT and, I guess, Zapier. This seemed like a very interesting thing to do, and a little un-Microsoft-like. But then, Microsoft have been quite un-Microsoft-like lately. I was curious about this new service, so I had a poke around.
Templates
Much like IFTTT, MS Flow has pre-created templates for some commonly anticipated situations. Understandably, Flow is geared more toward enterprise and marketing tasks than IFTTT. Where IFTTT features things like weather updates, turning on your lights when you get home, and tracking your Swarm checkins, Flow lacks those frivolous personal tasks and instead presents things like connecting to Sharepoint, copying files to OneDrive, and creating new leads in Salesforce when people tweet with certain hashtags.
It gets more interesting when you realise heavy hitters like Salesforce and their users have been publishing connections and recipes on IFTTT for a while, and Flow doesn’t yet have equivalent templates. Things like “If I get a new follower on Twitter, create a new Salesforce lead”. IFTTT has no integrations with Microsoft Dynamics, Zapier has Dynamics listed as an “Upcoming” integration, and Flow launched including templates like “Create Dynamics Leads Based On Tweets”.
A few existing templates did make me giggle:
Services
As expected, many Microsoft services are in there: OneDrive, Outlook.com, Office365, Dynamics, Sharepoint, Azure (including storage to Blob and SQL databases). Also Microsoft Translator, which is cool – you can translate text (emails, tweets, files) as part of your Flow. Pretty neat!
Current starting triggers include things like:
- Github – issue events only, not commits or other repo actions
- Posts from Instagram, Twitter, Facebook, Yammer, or to an RSS feed
- these seem to be limited, for example “Twitter” is a search for any tweet by keyword. No other options are available.
- Mailchimp – member addition or list creation
- Trello – card addition
- Wunderlist – task creation, reminder, task due
- Box, Dropbox and Onedrive – file creation
- Recurrence – every X hours in specified timezone
I look forward to seeing how and when richer triggers and new services are published. I’m missing things like an S3 connector, Github commit events, Harvest integration, iOS notifications. Some of the destinations are limited too – I can use Trello as a trigger, but I can’t yet put something into Trello as part of an action.
It looks like you can do some cool things like wait for an approval email before continuing with a flow. Though you might need to use Office 365 to make use of that.
Using a Template
I tried out a template where every mention of a Twitter term is saved to a csv file in Google Drive. It was easy to set up – it asked for authentication to connect to Twitter and Google Drive, then allowed me to enter a search term and the name of a destination file. Done! And it worked more or less as expected. It didn’t trigger on tweets from private accounts that my connected account could see, but I’m not sure if that’s a bug in Flow, or intended behaviour of the Twitter Search API. Other than that, it worked just fine.
Once created, the Flow is running. Mine ran every ~15 seconds. Flows can be paused, edited, and you can see each execution in the history: skip, success and failure. Unlike IFTTT it doesn’t look like you can force a immediate execution of a task.
In the screenshot above, note that the “File content” of that “Update File” step is an append action, adding the new line of data to the bottom, after the Body of the existing file. I like that Flow seems to give the user more control over each of these steps and connections than many of the connectors in IFTTT. We could have just as easily prepended that line, as well as including other bits of text.
Custom Flows
At first I thought I couldn’t create my own flows, but I was happily wrong. If you go to My Flows, you can Create New Flow from scratch. Woo!
Creating a flow from scratch was when I started to see more hints of a power and control that IFTTT doesn’t really have. Rather than just IF {this} THEN {that}, Flow lets you set up triggers based on things like schedules and http requests as well as services. You can optionally add a condition to filter the results of the trigger, and there’s an advanced mode for more nerdy control. It’s possible to trigger actions based on both the “yes” and “no” outcomes of a condition, which is very nice.
And (I got excited about this), you can set up multiple IF-THEN-ELSE blocks which are all executed by the trigger, connecting other services and carrying out multi-step actions.
Here you can see the condition step in black. Everything is collapsed in this view, but what that condition is doing is checking if the destination file needs to be created. If Yes, it creates the file. If No, it gets the existing file content and updates the existing file with the new content. You can also see the menu at the bottom, which I’ve expanded: I can add an action, or another condition to this flow.
The presentation is deceptive, while they appear to be in sequence, it looks like the new step doesn’t receive the outputs from the “previous” condition – just the trigger. Chained simple actions can feed their outputs to a following step, but a condition can only accept input from the trigger. There’s not yet any documentation on this, so I’m going off what it looks like I can and can’t do. Also, you can’t nest conditions – those “If yes” and “If no” blocks can only contain a series of actions.
But this is all kinda cool, right? One trigger and a bunch of things happen, some of those things can be multi-step actions if certain conditions are met. For free. Nice.
Publishing Your Templates and Services
Once you’ve created flows, you can submit them for publication as templates. So far there are only Microsoft-published templates but hey, it’s only a few days old. It’s also possible to develop an API for your service and register it with Flow. I wonder if MS will try to keep Flow focussed on enterprisey things, or if they’ll let any and all services register their APIs?
In the meantime, if you’re already in MS-land and you’ve always wanted free event-driven integration between their services, Flow looks like it could be worth a try. If you decide to take a look, I’d love to hear what you think of it and what you’ve achieved.