“Focus on being productive, instead of busy.” – Tim Ferris
Productivity: The Holy Grail which all businesses and workers alike strive to attain. A quick book search will give you over 30,000 results of resources aimed to help you discover how to be more productive. The typical full-time worker in the U.S. works an average of 47 hours a week, considerably over the standard 40-hour workweek. How does one ensure that their work is getting done while still having time for their personal life? You have to figure out how to Work Less and Do More.
Enter Power Automate.
Power Automate is a tool within Office 365, which allows business users to build workflows to automate tasks and business processes across various applications and services. Put simply, Power Automate enables you to work less and do more. Talk about a catchy tagline, who doesn’t want to work less and do more?
Power Automate is both a business process and a personal productivity/automation tool. This tool can help you connect with disparate apps and services to automate your life. These automation possibilities are not constrained to the apps and services within the Office 365 platform.
With Power Automate, you can connect and automate processes across over 200 different applications ranging from social media services such as Twitter, Facebook, Youtube, etc. to the line of business apps like Salesforce, GSuite, and more.
You can access Power Automate via most modern web browsers or the mobile application available for iOS and Android. It is a cloud/mobile tool, so there is no desktop version. The concept of how a workflow operates is fairly simple; you define what should trigger your workflow then list out what actions should occur after your flow is triggered?
The true power in the Power Automate platform lies in the fact that a typical business user can build out these powerful workflows and business processes without having to know or write a single line of code. Power Automate is a true end-user tool. If you know your desired business process or task, you can use the simple point and click interface in Power Automate to work less and do more!
To make it even easier for you to get started with Power Automate, Microsoft provides hundreds of pre-built templates for you to use. For an example of some of these templates see the picture below:
Using one of these templates is as easy as clicking on the template and selecting the Create Button.
Are you inundated with emails and want to automatically move any email attachment to your OneDrive, allowing them to be organised and not lost in the shuffle? There’s a template for that! This picture shows how you create a Flow from a template:
As you can see in the next picture, through this template, Power Automate has already provided you with all of the steps needed to move over your attachments to OneDrive. In this case, the only thing you need to tell it is the folder in your OneDrive you want to save the attachment files to.
If you come from a SharePoint background, you might be familiar with another workflow tool, SharePoint Designer. SharePoint Designer is a tool that allows you to create workflows for data stored in SharePoint. With SharePoint Designer, there are only three ways to execute or trigger your workflow: 1: Manually 2: When an Item is Created or 3: When an Item is Modified. There are also a limited amount of pre-defined actions that you can utilise in your SharePoint Designer workflows.
Power Automate can handle almost all of the same workflow functionality that SharePoint Designer offers plus more. One thing you might have noticed that is missing from the SharePoint Designer workflow is the ability to trigger your workflows on a set schedule, such as daily or once a week. Power Automate can accomplish this by using the Recurrence Flow trigger.
The Power Automate Mobile App
Power Automate provides a powerful mobile application that allows you to create and execute your workflows on the go. The Power Automate app is available for iOS, Android and Windows. From the app, you can see your workflow run activity, view and respond to approval requests, browse Power Automate templates and interact with Power Automate buttons.
Power Automate Buttons
Power Automate Buttons are probably the most powerful feature of the Power Automate Mobile App. They provide you with a way to manually trigger a Flow and perform a set of actions. If an input is necessary for the Flow, you can configure an input screen to prompt the user to enter information. A good implementation of this would be managing contacts.
Picture this: You are at a conference, meeting a lot of people and collecting lots of business cards. What if instead of collecting multiple business cards, that you’ll inevitably lose, you could click a button on your phone, enter the person’s contact information and have it automatically add that person to your Outlook Contacts, a SharePoint contacts list and your MailChimp mailing list? That is a perfect use case for a Power Automate Button!
When you click on the “Save Contact” Power Automate button, you are prompted with an input screen (both shown on the next page). Once you enter the contact information and click “Done”, the contact information will automatically be added as an Outlook contact, added to your SharePoint list and your MailChimp mailing list.
You’ve seen just a few of the possibilities of Power Automate. Here are a few more examples of things you can do with Power Automate:
- Synchronise events across multiple calendars (Exchange, SharePoint, Gmail, etc.)
- Block out time on your calendar with the push of a button
- Automate approvals
- Automatically post to social media (Twitter, FaceBook, LinkedIn) when you publish a new blog post or video on YouTube
- After a set period move files to an archive location
- Recieve a notification if a file is added to SharePoint or another cloud-based system
Now that you have a good idea of what you can do with Power Automate let’s find out how to get it.
Per User Licensing
The Per User license is a consolidation of what was previously Plan 1 and Plan 2 and gives you access to the full capabilities of Power Automate. This means that you can access all of the Premium Connectors, the management tools, custom connectors, basically everything you want to take your Flows to the next level.
The Per User license costs $15 per user, per month, and will allow that user to create an unlimited number of flows utilising the full capability available to the platform. The same rules apply as they did previously, though, that if you create a flow that requires premium functionality, then the users of the flow will also need it.
While this isn’t as expensive as the same plans in Power Apps, you are still going to be quickly pushing up your monthly spend if you’re having to license all of your users, especially if you only have a few flows which make the most of the premium services.
Just like Power Apps, we have a new type of license which is the Per Process license, which is intended to provide a more cost-effective approach to licensing just a number of processes.
Per user plan with attended RPA
UI flows, which are the new robotic process automation capability in Power Automate will be generally available worldwide on 2nd April 2020. UI Flows enable you to connect Power Automate to legacy applications and allow users to ‘record’ processes in older applications such as clicking buttons or entering data into input forms, similar to recording macros.
This license allows users to create unlimited flows exactly like the Per-user plan but also includes the ability to design and use these new UI flows.
Per Flow license
The Per Process license is intended to give teams of users access to automated processes without having to license each one individually. The cost for this is $100 per flow, per month. However, at the time of writing, there is a minimum purchase of 5 flows, so you’re looking at $500 per month.
Office 365 license
Access to Power Automate is also included in the Business Premium, Business Essentials, F1 Plan, and the E1-E5 Enterprise Plans in Office 365. This means that if you have one of these subscriptions you also get access to Power Automate and can design and run flows. However, with these plans you only get the standard connectors so the per user or per flow plans mentioned previously must be purchased separately if you will need to access the premium connectors.
Connectors are the building blocks of Power Automate. They enable you to interact with data across various services. A connector acts as a wrapper around an API so that you can connect to the underlying service and communicate back and forth to it with Power Automate.
All of the Office 365 programs such as SharePoint, Outlook, OneDrive, etc. have their connector. There are also numerous connectors to non-Microsoft cloud tools such as Twitter, Dropbox, Salesforce, and MSN Weather to name a few. There are currently 243 different connectors in Power Automate. The picture below outlines just a short example of some of the most common connectors.
Types of Connectors
There are two ways connectors are grouped: Standard and Premium. As discussed in the previous chapter on licensing, there are several premium connectors that require an additional Power Automate Per User license to use (previously Plan 1 or 2). Some examples of premium Connectors include DocuSign, SalesForce, Eventbrite, MailChimp, Infobip, Service Now and Stripe. To utilise these premium connectors, you will not only need a subscription to their services but also a Power Automate Plan 1 license or higher to consume them in Power Automate.
Components of a Connector
Connectors are comprised of two different elements: Triggers and Actions. A trigger is a mechanism to perform an action. An example of a trigger could be “When a New Item is Added to a SharePoint List”. Actions are changes performed by the users. For example, when you send an email, add an Item, delete an Item, etc.
You can see a list of the connections that you’ve set up in Power Automate by clicking on the “Data” tab and “Connections”. The Connections screen will show you a list of the connections that you have configured and their status.
To add a new connection, you can select the “+ New Connection” button from the Connections tab. You can browse through the list of Connectors and select the plus icon next to the one you want to add.
When you select add, a dialogue box will pop up giving you additional details about the connection with the option to cancel or create the connection.
After you select the “Create” option, you will be taken to a screen to log in with your
credentials to the connectors site.
Once logged on with your credentials, you select “Allow” on the dialogue box, and the connection will be added and ready to use.
Connecting to On-Premises Data
In addition to the over 200 connectors to cloud-based services, Power Automate also gives you the ability to connect to on-premises data like SharePoint and SQL. You can connect to these on-premises data sources by configuring the Data Gateway. This configuration will require at least a Power Automate Per user or per-flow license to set up. For more information on setting up the on-premises data gateway access the link below: https://docs.microsoft.com/en-us/flow/gateway-reference
To set up a gateway, click on the Data tab in Power Automate and select the Gateways options. You will then be redirected to a page where you can download and install the on-premises data gateway.
Power Automate provides you with ways to create automated workflows connecting to over 200 different data sources. But what if your workflow requires access to a system
for which there isn’t a built-in connector? To support this need, Power Automate gives you the ability to build custom connectors with their own triggers and actions. Building custom connectors does require a bit of knowledge about API’s and JSON. To learn more about how to develop a custom connector you can reference these links from Microsoft:
- Create a custom connector from an OpenAPI definition
- Create a custom connector from a Postman collection
- Create a custom connector from scratch
- Use a custom connector in Power Automate
PowerApps is a tool within O365 that enables you to create desktop and mobile-ready applications with no code required. If you’d like to learn more about PowerApps be sure to check out the Beginners Guide to PowerApps. When creating automated business solutions, there is typically a data entry or form needed — a perfect example of where PowerApps and Power Automate work together beautifully. PowerApps can act as the form/data input piece while Power Automate kicks in for the workflow needs.
Power Automate includes a PowerApps Trigger which allows you to execute a Flow from your PowerApps app. There is also a Respond to PowerApps action in Power Automate which enables you to send data back to PowerApps. The Event Scheduling app is one example. When you click on a button to save a new event, you want to send out a meeting invite and update an item in SharePoint. A perfect example of PowerApps and Power Automate working together and one of many possibilities where these complement each other so well.
Executing a Power Automate from PowerApps
To run a workflow from PowerApps, you’ll need to configure your Power Automate to use the PowerApps trigger. The easiest way to set this up is by using the PowerApps button template that is already provided for you as seen in the picture below.
Let’s take a very simple example. You want to click a button in PowerApps and have it call a flow to send an email. In this scenario, you would select the “Click a button in PowerApps to send an email” option. The values for who to send the email to, subject and body need to come from your PowerApps application.
To make that happen, click into the properties in flow and select the “Ask in PowerApps” option in the Dynamic Content window as seen in the screenshot below. This functionality allows you to pass data to your flow from PowerApps.
To connect your flow in your PowerApps application, select the item you want to click on to trigger the flow then select the “Actions” menu and “Flows” as shown here.
Once Flows is selected, all of the Flows you have built using the PowerApps trigger will appear on the right-hand side as shown below.
Clicking on the Flow you want to execute will add it to your formula bar in PowerApps. The formula bar uses Intellisense to show you what variables the Flow is expecting to be passed in.
For example, the screenshot below requires you to enter an email address, subject and body.
The screenshot below shows what it would look like with the variables populated correctly.
We can take this example a step further and push back a message to PowerApps to confirm the email has been successfully sent.
Accomplish this by inserting a “Respond to PowerApps” action after our send email step
in the Flow as seen below:
The Respond to PowerApps action enables you to configure outputs to send data to PowerApps.
There are currently six types of outputs allowed as shown:
If you wanted to return a yes or no response, then you could add a Yes/No Output and set the value to Yes as shown below.
This is just one example of how you can use Power Apps and Power Automate together.
Power Automate is an online service and is better suited for online data connections. Some Flows do need access to data on your on-premises servers. To achieve this, you will need a gateway installed to provide a secure method for Power Automate to access your data.
The software will need to be downloaded and installed on a computer that will be available whenever the Flow requires it. Currently, you will also need a Power Automate per user or per-flow license to access on-premises data using a data gateway.
Downloading the Gateway Software
The following few steps detail how to download the Gateway Software
- In the Power Automate site, click on Data in the side menu.
- Click on gateways and the screen will refresh into PowerApps.
- Click on New gateway.
- On the next screen click Download in the On-Premises Data Gateway.
Installing the Gateway
When you execute the download, it instigates a wizard to set up the gateway with a start-up very similar to most Microsoft installations.
It will eventually ask you to sign in to register the gateway.
The next screen will ask you to name the Gateway. Select a name that gives the Gateway some context.
This screen also asks for a recovery key, take a note of it, you might need it in the future.
The gateway is now ready. The gateway software must be running and showing active for the connected flows to work.
Using the Gateway in Power Automate
In this section, we will look at three different connectors that can use the gateway, file system, SQL Server and SharePoint. Each is slightly different.
When you add a SQL Server action to your flow, it will need details to set up the connection. Tick the Connect via on-premise data gateway and the gateway box will appear at the bottom of the box.
To connect to files stored on-premises, you will need to use the File System actions. The first time you add one of the File System actions, it will ask you to set up the connection. Note Azure File Storage has the same logo but is not the same; you need File System.
If you already have a connection set up with the right credentials then in action you can click on the ellipsis in the top right of the action and select a connection to use.
You can use the same actions as you use for SharePoint online for the SharePoint server. Click the ellipsis in the top right corner of a SharePoint action and select Add new connection. The action window will change with a tick box, tick Connect via an on-premise gateway and more boxes will appear to create the connection. Future actions will have the connection listed under My connections.
View Gateway Information
In the Power Automate web page, you can navigate to Data and Gateways to see a list of your gateways registered. A gateway can be shared by clicking on the ellipsis menu and selecting Share.
Clicking on the gateway name will provide further details. You also can see the connections that have been set up using that gateway.
Note of Caution
Gateways are a very useful tool in the flow toolset, but they also can expose data within the organisation by creating a secure but possibly unknown IT gateway into your data.
It is possible to restrict which users can create gateways although by default this is unrestricted.
Currently, there is no way to get usage stats from gateways across a business, but this feature is on the Power Automate roadmap.
When creating a new flow from blank, i.e. without using a template, the first thing you need to do is select a trigger. As the name suggests, the trigger is what will start your flow, and Microsoft currently provides a choice of hundreds. These range from events in Office 365 apps and services such as when an email is received, or an item added to a SharePoint list through to external triggers for instance when a tweet has been posted, or a file uploaded to a Dropbox folder. There are also triggers that allow you to run flows on a schedule, from PowerApps and using buttons in the Power Automate mobile app.
When you create a new flow, a small subset of the most popular triggers is presented to you, with the option to see all available triggers by clicking the Search hundreds of connectors and triggers link:
You can then use the search bar to find triggers based on the service they connect to or the actions you want the trigger to fire on:
The triggers are also categorised to make it easier to find if you’re not sure what to search for using the search facility. Aside from the All tab, which shows every trigger, there are the following categories:
These are triggers that are part of the Power Automate/PowerApps environment and don’t necessarily need to wait for something to happen in another service to start the flow. See examples of the most popular built-in triggers below:
Power Automate button for mobile
Power Automate has a mobile app that is available on iOS and Android. This trigger enables you to create a Power Automate button started by pressing a button in the mobile app. Once created you can start it by pressing the corresponding button that will appear in the Buttons section of the mobile app:
The example above creates an appointment in a specified Outlook calendar. This appointment starts at the time the flow is run and lasts for an hour. Although a simple example, you can use the Power Automate button as a mobile trigger to start a more complex flow with multiple actions.
This trigger allows your flow to be called using a button or link within a custom PowerApps app. When you build your flow using this trigger you can use a dynamic content option called Ask in PowerApps, which allows you to use data from your app within your flow. For example, you could send an email and populate the recipient details with a people picker field in your app:
You may want some flows to run at specified dates and times and this trigger allows you to do this. Once you’ve added this trigger to your flow you can set the interval and frequency, which tells your flow when to run:
The example above will start your flow every six hours. You can also add a different time zone if required but if left blank the default time zone for your Office 365 tenant is used. If you want the schedule to start at a particular time in the future, you specify this in the Start time field.
If you choose daily or weekly frequencies, you can set the days and times that the flow will run. The trigger below will start your flow each week on a Monday at 8:30 am:
The triggers in this group are available as part of every Power Automate plan, including the free plan included with Office 365. The standard triggers include Microsoft and Office 365 services and apps as well as other common ones such as Twitter, Facebook, Dropbox, Gmail and RSS.
As this is the biggest group of triggers, there are too many to list each one and their purpose. As with everything else in Office 365, these triggers are constantly updated and added to by Microsoft, but their basic premise remains the same:
When something happens:- Run my flow
For most of the triggers the ‘when something happens’ is self-explanatory. If, however, you’re not completely sure what the trigger does you can click the information icon to the right of the trigger name, which will give some more detail:
These triggers work in the same way as the standard triggers but are only available to users that have the paid Power Automate per user or per-flow Plan. The premium triggers include services such as Adobe Creative Cloud, JIRA, MailChimp and the Microsoft Common Data Service (CDS).
By default, there is no custom triggers setup as these need to be manually created. To create these requires knowledge of webhooks and APIs and is beyond the scope of this book, but if you’re interested Microsoft provide documentation on how to create custom connectors and triggers here.
Using a manual trigger to run the flow, gives an option to provide inputs at the time of running the flow. Examples of triggers that this applies to include the Power Automate button for mobile, PowerApps and a selected file. When you add a trigger of this kind you will have an option called Add an input:
When the end-user runs the flow, they are prompted to enter the inputs that you have specified. This information can be potentially utilised in subsequent steps in the flow. In the above example, we could add an action to send an email to the email address entered in the Manager Email input.
Once you’ve configured a trigger, using a combination of actions, controls and variables you can specify what you want the flow to do.
Once you’ve configured your chosen trigger you then get a button that allows you to add a new step to your flow:
As with the triggers you’ll then be presented with a box displaying all the actions, with
the ability to search and browse the different categories:
A flow can take actions which can be divided into two main categories:
Do something – Some examples of doing something, create a contact, send an email, create a file, move a document or post a tweet. When you add an action that does something you then configure it to set the relevant fields or metadata, which vary depending on the action.
Get or list something – Examples of actions that get or list something are List files in a folder, Get attachments and Get Manager.
It’s quite common to use a combination of actions that both do something and get or list something, especially in longer more complex flows. A simple example of how this is shown below:
In this example, the flow uses the Office 365 Users connector to get the manager of the user who manually triggered the flow. An email is then sent to this manager. You can also see that fields from each step in a flow can be passed onto the next step. In the example above the User name field from the trigger is passed to the Get Manager and Send email steps. The output from the Get Manager step is also passed onto the Send an email step.
Dynamic Content and Expressions
Content passed between different steps in a flow is known as dynamic content. When you click on a field in a step in Power Automate it presents you with all the available dynamic content from other steps:
Using dynamic content means you can tailor what happens in subsequent steps based on the values provided previously.
You can also build on this concept further by manipulating dynamic content using expressions. Clicking on the Expressions tab brings up a list of expressions; these can be grouped into various categories including string, logical and date/time functions.
Clicking See more next to a category name will show you the full list for that category. Each expression also has a short description that tells you its purpose.
An example of a useful expression is addDays() and is shown below:
In this example, the addDays() expression is used to add 14 days to the Event Date value provided by the user who triggers the flow. The output from this expression is then used to populate the start time of an event created by the flow.
In all the examples shown so far, each step of a flow has started after the preceding step. Sometimes you may need actions in a flow to run at the same time as each other, by using parallel branches this is possible. To create a parallel branch, you first need to create the first action that you want to run in parallel with another and then click the + icon above this action. You can then click Add a parallel branch:
Performing this function allows you to add further actions that will run in parallel, as in the example below where an email is sent at the same time as an event is created:
Renaming flow steps
By default, each step you add in a flow is named with the action it is carrying out. However, as your flows get longer and more complex, you may find it easier to give them more descriptive names. To do this, you can click the ellipsis to the right of the step name and then Rename:
Controls are special built-in actions in Power Automate that can be used to control how other actions behave and interact with each other. There are currently six control types, which can be accessed by going to the Built-in category of actions and clicking Control:
This control is the equivalent of an if statement and allows you to check the value of an input and then perform one of two sets of actions based on this check. The input that is checked can be passed from any preceding step in the flow and expressions can also be used as part of this.
This flow is checking the department of the manager obtained by the Get manager (v2) step. If the department of this manager is marketing, then it sends an email, if not it creates an item in a SharePoint list. You can also use the Add button in the conditioning step to add multiple checks with a combination of and/or statements if required.
Apply to each
As the name suggests, this control allows you to perform a set of actions on a number of different items. This control is normally used in conjunction with a Get or list something type of action. The image below shows how a list of all files in a OneDrive folder is passed to the Apply to each control. Each file would then be deleted as this is the action in the Apply to each section, but you could perform any number of actions here.
This control will perform a subset of actions until a value meets a specified condition. In the example below the Do until the step is checking the Complete field of a SharePoint list item. Using the Delay action, it periodically checks if the Complete field is set to Yes.
Once this condition is true, the Do until step will end and the flow can then move onto the next step, which in this case is sending an email:
It is important to note that one of the steps within the Do until the section is Get updated items. Do until has to perform a check each time so it gets the updated version of the list item and can verify that the appropriate value has changed.
When you start creating larger, more complex flows, scopes can make it easier to keep track of the various steps. A scope allows you to group actions logically, so it makes it easier for you and maybe other IT admins to see what each part of the flow is doing. If you’ve ever used the older SharePoint Designer workflows, you can think of scopes as the equivalent of stages.
The switch is the equivalent of a switch case used in various programming languages and is similar to the Condition control. The Switch control allows you to check a single field for multiple values and then run a subset of actions depending on the returned value:
In the example above the Switch, control is checking the Status field of a SharePoint list item. If the status is not started, then an email is sent, but if the status is complete, then a tweet is posted. You can use the default case to specify what actions should be started if none of the other cases is matched.
The Terminate control allows you to stop a flow before the end. You can also specify the status and any messages reported if this action is carried out:
If this control is used then any subsequent steps in the flow will not be completed. It’s normally used with a condition or switch as you may want to end the workflow early if certain conditions are met.
Variables can be used to store values that can then be referenced and manipulated in multiple places throughout the whole flow. The value in the variable won’t be retained when the flow has finished but can be written to a field in a list item or similar.
The first step when using variables is to use the Initialize variable action:
Using this action allows you to declare the name of the variable along with the type of data it will hold. You can also set an initial value that will be stored in the variable, but this is optional.
Once you have initialised a variable in a flow there are then many ways to update the value of it:
Append to array variable – add a specified value to the end of an array variable Append to string variable – add a specified text string to the end of a string variable Decrement variable – subtract a specified value from a numeric variable
Increment variable – add a specified value to a numeric variable
Set variable – completely replace the value of a variable with the specified value
When initialising and setting the value of variables, you can either use static information that you enter yourself or use dynamic content and expressions as mentioned earlier in this section.
Many business processes require a step to be approved by another person in the organisation, for example, a holiday request, expense request or a policy to be published onto the company intranet. Power Automate includes a very clean method of requesting approval via email and phone notification.
Adding Approval to a flow
- Starting an approval is an action in a flow, so searching for “approv” in the Choose an Action box will find the action Start an approval. Click on the action to add it to your flow.
- The first step is to select the type of approval. Only making a difference if the approval is going to multiple people. Do you need to wait for everyone to reply or will the first reply be the final reply?
Select Everyone must approve or First to respond.
- Enter in a Title for the approval, who is the approval assigned to and who the requestor is. Multiple values for the Assigned to should be separated by a semi- colon (;).
- Enter the details of the approval request. Markdown can be used for formatting the details. Details of Markdown support can be found here. In my experience, the most common mistake in Markdown is not leaving spaces between the markdown and the text.
- If the approver has access to the related item, then you can populate the Item link and Item link description. Please note the approver doesn’t have to have access to the item but does need to have an account that can access Power Automate.
Handling the Response
The above action sends an approval request to the specified person, and then the flow waits for a response. What the flow does with the response will depend on the value of the response, which could be Approve or Reject. We need to add a condition to the flow to make this decision.
- Straight after the Start an Approval, add a Condition action.
- Enter in the condition details of Response, from the Start an Approval, is equal to Approve.
Please note you need to type in Approve manually and it is case sensitive!
- Add actions to the if yes and the If no boxes. Often this includes emailing the requestor. When the approver sends their reply, this can include a comment; this could be included in the email. Any actions, including secondary approvals, could be added.
Approving or Rejecting a Request
An approval request can be received in multiple ways
An email is sent that includes all the details from the flow action and includes Approve and Reject buttons.
Clicking either button will show a Reason box and a Submit button.
Clicking Submit will change the email to show your response and the reason given.
On the Power Automate site, click on Approvals under Action Items in the left-hand side menu to see any outstanding approvals.
Clicking on approvals opens up a tab to give various options.
- Click Link to open the related item
- Click reassign to send the request to another person
- Click approve or reject to send the response back to the flow.
Approvals are limited by the general limitations mentioned elsewhere in this book. Meaning they are limited to 30 days and then they will time out. Clicking on Approve or Reject on a timed out approval will give an error.
You can restrict the approval timeout to a short time and have actions that react to the timeout. That is beyond the scope of this introduction book.
The best way to start creating new flows is to explore some of the many templates already created. The range of templates is vast and constantly expanding and makes use of many of the connectors you’ll see which are explained further on in this book.
On the home page for Power Automate, you can find the templates by a few methods.
Finding Template Options
- Enter a search term such as “Email” to find related templates
- Click a suitable Featured Collection to see a list of templates based around a business concept
- Click a Service to show templates that use that service
- Scroll down the screen to see more templates
Each template has a square icon showing you all or some of the connections used within that template. The example below shows that this template uses Outlook, O365, and Notifications.
Once you have found a template you want to build, click on the icon.
A longer description of the flow template is detailed on the next screen. Below lists the connections used and the account also used for each connection.
The above example is using connections I have already logged into the browser. If the connection is a new one or you are not logged in it will show a Sign in button for you to add credentials.
Once all the connections have signed in you can click Create Flow. You are then prompted to one of 2 options.
If your flow requires no editing to start, you will be taken to the flow details page. You can edit the flow by clicking on Edit in the top right corner, or you can start testing your flow, e.g. asking your manager to email you.
If your flow requires more details, such as a SharePoint site address and library name, you will be directed to the flow editing screen.
Some steps will require more information and will show boxes to be filled in. Other steps will not require editing. Before you can save your flow, you will need to fill in all the required information.
Below you can see an example, which was created using Send a customised email when a new file is added template. There is a trigger step that requires more information and 2 action steps that already have enough information. Different templates will have different combinations.
If you want to edit the sections that have default information. Click on the options to Edit or other similar links.
Naming your Flow
Flows by default will have the name of the template, normally this will need to be changed. While in the Edit screen, click on the name in the top left and type in a new name.
Once you have explored the templates, you probably will want to create flows starting from a blank flow.
- In the Power Automate window, click on My Flows
- Click on New and select Create from blank.
- On the next screen click on Create from Blank (yes they want to make sure)
- Find your trigger to start designing your flow. The minimum a flow must have is one trigger and one action.
See further in the book for an introduction to triggers and actions. Remember to rename and save your flow as you go.
When you create a flow, only you can edit the flow or see the run history. Not good practice for a process that could be part of business-critical solutions. The obvious answer is to share flows and make them into team flows.
There are some security considerations to think about, and these should be part of the Power Automate strategy within your company.
Sharing a Flow from My Flows
You can add a co-owner to your flow from the My Flows list.
- Click the tick next to the flow.
- Click Share on the toolbar.
- Enter the name of the new co-owner and click on the name to add the user.
- READ THE NEXT DIALOG CAREFULLY and see the notes below regarding security.
- Press OK once you are sure.
What the above dialogue means is that the co-owner could edit the flow and add new actions. These actions would use the existing connections; for example, they could add an action that sends an email from you to anyone.
A co-owner can also add other new co-owners. A co-owner can also see the details of any flow and any data passed as part of that flow.
Be careful who you give access to your flows or start using some generic accounts or explore other options on how to export flows. I don’t wish to scare people away from sharing their flows, but it is essential to consider the security aspects.
Any flow you have shared or has been shared with you will be listed under Team Flows. Clicking on a flow to view the flow details page will also show who has access.
Sharing with SharePoint List
If your Flow contains a connection to a SharePoint list or library, it can be co-owned by the list or library. This means managers of the list would also be able to view and manage the flow.
- When adding Owners click on SharePoint.
- Select the Site and List or Library from the drop-down.
- Click Add.
Run only Users
If a flow has a SharePoint connection, you can add users who will be able to run the flow using their connection to SharePoint. To access this:-
- From the Power Automate details page, under Manage Run-Only Users, click add a new user.
- In the pane that appears, enter the names of the users or groups.
- Select if they will use their connection or yours.
- Click save.
The co-owner list requires maintenance and co-owners could potentially require to be removed as job roles change.
- Click on the Bin icon next to the user or list name.
- Click Remove to remove their access.
Check all connectors still work as the user might have been providing access for a connector. A co-owner cannot remove the main owner’s access from a flow.
After reading all of the previous chapters, you’ve probably created some great flows! But what happens if something doesn’t work? (It could happen) This chapter will give you some tips on troubleshooting.
Before you even try running your flow, the Flow Checker will alert you to any errors or warnings in your flow, such as missing values within actions, or potential performance/reliability issues. If there are issues, you’ll see a red dot on the Flow Checker icon in the upper right area of the Flow Editor, and you won’t be able to save or test your flow if there are any unresolved Errors.
Here’s an example of an error where the flow was to create an item in a SharePoint list, but there was no value specified for the Title field, which is required:
Initial Test Run
If the Flow Checker doesn’t indicate any errors, you’re ready to save and test your flow. To test, you’ll need to perform whatever trigger action your flow requires so that it begins running. The easiest trigger to test is ‘Manually trigger a flow’ since it can be simply triggered. But if, for example, the trigger is ‘When a new email arrives’, you’ll need to send an email that meets the criteria of the trigger. After you save your flow, you can go to this flow’s dashboard (either by clicking the Back arrow from the Edit Flow screen, or by clicking on the flow’s name on the My Flows page), and see whether the flow run succeeded or failed:
If it failed, you could click on the Failed row in the RUN HISTORY to see a diagram of the flow. Each action will have either a green checkmark or a red X in the upper right corner. Find the action with the red X and click on it to expand it and see what the problem was.
Here’s an example of a failed action:
When you have clicked on the failed action, a pane will open on the right which gives you more information about the error. In this example, here’s what the Details pane reports:
We see from this Details pane that there was a problem with the email addresses required by the Send an email action, and we can see from the Inputs listed within the action that the To field is blank, meaning that there was no address passed to this action from the previous actions. So you can then look into why that is, and click the Edit icon in the upper right to go back to your flow and try to fix the problem. You can also click on ”Resubmit” from this screen, which would be similar to the “Test using data from previous runs” feature as discussed in the next section.
Use the Test feature
After you have edited your flow to try to fix a problem, you can use Power Automate’s Test feature to try running the flow again, rather than needing to re-trigger it. Saving you the necessity to continue to send test emails or to add new SharePoint list items.
When you click “Test”, you can select to trigger the flow again yourself or to use data from a previous flow run (usually your best bet), whether it failed or succeeded.
Something to watch out for when using Test is that if you have added a new Connection within the flow since the previous flow run, then you need to re-trigger the flow rather than use data from previous runs. Otherwise, you’ll get an error similar to this:
InvalidTemplate. Unable to process template language expressions in action ‘NewActionYouAdded’ inputs at line ‘#’ and column ‘#’: ‘The template language expression ‘SomeExpression’ cannot be evaluated because property ‘shared_YourNewConnection’ doesn’t exist, available properties are ‘shared_YourExistingConnection’.
While the flow is running during a test (or at any time), you’ll be able to watch it step through the actions on the screen, and (hopefully) a satisfying green check mark will appear on each one!
What Happens Next?
If you run into a problem while testing or using your flow, there is a general Support page that will tell you if there’s currently a problem with the Power Automate service, and which contains links to other support and documentation. In particular, the article entitled Troubleshooting a Flow lists a few common errors and their possible causes.
But what if you run into a problem you don’t know how to solve? It might be an error not discussed here, or just that you’re unsure how to approach an automation scenario. Your best bet for help is the PowerAutomate Community forums, where Power Automate experts and aficionados, as well as Microsoft staff, are always watching for questions to help answer. You can also report bugs and make feature requests here.
Now that you have your flows running smoothly, you may wish to analyse when and how they’re working. There are two ways to see visualisations regarding flow runs: owners of a flow can view analytics on an individual flow, or administrators can view analytics on all flows within a given environment. The graphics you’ll see are created using PowerBI, but you do not need to have a PowerBI license to view them. However, you do need to have a Power Automate per user or per-flow Plan license to view any analytics.
Individual Flow analytics
Analytics are available on an individual flow to owners of the flow who have a Power Automate per user or per-flow license. You can get to the analytics on a flow in several different ways: via the “More” menu beside a flow in either My Flows or Team Flows, from the “More” menu at the top of the My Flows page while a flow is selected, or by clicking on a flow’s name to go to its dashboard.
If you try to go to Analytics, but you do not have the correct license, you’ll be prompted to start a free trial of premium Power Automate, but you should probably check with your Office 365 administrator before doing that.
When you arrive at the Power Automate Analytics page, you’ll see several charts on the Usage tab:
Note that you can select a timeframe of the past week, the past two weeks, or the last 30 days. The available analytics are:
- Total runs of this flow (a line chart by day)
- Number of runs (a doughnut chart which shows the proportion of successful, failed, or cancelled flows)
- Flow runs trend (a stacked bar chart showing successful, failed, or cancelled flows by day)
Each chart has small icons in the upper right corner (when you hover over them), which allow you to expand the size of that chart, or access a menu of options for that chart:
Using the ‘More options’ menu, you can export the underlying data to a CSV file, display the underlying data in a table, spotlight that chart on the page, or change the sort order and sort field (i.e. by date/status or by the number of flow runs).
Switching to the Errors tab at the top of the analytics page allows you to see charts that display the types of errors that have occurred on this flow. Note that the number of errors reported might not match the number of failures, because things like failed checks (where Power Automate is unable to check for the trigger occurrence) do not count as failures. See the Power Automate Analytics now includes the Error Details section of this article for details on using the Errors tab.
Power Platform Admin Analytics
To access analytics of all of your organisation’s flows (as well as PowerApps and Common Data Service), browse to the Power Platform Admin Center – (https://admin.powerplatform.microsoft.com )
To get to the Power Automate analytics, select Power Automate from the Analytics dropdown menu:
You can change both the timeframe and the environment by clicking on Change Filters (or on the filter icon in the upper right), which opens a filter pane on the right:
There are currently six types of analytics available for Power Automate, accessible via the tabs across the top of the page. Giving you access to some really useful information about your organisation’s flows! Note that just like the individual flow analytics, each visualisation has an Expand icon and a More menu, which allows you to export/display the underlying data, spotlight a chart, or sort in a different way. Also, generally speaking, you can hover over bars or data points to view the values, and you can click on the legend text to highlight that aspect of the chart. Also, you can right-click on elements of the charts and choose to Include (show only that data point) or Exclude (show all but that data point).
We’ll look at each tab individually.
This tab shows Daily, Weekly, and Monthly runs, as stacked bar charts (broken down by successful, failed, or cancelled), with a line denoting total runs.
Note that although the maximum timeframe filter you can select is 28 days to retrieve individual flow run data, the Weekly and Monthly runs reports display aggregated data much further back.
The term Usage here means something different than on the individual flows. Shown here is a breakdown of the types of flows in use (for example scheduled, manual/button, or system events).
A list of the names of the flows in use (I.e. those which ran) during the period (sorted by the number of runs), and finally a line chart of flows in use by day during the period (that is, the number of flows which ran, not the total runs).
These are the same charts as on the Usage tab, but showing the number and types of flows created during the period.
This tab displays a breakdown of the types of errors which occurred during the period, and which flows errored. Note that this includes all types of errors, not only those causing failures. You can click on a heading in the table to sort by that column – the table in this screenshot is sorted descending by Error Count, to see which specific flows have errored the most.
Here you can see the number and type of flows shared in your environment, and specifically which flows those are.
This analytic is quite interesting – it shows the specific connectors used during the period, how many flows use each connector, and the individual connections (calls to the connector). Note that you may see a lot of Office365 connections, as this is related to Exchange and there are many calls to that connector.
In summary, the various Power Automate Analytics dashboards give you plenty of information about your own and your organisation’s flows.
Limitations, you say? Yes, it’s true… As with most software, there are numeric limits on certain things you can do with Power Automate, as well as limitations of the software itself.
The best place to look for the current limits in Power Automate is the official Limits and Configuration reference article, which lists limits broken down by topic. You can find some additional limits regarding accounts in the Billing Questions article. Here are some key limits which flow makers often run into and should be aware of:
|Run duration||30 days|
|Run history retention||28 days|
|Message size||100 MB|
|SharePoint file create/copy size||500 MB|
|Actions per workflow||250|
|Action nesting depth||5|
|Flows per account||250|
|Connections per account||100|
Limits such as the number of flow runs allowed per month, flow run frequency, and availability of some connectors depends upon the Power Automate license you have. Licensing levels are covered in another chapter in this book.
While Power Automate does a lot of things very well and goes beyond many other workflow solutions in terms of connected services, it does have some limitations; there
are some things it cannot currently do which you should be aware of before beginning to construct a flow.
One example is a “state machine”. That is, there is not currently a way to create a flow that is directly based on transitions from one state to another (though you may be able to use looping to emulate this).
Another fairly common ask, which Power Automate does not (yet) allow, is the ability to copy a flow from one SharePoint list to another or include a flow in a SharePoint site template.
It should be noted that the Power Automate team at Microsoft are continuously working on new features, so things which Power Automate cannot do right now may be possible in the future. So keep an eye on the Product Roadmap! And did you know you can help influence future plans by contributing and voting on ideas in the Power Automate Community? If you find there is something you’re missing in Power Automate, visit the Ideas forum and search to see whether someone else has already suggested it so that you can vote on it. And if it hasn’t yet been suggested, add it yourself and promote it on social media to get votes.
Hopefully, most of your questions have been answered within this book!
However, if not, Microsoft has included a list of some of the most frequently asked questions within the Power Automate documentation. Here you can get answers to general questions about the tool itself, functionality, and licensing.
Probably one of the most frequently asked questions is about credentials for the connections used within flows. That is: What happens when the person who has created all of these flows leaves the organisation? The first answer is: Flow makers should be trained and encouraged to add additional owners to flows that are used organisation-wide so that they become Team Flows. That will allow the other owners to edit the flow in the future if necessary. Also, an administrator can take ownership of a flow from the Power Automate Admin Center. But it’s true that the connection credentials would need to be changed if the creator’s credentials were no longer valid. Another possibility is to create flows using a service account rather than an individual’s account, with the caveat that you might not want everyone having access to shared credentials for many service connections.
Another question that has arisen recently is regarding premium connectors, as some additional connectors became only available with a premium Power Automate plan as of February 1, 2019. You can read more about this here. You should be aware that the creation of flows using custom connectors, HTTP connectors (other than to SharePoint or OneDrive), or a data gateway to on-premises data, will require a per-user or per-flow Power Automate plan.
If you have other questions, make use of the Power Automate Community, or reach out to any of the authors of this book!