Flow buttons: the hidden gem of Microsoft Flow
When I read community blogs and articles about Microsoft Flow, I see a lot of articles about the more standard way Flow is being used. There aren't a lot of community articles about Flow buttons. That's a shame, because it's such an awesome part of Microsoft Flow and I think it deserves a lot more attention.
A month or two back Jurgen Wiersema and I were working at ProRail and we were figuring out how to make Flow working in that organization. It resulted in a solution with Flow buttons that was featured on the Flow blog.
I see more and more people exploring the Flow buttons, but I still think a lot of people don't know what they are. That's why I'm writing this blog.
The Flow buttons are really easy to create on the web or with the mobile app. You can create an empty Flow to get started, and make sure to select the following trigger:
After you select the trigger, you have two options: you can just leave it like this or you can create inputs for the Flow button.
There are multiple scenarios for a Flow button without inputs, and I will just name a few:
- Send an email to someone that you are running late (you can even include a Bing map route calculation to the location of your next meeting)
- Block your agenda for the next hours
- Trigger a build in Visual Studio Team Services
- Track your work hours and work location (link to a Flow of the week post on the Flow blog)
If you want to see more examples, go to this link on the Microsoft Flow blog.
Some of the above scenarios use device signals like the date or time, location, username and more which you can use in your Flow.
Currently, there are two types of inputs: text inputs and since this week there's a new kid in town! This type of input is called a list option. At the moment of publication of this blog the list option inputs are available on the mobile apps, but not yet on the web. The Flow team ensured me they are working on this and confirm this on Twitter:
I cannot commit to an exact date but it is currently work in progress.— adi regev (@adi_regev) 14 juli 2017
Text inputs are really handy for small questionnaires, where you ask a couple of questions to find out how someone thought about an experience. But, you have to watch out: no-one wants to fill in a lot of text in a text box.
You can add the text inputs by clicking on the + icon at the button trigger.
When you click "Add text input", an input will apear and you will be able to add a title and a description for it. When someone runs the Flow it will show these values.
For this blog I created a simple Flow where a user can use the button to give his/her opinion about the weather. The trigger has a text input you can see in the image below.
I also created a push notification action, which is a bit lame in this scenario, but it's only for demo purposes. You can replace this in another scenario by an e-mail notification, an Power BI dataset or a SharePoint list for a more real-world scenario.
The push notification looks like this:
Save your Flow, and the Flow mobile app will show the Flow soon in the Buttons tab of the app. When I run the button I just created I get the following message instantly. This will only happen the first time, because the Flow app doesn't have the permissions yet to get your location. I used the city parameter, so that explains it.
After I tap allow, the Flow mobile app asks for the input I configured earlier. I make sure to fill in "OK" and tap the "Done button on the top right corner:
The button shows a loading icon and says "Started" when it's done triggering the button:
The following push notification pops up at the top of my screen:
It got my location right, because I am indeed in Utrecht and my input was OK. This shows how easy it is to create a simple button in Flow.
A list of options
Currently, list option inputs are only available on the mobile apps. To explain this better, I will expand the Flow I created earlier in this post. To create a list option input for a Flow button, you have to edit the Flow in the Flow mobile app and open the "Manually trigger a flow" trigger by tapping it.
To change your text input into a dropdown list you have to press the grey icon next to the description of your input. When you press it, you will see a new menu appear.
Make sure to press the "Add a list of options" option and see what happens:
Now you can add options to the list. I don't know exactly what the maximum is, but again: don't add too many choices, because it will be too much for the user of the Flow button. For this Flow I added 3 options as you can see in the screenshot below.
How does this work when you run it? Let's find out! Once you trigger the button in your app, it will ask for an input, but now the app shows a arrow icon, so you can see it's a dropdown. The choices will appear when you press the arrow. After that you can choose which option you want and press OK.
After this it works just the same as the text inputs. These types of inputs work great for scenarios where you don't want a lot of different answers. Typos are still happening a lot, so it's probably wise to choose for list option inputs instead of text inputs in some cases.
There's even more cool stuff about buttons. You can share them with your colleagues. While sharing, you can choose which connections you would like to share or if you want to share the buttons as run-only. To start sharing a button, tap the icon at the bottom right of a button.
For more info about button sharing read this post on the Flow blog.
To run these buttons, there are widgets available. You can add them to your home screen as a button on Android, or add them as a widget on your message center on your iOS device.
There are some things I currently think Flow buttons are missing:
- The max amount of inputs you can currently add is 5, but I would love to see this number go up. If you want this too, please vote for this idea on the Flow Ideas Forum. (link) - Update: The Microsoft Flow team increased the limit on the Mobile App to 20, but it's not yet working on the web yet.
- I would love to be able to embed buttons in other Office 365 services and on other webpages. I added this to the Flow ideas forum and the Flow team is already working on this. (link)
- More types of inputs! I would love to see a people picker field and for instance a date picker. Vote for it on the Flow Ideas forum! (link)
Flow buttons are really easy to use for a lot of workflow tasks. Especially with the addition of the dropdown list. There's even more coming, so make sure to look at the Flow blog more often.