If you're working with the Microsoft 365 suite of products, you have no doubt come across or at least heard of "Power Automate" or as it used to be called "Microsoft Flow". This system exists to help automate tasks within the 365 suite in a simple and easy to understand manner, similar to how IFTTT or Zapier works, with click and create sections for each task in your automation flow.
Below we will expand into what flow is, how it can be used, how to sell this service to your clients or customers as well as some example flows to get you started with. Lets dive into the world of Automation!
What is Microsoft Power Automate
Power Automate is a tool used within the suite of products in Microsoft's 365 offering that allows you to automate tasks, giving time back to you. It is also useful for building systems that act as applications in a way that help to achieve a new level of functionality within the organisation. An example of this is a "Corrective Improvement" system that I recently built for a client that runs over 9 different power automate flows, that takes feedback from internal staff and external customers to build a system of how improvements to the business and it's operations work. This feedback goes into a list which triggers who the feedback goes to based of a location as well as actionable cards that get sent to each team member via a teams message that is reflected on their KPI's to complete. This system has really opened up how staff complain about other staff or management at that particular organisation, which has resulted in multiple shakeups on process and procedures.
This is just one example out of many with how power automate can help your business, and I'll discuss more examples at the end of this blog with screenshots so that you can build them yourself and use them at your workplace or for your clients.
How Power Automate Works
Power automate works by connecting multiple different "connectors" together. It does this via pre-built API's that have been approved in Microsoft power Automate. The list of apps grows each month with new connectors and features of those connectors, so if something doesn't exist in the suite at the moment, it could do at some point in the near future.
It's definitely worth keeping an eye on the updated connectors listed in power automate (https://powerautomate.microsoft.com/en-us/connectors/) so that you know what's included or not, and what features are available of those connectors before jumping into an automation of a system.
Managing Client Expectations
Managing your clients expectations can be the hardest part of building a flow, because the initial excitement of seeing an automation working and solving a problem that they previously spent hours working through that is now done completely automatically is itself an exciting thing to see, but that excitement often turns into a battle of reality vs expectation, where the expectations far outweigh the reality of what can be done withing power automate.
The design process goes hand in hand with setting client expectations based on what can actually be done and what cannot. When designing a solution, I usually follow the following methodology;
1. Have an end goal for what to achieve
2. Gather information from various endpoints into one central location, ex; a SharePoint List
3. Read data from the central location to each goal/ outcome
I find that drawing this out in a drawing app (even mspaint) can be quite helpful for getting a good idea of how this will flow from a high level view.
Getting a visual representation before proceeding with the automation build helps me understand and stay in-line with what the outcome/ goal is.
Example Power Automate Solutions
Reminders for SharePoint Items
As far as "useful automations to try out", this one has to be on the list of most useful automations that you can implement with just a few easy and very simple steps!
Essentially what we are doing here is running a scheduled automation every day at 8am that checks items in a SharePoint list to see if they match the requirement to show they have "expired".
If they match the requirement condition, an email is sent to notify someone that an item has expired or is due and needs to be actioned. Simples!
Now where this gets really juicy is that you can change up what the conditions are, the wording of what you're being reminded about (perhaps expired work cover licenses, drivers licenses, blue cars etc) and have this trigger for each staff who has to have one of these accreditation's and have them up to date. This is especially useful in the medical, teaching and construction industries.
Automatically Onboarding New Staff (Azure AD)
This automation is probably one of the larger ones I've built in the last few years, where the process is designed to give time back to IT staff and automate as much of the onboarding process as possible. The idea is simple; A HR staff member fills in a SharePoint item that then triggers the flow to create the user account in azure AD, add some notes to a freshdesk ticketing system, assign the manager to the account as well as some contact information, add them to exchange groups and assign MDM groups for intune so that when they sign into a device, it kicks off the software installation process (if not already on the system).
The final step of this particular flow is to send a message to the IT support person to let them know that this staff member's account has been created (via teams) and links the freshdesk ticket in the message so that they can easily browse to the ticket and complete any manual items.
The beauty of this flow/ automation is that it is simple and removes some of the factors of human error (forgetting to do some of these items). The weakest link in this chain is the input for the SharePoint item, which I've seen fail a few times with special characters and things like that, but was easily fixed later with a filter of special characters from the input fields.
I love this flow, and I love how much time it saved the IT team from running through these actions each time a new staff member is onboarded. It is especially useful at companies where there is a high staff turnover or in larger companies where new staff are employed on a regular basis. Hours of time saved!
Setup Default Folder Structures for SharePoint Document Libraries
This is quite possibly the messiest and most insanely large automations I've ever built, and I'm sure there's a better way to do it than what I've done, but take this example of process automation and make a better version (then send it to me lol).
Without deep diving into the gory details of what each of these create items does, lets take it back to basics and explain how this works and why it's saving this company countless hours of creating new sites and applying permissions.
Firstly a Microsoft Forms form is the data entry point for each of the details of this folder structure. In this example, it's creating project folders for a new project. Power Automate then reads the submitted form and gets the response information and creates each of the folders for that specific folder.
Simple put, you enter in what type of project this is, details of the project manager and a name for the project. Power Automate takes this information and has a condition in place to create a specific group of folders for each type of project, assign the project manager permissions at the top level, then individual SharePoint groups permissions on each of the folders in that project.
It looks extremely messy, but that's because I wanted to have each project folder structure all in one flow (mostly just to try it out but also because I was being lazy), instead of structuring it out into multiple flows for each structure/ project type.
It's a pretty cool flow, especially because of the permissions piece, and has really given this particular business a taste for what's possible in flow, which brings me to the conclusion of this newsletter entry.
Power Automate is a tool that works great for automating business processes and making peoples lives easier by taking away repetitive or tedious tasks. Create a flow can be repetitive and tedious, however if you do it right once, that automation can run for years (all 3 of my examples have been running for around 2-4 years now), with some minor changes along the way as the graph API and power automate connectors/ functions have changed over time.
The businesses I work for have really found benefit in these automations, especially with giving time back to the staff to get other work completed, but also to help with process checking on certain tasks of certain jobs. Things aren't missed if they are programmatically entered in to be completed, and this is probably the biggest area of track-able success when looking at different automations.