Power Automates Top 10 Missing Features
Published: 2022-09-05 07:44:35

Power Automate is a fantastic piece of Software, with a perfect learning curve and extensive functionality. Anyone can start on Power Automate and create a useful/productive flow in less than an hour. And over time there are so many features that developers can master, allowing Power Automate to expand beyond personal productivity to enterprise ready.

But, there are a few things missing, well at least things that I think are missing. So, I thought I would share my top 10. The first 5 are Expressions (why not share the love with Logic Apps too), but would also work as actions.

## 1. Type Of
Very similar to the Javascript version, it would be great to have an expression to return what type the parameter/output is. At the moment the only way to check if something is a integer is a long xpath expression, that's just not the right way to do it, Microsoft. The obvious ones are the variable types:

- String
- Integer
- Float
- Boolean
- Object
- Array

And for a bonus I would add:

- Date
- DateTime
- Date
- Null

## 2. Regex
This is a no brainer, and still surprising it is not yet available. An out of the box regex expression (instead of having to use an Office Script), which has regex input and an array output would be great.

```
regex(text: string,regex: sring)
```

## 3. Update Array
There is the 'SetProperty' expression to update objects, but this can't be used by an object in an array. It would be useful to be able to update properties of an array.

## 4. Remove From Array
Back to the Javascript analogy but a splice would be great. The example I had was when I was selecting random questions from a list and didn't want to select same one multiple times. The only way I could remove it was to use a combination of the 'take' and 'skip' expressions.

```
splice(to_remove_from: array,position: integer)
```

## 5. Sum & Average
There are already add,sub,mul,min and max but no sum or average for an array. For the life of me I can't see why these have been omitted. Pushing simple things like sum into a loop is a nightmare, as Power Automates loop performance is terrible and uses lots of Power Platform API calls. There is xpath that does have the right functionality, but it requires converting the json to an xml, this is again cumbersome, what we really need is either individual sum and average, or a JSON version of xpath.

## 6. Sort
We have a 'filter' control action, but no 'sort' action. That's an obvious miss, especially as its really difficult to find a workaround (good old Office Script to the rescue). Not much else to say, we need a 'sort' action.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pa6bzgiaa038o9iqrxdd.png)

## 7. Excel Connector
Why oh why oh why does the Excel connector not work with xls files? I know it is old, and I know it is probably difficult, but Microsoft is all about legacy support and:

- Lots of SAS still export data as xls files
- Encodian do a paid-for conversion action

And while we are asking, can we pull data from a worksheet not just tables, and what are the odds of adding csv's into the mix to (no more loop/splitting flows or having to use Dataverse to use Dataflow).

## 8. Get Logs (Admin Connector)
Currently you can only see the last 30 days or 100 flow runs in your history, which isn't great for audit and debugging purposes.
It would be great to have a Power Automate Admin connector that returns the logs (option to query by All, Success, Failed, Waiting and Cancelled). We could then schedule to download these into an archive. We can already output to csv from the all logs screen, so why not allow us to get the same data but drop it in an SharePoint list of just automate the to csv extract.

## 9. PowerShell Action
A lot of Power Platform functionality is only accessible through CLI or Azure, so wouldn't it be great to be able to call a Powershell script from Power Automate. It is owned by Microsoft yet currently the only way to do it is through paid connectors or complex process with Azure Automate. What we need is a simple out of the box connector that doesn't require any setup in Azure, make it premium by all means but at least let us have an option.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zch9yswm63wu8ej7lxdw.png)

## 10. Script Action
Now this would be cool, we can already do something similar with Office Scripts, but passing things to and from Excel, when Excel isn't needed, seems janky. Plus you add the complexity of managing the Script file, and Office Scripts still have limited functionality. A full fat JavaScript (or Typescript or C#) action inside a flow would be amazing. We could cover any missing functionality (1-5 would be covered) and we would add the same flexibility platforms like Blue Prism have to create our own business objects.

## Bonus Number 11. Read Only Role
Currently if I want to share flows I have to give them full edit access. This just isn't acceptable for enterprise solutions, where flows are often stored in Service Accounts. This means we have can't troubleshoot easily by viewing the logs. Same problem with training, it would be great to share a view of my flows so people can learn, without exposing my connector credentials and worrying about accidental edits.

---

So thats my 10, sorry 11. They aren't too blue sky as they mostly have current workarounds (which at worst could be packaged up), or there are external connectors that do it already (I'm not a fan of sherlocking but these really feel like basics that should be included).