Power Automate connectors are the building blocks that make up a flow (Microsoft's term for an individual Power Automate process). Connectors include a range of Microsoft services such as SharePoint, OneDrive, various Azure components, GitHub, and even things like SQL Server or a local file system. Connectors are also available for third-party services such as Gmail, Dropbox, and Slack. Many connectors are free to use even if they have some premium options mixed in.
Flows can be initiated in several ways, each of which has its own use. The most common triggers are automated flows (execute based on a connector event), instant flows (run when a button is pressed in the mobile app), and scheduled flows. Once executed, a flow will walk through individual steps, performing actions using connectors and following the logic you've defined.
In addition to numerous connectors, Microsoft provides a variety of existing templates that admins can leverage either in their default state or as a starting point for a custom process. A great example of this is the "Click a button to create a new Azure AD user account" template, which not only creates an account in Azure AD but also initiates an email message containing the pertinent information for the new account. Let's take a look at the components used in this flow to get a feel for how it works and what capabilities Power Automate offers.
As this flow is an instant flow (triggered using a button on the mobile app or the Power Automate console), it uses the manual flow connector and several form fields that will later be used to generate the user's profile. In general, these fields are free text, allowing users to input any values (or no value) they wish, though you have the option to add value lists and make fields required or optional.
The second step in creating an Azure AD user is to generate a password, which is accomplished using an Initialize Variable action. There's no sophisticated security here, and this is only a little better than setting a static default password, but you have a lot of flexibility in how you configure the password generation. The default function the flow uses is a static value of 'Pwd' followed by the formula substring(utcNow(),20,8), which generates a timestamp and extracts a portion of the string, 8 characters beginning with the 20th (leaving you with a password like 'Pwd6801257+'). Additional complexity could be added by incorporating the user's initials, department, or even pseudo-random values.
Step three is to create the user in Azure AD. This is accomplished with the Azure AD connector, which must be authenticated with a user account that has the permissions required to perform such actions. This step uses both the values collected in the initial form and the password created in the previous step to create the Azure AD user.
The final step in our flow is to send an email to the user running the flow, which can then be forwarded to the appropriate supervisor or coworker. The Outlook connector is used for this step, although you could just as easily incorporate the Gmail connector or another communication method. Like the Azure AD connector, you also need to authenticate the Outlook (or Gmail) connector.
Other examples ^
The primary value in Power Automate is flexibility. So many of the tasks we do daily are manual and mundane, a perfect storm for humans to forget or prioritize over, while a flow could just handle these tasks for us without any qualms. Some other examples of what Power Automate is capable of include:
- The On-premises Gateway can be installed on a local machine and configured to watch a local folder and send changes to a SharePoint site.
- A group email box could be monitored and any attachments added to a OneDrive for Business folder.
- Microsoft Forms can initiate automated emails or population of a SharePoint site.
- Calendar appointments can be copied from a work calendar to a personal calendar.
Power Automate brings a wealth of flexibility and power to the toolkit of a system admin (or general power user) and does so without requiring users to learn a new programming language or rely on third-party frameworks. Flows can be simple tasks to synchronize information between services or incredibly advanced, limited only by your imagination.