Microsoft Flow – The hidden gems, are you aware of all of these?

Microsoft Flow has many connectors available. A lot of these connectors give you an API into applications, but there are a few connectors that feel like the core of Microsoft Flow. Hopefully there connectors will be extended soon as some of them feel like a very good start, but could do with more. Although, in some cases you could of course try the hard way using Microsoft Flow expressions.

The connectors that I consider to be part of the core connectors  do not need you to connect into any other system than flow. These are:

  • HTTP
  • Notifications
  • Approvals
  • Content Conversion
  • Control
  • Data Operations
  • Date Time
  • Flow button for mobile
  • Flow Management
  • FTP
  • SFTP
  • Schedule
  • SMTP
  • Variables



The HTTP Connector gives us 3 actions.

  • HTTP
  • HTTP + Swagger
  • HTTP Webhook

All of these operations give you the option to call APIs if you haven’t got a better API available as part of the Connectors that Flow offers. In general I would avoid using these unless you can’t find the right connector. However there are cases where using these make sense. Like a few weeks ago where I wrote about calling a public web services that returned some data.


The Notification connector is one of those forgotten connectors. It offers:

  • Send me a mobile notification
  • Send me an email notification

How often do you send yourself emails to debug a Flow? These notification actions are a light way option to do the same.

When this action runs you get a simply notification email sent out to you.

Ok, you don’t get the rich experience as with some of the other email action but fro debugging purposes this action is a lot quicker to configure.


The Approval connector has just one action. Start and Approval creates an approval task that can be assigned to a single person or to multiple people:


Content Conversion

The content conversion is one of those limited connectors that could do with some more work form the Microsoft Flow team. At the moment you can convert HTML to text and that is it.


The above flow would result in the following output. This is quite handy if you have html and want to get some text, however there are other file conversion that might be useful too.


The Control connector is one of those connectors that isn’t used very often and I’m not sure if you should use this at all. When you feel the need for using this action to terminate your flow in a failed status then you might find that you need to redesign your flow and just let the failing actions fail the flow, although …

… have a closer look at this action. There are 3 statuses in this action:

  • Failed
  • Cancelled
  • Succeeded

When you select cancelled or Succeeded the Code and Message option disappear from the dialogue. So imagine if one of your flow actions failed but actually you are happy for the overall flow not to report a failure. You could run this terminate action to make the flow succeed even though an action failed (note that you will need to use run after settings on the action).

Data Operations

The data operations connector gives a number of operations to convert data. The Operations are

  • Compose
  • Create CSV table
  • Create HTML table
  • Filter array
  • Join
  • Parse JSON
  • Select

As these action all deserve there own section in this post I will go through each on of these.


The Compose action reads data and spits it out as dynamic content. Huh, why would we need this then? We could create a variable (see later) or we could just build up the data wherever we want it.

So you could use this if you want to connect multiple variables or expressions or dynamic content into a single piece of Dynamic Content without the need for creating a variable.

Make sure though that you rename the Compose action. That way you can recognise your Compose variables.

Create CSV table

When you’ve got an HTML table you can use this action to generate csv instead. This action as particularly useful if you need to manipulate data in an html table using Flow.

Create HTML table

When you’ve got an CSV table you can use this action to generate HTML instead. This action as particularly useful if you need to manipulate data in an html table using Flow and you’ve converted the table into CSV first however you want to present the data in HTML to the user.

Filter array

Have you ever found yourself creating conditions inside a Apply to each step? Have a look at the Filter array option. With a few very easy to configure filters you can filter out all the unwanted items before you run the apply to each.


The Join action is a bit like the concatenation expressions. This action lets you concatenate all elements in an array and you can specify a separator.

With the above action you could for example generate a line for a csv file from an array variable.

Parse JSON

The Parse JSON Operation gives you the different JSON elements of your JSON. Although there is an easy way in FLow to access each element by querying the json directly.  This options can be helpful for the less technical power user when they need to query json returned by a web service.


Then the final action that is available under Data Operations. The Select action lets you adjust the format of an array. So when you have an array with 100 fields you could create a new array with just 10 of the fields included simply by selecting each field that you want.With the filter array action the select action give you the REST api operations similar to the we ones that we are familiar with in the REST api.

Date Time

The Date Time connetor gives us operations to do calculations with Dates and Time.

These actions give you an easy way to get the current time and add a number of minutes, hours or days to the original. you can even easily get a time in the past or future just by specifying the delta.

Flow button for mobile

To manually start a flow and ask the user for some input the Manually trigger a flow trigger can be used.

Flow Management

With 19 actions available to manage your Flows this is one of the larger connectors. I’m not sure how often you would really delete a flow from another flow but this does give a lot of options.

With the Flow Management module I managed to create a flow that creates a backup of all my production flows on a regular basis.


Do you want to FTP files to an FTP location? well this is your set of action to look at. With both an secure and non secure connection option available


When you want to schedule a wait in your flow you can use either the Delay or Delay until. These actions make it easy to either wait for a certain time or for a certain period. Although these options might be useful sometimes, quite often it is easier to use the timeout feature on actions to set  a wait time.


To send an email using the SMTP protocol you can use the Send Email in the SMTP connector. Nothing exciting here.


The Variables connector is one of the more important connectors. to use a variable you will first have to initialize a variable.  It is not possible to initialize a variable anywhere else than at the top of the flow. Annoyingly enough, you can’t add all your initialize variable actions in a single scope box, therefore many flows will start with a list of initialize variable actions.

There are a number of variable types that you can use.

Boolean, Integer, Float and String are all obvious simple data types. Object and Array might be a bit harder to understand.

An object is a JSON based object:

The objects could be the result returned by a web service or you could set the variable as shown above.

The variable connector also offers increment and decrement actions that can help you keep counters in for example apply to each loops.

That is all for now. If you find any other useful connectors within Flow that I have missed out then feel free to leave a comment below.

Pieter Veenstra

Business Applications and Office Apps & Services Microsoft MVP working as a Microsoft Productivity Principal Consultant at HybrIT Services. You can contact me using

View Comments

  • Can you please publish your flow with your backupflow you've mentioned in the Flow Management section? Thanks

    • Hi Leander,
      I developed this for a customer and therefor unfortunately I don't have access to this environment anymore. Therefor I'm not able to share this.

      • Hi Pieter, thanks for replying. I understand that, but shouldn't be extremely hard to do by myself :)

        Another question, could you write something about the Filter Array operation? I plan to possibly move some flows to Logic Apps in the future and thus would need to reduce the amount of wasted iterations.
        I'm already stuck when trying to use my filtered data, besides the fact that it seems not to even filter my array.
        A simple example with a filter like Status -eq 'ok' where only the ok-items would be iterated.

        Thanks :)

Recent Posts

Calculate the Sum for a SharePoint column in Power Automate

Last week Shane Young asked me about calculating the Sum for a SharePoint column in…

2 days ago

Object must implement IConvertible in Power Apps

In Power Apps when you do a Patch to create a new item or to…

6 days ago

Get started with adaptive cards in Power Automate

Getting started with adaptive cards can be difficult. In this post i have written some…

2 weeks ago

Create PDF documents from data in Power Automate

In this post I will look at how to create PDF documents from data. Use…

2 weeks ago

Unnest nested arrays in Power Automate

We all know this problem, you have a nested array in Power Automate but how…

3 weeks ago

Advanced settings not loading in Power Platform

Yesterday one of my clients showed me an issues where the Advanced settings didn't load.…

4 weeks ago