5 Practical Power Automate Examples Your Business Will Love

Formerly known as Microsoft Flow, Power Automate is a web-based service that helps to create automated workflows between your favorite apps and services to synchronize files, get notifications, collect data and more. Power Automate is a part of the Office 365 suite and is available in most Office 365 subscriptions. While its new name does not roll off the tongue quite like the old one did, it certainly flows (pun intended) with the Power Platform.

For those that have a deep SharePoint Server background, you might think that Power Automate is a replacement for the SharePoint Designer workflow. For us SharePoint aficionados, that’s certainly a selling point. But while Power Automate does provide you with a rich UI tool to handle automated processes in SharePoint, it is really a universal automation tool that connects all kinds of applications by utilizing custom and standard connectors.

So, what exactly can you build in SharePoint by using Power Automate? In this blog post, I will demonstrate 5 practical Power Automate examples that maximize SharePoint functionality.

For these use cases, we will create a couple of solutions for DevFactonaut, a fictitious company, and discuss various automation scenarios that provide value to its specific departments.

1. Deploying Lists and Libraries with Power Automate

Deploying Lists and Libraries with Power Automate (1)

If you wanted to reproduce a site structure in multiple environments, Power Automate is great for deploying lists and libraries. For example, you might need to provision several lists and several libraries to promote a Site Lifecyle Management process through environments used for Development, User Acceptance Testing, and Production. Another use case scenario could be that as a consultant, you might want to build out a structure on your development tenant and deploy the structure to a client’s tenant using Power Automate (assuming the option is available for you).

You can also choose to complement the Power App you built that has a data connection to a SharePoint site containing lists and libraries. Power Automate would deploy the dependencies associated to the Power App. Typically, you would execute a PowerShell script but this is another option to consider when automating these site artifacts rather than performing the task of creating the lists and libraries manually.

  1. First, set the trigger for this flow to Manually trigger a flow.Manually Trigger a Flow
    I chose this as our trigger because we want to only run this flow manually to provision the dependencies to a targeted site.Manually Trigger a Flow - Add Input
  1. Next, hover your mouse on the arrow downward and click the (+) to add an action after the trigger.
    We will initialize a variable that would be used to define the targeted site.Variable - Target Site
    Optionally, you can opt out of this Initialize Variable action, and choose to create inputs on the trigger by clicking the + Add an input, see the Manually trigger a flow image above.
  2. Next, we will define the list or library you want to create. For this, we will use the Send an HTTP request to SharePoint (SharePoint) action ALOT.
    HTTP Request to SharePointThe following properties within this action are populated using the REST API,POST https://{site_url}/_api/web/listsdocumented here.Working with Lists using REST list
    Based on the example shown above, it would help us determine how to populate our Send an HTTP request to SharePoint (SharePoint) action.

    • Site Address – populated using our variable called varSitePrefix.
    • Method – set to POST as we will be using to create lists, and libraries.
    • Uri – set to this value: /_api/web/lists to create the list or library.
    • Headers – contains information regarding the connection of the HTTP request such as the connection type, authentication token, proxies, etc.
    • Body – specifies the data related to the POST request.

    Sent HTTP request to SharePoint
    The Base Template of 100 is the Template ID and it would be using the Custom List template. For your reference, below is a table outlining the corresponding Template ID to a few List Templates.

    NameTemplate IDDescription
    Announcements104A list of news items, statuses and other short bits of information.
    Calendar106A calendar of upcoming meetings, deadlines or other events. Calendar information can be synchronized with Microsoft Outlook or other compatible programs.
    Contacts105A list of people your team works with, like customers or partners. Contacts lists can synchronize with Microsoft Outlook or other compatible programs.
    Custom List100Using a list gives you the power to share information the way you want with your team members. Create your own list from scratch, add any other columns you need, and add items individually, or bulk edit data with Quick Edit.
    Document Library101Use a document library to store, organize, sync, and share documents with people. You can use co-authoring, versioning, and check out to work on documents together. With your documents in one place, everybody can get the latest versions whenever they need them. You can also sync your documents to your local computer for offline access.
    Form Library115A place to manage business forms like status reports or purchase orders. Form libraries require a compatible XML editor, such as Microsoft InfoPath
    Issue Tracking1100A list of issues or problems associated with a project or item. You can assign, prioritize and track issue status.
    Links103A list of web pages or other resources.
    Picture Library109A place to upload and share pictures.
    Survey102A list of questions which you would like to have people answer. Surveys allow you to quickly create questions and view graphical summaries of the responses.
    Tasks171A place for team or personal tasks.
    Wiki Page Library119An interconnected set of easily editable web pages, which can contain text, images and web parts.
  3. Next, we will continue to use the Send an HTTP request to SharePoint (SharePoint) action to create columns for the list. This time the properties for this action will contain the following:
    • Site Address – populate using our variable varSitePrefix
    • Method – set it to POST as we will be using to create the columns
    • Uri – set to: _api/lists/getbytitle(‘<Site Title>’)/fields to create a custom field to a list or library
    • Headers – should contain information regarding the connection of the HTTP request such as the connection type, authentication token, proxies, etc.
    • Body – should specify the data related to the POST request

    Refer to the FieldType Reference link listed at the end of this blog post to identify the FieldType Number to the Field . Now, let’s create a Status field with a datatype of Choice that contains choices of In Progress, Approved, and Rejected.

    Add column status in sharePoint

  1. To create additional columns for your list, continue to use the Send an HTTP request to SharePoint (SharePoint) action and repeat the steps we did for the Status field. When you’re done, you could group all the actions together using a Scope (Control) action for easier interpretation when reviewing your flow. The Scope action is helpful to group actions and conditions in your flow especially if your flow is complex and is too busy to understand from a glance.Scope - Vacation Request app in SharePoint
  2. Lastly, click the Save button when you are done defining the lists, libraries and columns to be deployed from this Power Automate flow. Now, you can run the flow manually to have it provision the lists, libraries and columns defined.New Flow Overview in Power Automate

If successful, then the SharePoint site would appear to show the Vacation Request list and a Status custom field. I created additional columns that will be used in the next use case.

Power Automate Samples

2. Populating a List OR Migrating a simple Excel Table contents to a SharePoint List

Migrating Excel file to a SharePoint list with Power Automate

If your organization is planning a migration to Office 365 this can come in handy. You might already have a defined file plan for files that will be migrated to a specific Document Library or folder, but what about those simple excel tracking sheets? A Simple Excel file contains a large table without macros, conditional formatting, VB code, or referencing to another sheet. Using the SharePoint UI to perform a bulk import to a SharePoint list can be tedious and inconvenient especially if you do not already have the privileges to execute a PowerShell script. One option to resolve this is converting the Excel table into a SharePoint list.

In the previous example, we created a simple Vacation Request list. Now, we will add on to it a list to demonstrate the migration from an Excel table to a SharePoint list.

  1. Set the flow type to instant and use the Manually trigger a flow After the trigger, add the List rows present in a table (Excel Online Business) action. This action queries the rows from the table in an Excel file.mapping excel rows to SharePoint list
  2. Next, you’ll need to upload the Excel file to either OneDrive or SharePoint and define in the Location property of this action. In this example, I uploaded the file in the Documents library of the SharePoint site that contains the Vacation list. Then we will comb through each row using an Apply to each (Condition) and perform a Create item (SharePoint) action to the Vacation Request list. The condition will step into each row returned from our List rows present in a table (Excel Online Business)Create a SharePoint Item in Power Automate Flow

When running an instance of the flow, you might encounter this error when dealing with Date columns in an Excel Table.

{

"status": 400,

"message": "String was not recognized as a valid DateTime"

}

This is because the flow is reading the value of the ‘Start Date’ column and ‘End Date’ column as a serial number of the date. For example, the serial number 43946 represents April 25, 2020. To resolve this error, we will need to alter the column format from Date to Text or copy and paste it in a new column of Text format. Rerun the flow once the changes have been done to the file. Once your flow is completed successfully, navigate to your SharePoint list to view all the newly created list items.

Excel table turned into a SharePoint list

3. Provisioning an AAD (Azure Active Directory) User with Power Automate

Another example of a common SharePoint and Power Automate automation is provisioning new users in Azure Active Directory. This is a great way to automate the onboarding process that is helpful to both HR and IT departments. For this use case, we will provision a new user once a department manager submits a New User request.

The request or service ticket to setup the Active Directory Account can be stored in a SharePoint List or any 3rd Party application and will trigger the flow once the Status is set to Approved. To keep the scope of this use case simple, I’ll refer to a “Click a button to create a new Azure AD user account” template that is available in the Templates section.

Create a new Azure Active Directory User

Keep in mind that the account used to create this automation will need the necessary permission to use the Azure AD connector used in this template.

User permissions AAD

The trigger in this template has inputs that prompt the user running a new instance of this Power Automate flow. For simplicity’s sake, I’ll call this user the flow initiator. The flow initiator is prompted for the following input properties and their responses will be used as the properties in the Azure Active Directory User.

  • Mail Nickname (i.e. username)
  • Display Name
  • User Principal Name (UPN)
  • Given Name
  • Surname
  • Business Phone
  • Mobile Phone
  • Department
  • Job Title
  • Office Location
  • Preferred Language
  1. First, create a password for the user (it is a Initialize Variable (Variable) action), which autogenerates a password for this account with a concatenation of the text “Pwd” and a formula of substring(utcNow(), 20,8).
    Create a password for a Azure AD user in Power Automate
  2. Next, use the Create User (Azure AD) action to populate the properties based on the responses entered in the inputs from our trigger. Once this action is successfully completed, send an email to the flow initiator with the autogenerated password for the newly created account.Complete the AAD user flow in Power Automate

So, what does this workflow look like in practice? In this scenario, the flow initiator is likely an HR professional or a Hiring Manager. This person receives the email sent in the last action, Send an email (Outlook) and pass it on to the new hire. After the new hire goes through an orientation session and gets settled at their workstation, they get a print out with their credentials from the flow initiator.

high level flow in Power Automate

4. Automated approval process – From approval request to a response

The days of printing out a Vacation Request form, filling it out, and leaving it on your manager’s desk for are hopefully a thing of the past. With Power Automate, organizations can modernize legacy ways or mundane processes and introduce technology effectively.

In this example, we will use Power Automate to start the approval process for a type of document, notify the approver that there is an action task pending their approval, and allow the approver the option to respond on their workstation or on a mobile device using the Outlook app or the Power Automate app. Both apps can be downloaded from the iOS App store or Android Play store.

To demonstrate the approval request and approval response using Power Automate, let’s modify the Vacation Request list that we used previously.

  1. For this flow, use the automated flow type and the When an item is created (SharePoint) This means that whenever a new item is created in this list, it will trigger an approval flow requesting an approve/reject action from the manager.
  2. Next, add the Create an approval (Approvals) action and the Wait for an approval (Approvals) These two actions represent the requesting portion of this use case. I choose the Approve/Reject – First to respond choice for the Approval type. Alternatively, you could define custom outcomes instead of ‘Approve’ and ‘Reject’.Setting up an Approval Process in Power Automate
  3. If you have a requirement where there are multiple Approvers and the Approval must run in parallel, then you could wrap all the approval actions in a For each {approver] condition. To do this, click the ellipsis menu of the for each condition and click Settings. Set the Override Default toggle to true under the Concurrency Control setting and set the degree of parallelism to the max. By default, a ‘for each’ condition is executed in sequential order. To learn how to accomplish this, read the Advanced | Flow of the Week: Send parallel approval requests to a dynamic set of approvers blog post.

For the sake of simplicity, we will keep the scope of our flow to only one manager. In our example, the manager receives an email notification regarding the request. Then, they respond directly in the email by clicking either the Approve or Reject button shown in the body of the email, optionally, they add a reason and then click the Submit button.

Pending approval- Power Automate approval process

Depending on the response of the manager, the flow will move on to the outcome chosen. At which point, we change the value of the Status column to either Approve or Reject and send an email notification to the Requester (Created By – Email Address).

Approve or Reject Process in Power Automate

5. UI Flows in Power Automate – Intake form process to on-premise data source

UI Flows in Power Automate allow you to create and record Robotic Process Automation (RPA) capabilities to automate repetitive tasks in Windows and Web applications. With RPA, organizations can streamline business operations, reduce cost, minimize errors, improve compliance and productivity. Think for a moment of a task you need to complete on a reoccurring basis. Perhaps, you generate monthly financial reports for the financial department, or an inventory report for the procurement department, or you just want to get more done in less time. RPA is the way to do it. In this example, we’ll demonstrate the automated process of routing content from a Microsoft Form to an on-premise data source, Access.

For our next scenario, our fictitious DevFactonaut company wants to automate its sales process.  DevFactonaut has a Contact Us form on their public facing website. The form, built using Microsoft Forms, is configured for anonymous use. Potential customers visit the company website, fill out the form, and connect with sales about the services offered.

To handle that, we will set up a form that upon submission triggers a flow that saves the entry in an Access database file stored on the company’s server. We will be using Power Automate, UI Flows (Desktop), Microsoft Forms, and Access.

  1. First, let’s build the form using Microsoft Forms by signing into https://forms.office.com/ or clicking the Microsoft Forms from the Office 365 App Launcher.Build a Microsoft Form using app launcher
  2. Click the New Form button and build the form with a title of Contact Us, provide a description of the form, and add fields onto the form as shown.New Form
  3. In the top right corner click the ellipses and the settings to allow anonymous responses and a customized thank you message. Optionally, you can pick a theme or set a custom theme.microsoft Form settings
  4. Next, we will create our flow that will be triggered to route the contact request from Microsoft Forms to our UI flow that will store the value in the Access database. Navigate to Power Automate by going to https://flow.microsoft.com/ or clicking the Power Automate from the Office 365 App Launcher. Click the My Flows section shown in the left navigation pane, navigate to the UI flows group, and click the Create a UI flow connect a Microsoft For to Power Automate
  5. You’ll have the option of choosing a desktop app or web app. Choose Desktop app and click Next. Define a name for the flow, for example; Store Contact info to Database. Click Next.

Create a UI flow in Power Automate

  1. Afterwards, you’ll be prompted for the inputs fields that would be entered to the Access Database. Simply taking the values from our Contact Us form as our Input fields to be used in our recorded UI flow.Set up flow inputs in Power Automate
  2. We will then record the steps that the UI flow will perform. Make sure that you have downloaded and installed the package needed to record the steps.Record and edit steps in the flow
  1. You might have to restart your workstation after the package is installed.Record the UI flow
  2. A recorder control will appear and docked at the top center of your screen. Click the Record button when you are ready to perform the tasks.Record flow
  3. Click Done when you’ve finished your recording of tasks.start the UI flow record
  4. Click Next if you are satisfied with the recording. In our scenario, we won’t define any outputs as we are just submitting values from our Microsoft Forms (accessible outside our organization) and saving the contact info in our Contacts Management Database file. If you’d like, perform a test to validate that the recording will execute without any errors.Test UI flow in Power Automate
  5. Since our test is successful with our UI flow, the final step is to create an automated flow and run the UI flow when a new entry is submitted from the Microsoft Form. We will need to configure a On-premises gateway for the UI flow to connect to the server. For instructions, read how to install an on-premises data gateway.On-premises data gateway in Power Automate

This automated flow type uses the When a new response is submitted (Microsoft Forms) trigger. We will then add the Get response details (Microsoft Forms) action to retrieve the fields from the Contact Us form. The last action will be the Run a UI flow for desktop (UI flow) action, and we’ll map the Microsoft form fields to the UI flow’s input fields. This action is a premium action, and you’ll need to validate if you have the sufficient licensing associated to your account.

complete UI flow in Power Automate

With minimal effort, we were able to get a working UI flow to be recorded, have it invoked from an automated flow, and the automated flow to handle the data intake submitted from the Microsoft Forms. You may have reasons for and against using Access database. Here, I used Access, to show you that you can collect data externally and store it in an internal database.

Final Thoughts

So, what did you think? Does this interest you? Do you see possible scenarios on how to integrate these demos in your organizations? Let’s connect and continue the conversation.

That’s a wrap! We went through 5 use cases done with Power Automate in a very grounded and simplistic scope. However, I hope this gives you insights and showcases the powerful automation of Power Automate. Pun intended.

The Changing Shape of Digital Transformation

The moment of truth – will COVID-19 be the tipping point for digital transformation.

 

If “necessity is the mother of invention,” than COVID-19 has forced business leaders all around the world to rethink their digital transformation strategies.

At its core, coronavirus is disruption. What it really is, is a disruption frenzy, as nations try to slow the virus, this pandemic is impacting our political environment, our healthcare system, our economy, and the way we use technology. When disruption comes, businesses must adapt or die. And, not just adapt but adapt better and faster than competitors.

The truth is, even before COVID-19, the business world was changing at a pace that was hard to keep up. Those businesses that had already embraced a culture of change and realized their digital transformation goals might have been better prepared for this disruption than others. For others, it’s been a challenge. A recent survey by Gartner reports that only 12% of organizations are highly prepared for the impact of coronavirus. This does not mean you should hunker down and wait out COVID-19, it’s time to rev up your digital engine and position yourself for growth when the pandemic subsides.

Here are the areas you should be focusing on:

Cloud first

As COVID-19 pushes businesses to their limit, there has never been a better time to focus on cloud strategies. With the rapid response to the pandemic, millions of people have shifted remote work, pushing companies to adopt cloud-based solutions at an unprecedented rate. Rapid to deploy, cloud-based solutions are the reason organizations around the world remain productive during this time. If there was ever a good time to migrate to the cloud, this is it.

Boost process automation

Unexpected circumstances place an added burden on the workforce. Consider automating repetitive processes to free up teams and allow them to focus on more meaningful work. Extending automation throughout the enterprise can help mitigate disruption and offer stability in times of uncertainty.

Harness the power of data

Now more than ever, business leaders need to analyze risks and develop the best methods for mitigating them. They need to know the effectiveness of the current recovery processes. To do this, they need to use data effectively to guide business decisions and improve the well-being of the organization and its employees. Fostering a data-driven organization galvanizes the vision of faster, better-informed decisions to enable businesses to return to normalcy sooner.

Be champions of collaboration

No matter the industry, digital collaboration platforms are the foundation of work during the pandemic. The success of operations today highly relies on the ability to collaborate in real-time and from anywhere. Many businesses are recognizing the need to improve collaboration to ensure business continuity now and into the future.

Deliver valuable experiences

As the coronavirus crisis accelerates the transition to a digital future, the shift to digital customer experience also hits fast-forward. Empathic tools such as service design and design thinking seek to address customers’ acute needs and forge stronger ties with the market in the post-COVID-19 era. Reimagining customer experience to meet the changing needs should drive your next steps in your digital transformation journey.

The new era of business reinvention is upon us. For most industries, revenues will fall in 2020, that’s a given. But companies can emerge stronger, more innovative, and more purposeful. By creating a forward-thinking, customer-focused digital company, leadership teams can mitigate today’s threat and accelerate into an eventual recovery.

 

COVID-19 Business Intelligence

Nintex Workflow – Get Users from Azure Active Directory Group

Introduction

With more organizations moving to the cloud, a common question that we see from Nintex developers is: “I used to use Query LDAP to retrieve my users from Active Directory. Now that my users are in Azure, how do I retrieve them?”

Query LDAP is an out-of-the-box (OOB) action in Nintex Workflow for SharePoint on-premises. With minimal configuration, it allowed developers to grab users from an on-premises Active Directory (AD) group.

The problem a lot of developers face when they start using Nintex Workflow for Office 365 or Nintex Workflow Cloud (NWC), is that there’s no equivalent action to Query LDAP in a cloud environment (as of February 2020).

In this blog post we will learn how to leverage Microsoft Graph API to retrieve the members of an Azure AD group.

We will build our workflow using Nintex Workflow for Office 365. However, you can apply the same concepts you’ll learn today, if you’re building an NWC workflow.

Our Approach 

The end result of our workflow will be a collection of users’ principals, that you can use however you prefer. The collection will look as follows: 

["JohannaL@M365x037951.OnMicrosoft.com","LeeG@M365x037951.OnMicrosoft.com","RaulR@M365x037951.OnMicrosoft.com","DeliaD@M365x037951.OnMicrosoft.com"] 

To get there, we’ll follow the steps below:  

Azure AD: 

  1. Get your Azure AD group’s ID. 
  2. Register a new Azure AD app. 
  3. Generate a new secret for the app. 
  4. Grant the app access to the Graph API. 

Nintex Workflow: 

  1. Use the Azure AD app ID and secret, and your tenant ID to get a bearer token. 
  2. Retrieve the access token from the bearer token. 
  3. Use the access token to call the Graph API and get the users from your Azure AD group. 
  4. The users will come back in a JSON object. 
  5. Parse the JSON object and generate a collection of user principals. 

Let’s get started

In this tutorial, we will retrieve the members of an Azure AD group in a JSON objectFrom the JSON object we will retrieve the userPrincipleName property of each memberOnce we have the members JSON object, it’s straightforward to grab any other user properties like display name, email, phone number etc. 

 Our group name is “sg-Engineering” and it has the following four members: 

Azure AD Group Members

Get your Azure AD group’s ID 

  1. Go to Azure AD: https://portal.azure.com/ -> Azure Active Directory 
  2. In the left navigation bar, click Groups 
  3. Click on your group’s name 
  4. Save the Object Id to a text editor Azure Active Directory Group ID
  5. This is your group ID 

Register a new app in Azure Active Directory and grant permissions 

  1. Go to Azure AD: https://portal.azure.com/ -> Azure Active Directory 
  2. Register a new app. In the left navigation bar, click App registrations -> New registration  Registering a new app in Azure Active Directory
    1. In the left navigation bar, click App registrations -> New registration
    2. Fill-in the fields as follows:
      1. Name: give a name to your app
      2. Supported account types: select the
        option that best suits your requirements. For this tutorial, we’ll select “Accounts
        in this organizational directory only”
      3. Redirect URI: Web – http://localhostRegister in app
      4. Click Register at the bottom
      5. Save the Application ID and Tenant ID to a text editorSave App ID and Tenant ID
  3. Generate client secret
    1. Click Certificates & secrets -> New client secretNew Client Secret Azure AD Nintex
    1. Fill-in the fields:
      1. Description: give a description to your client secret
      2. Expires: choose when you’d like the secret to expireAzure AD Secret
      3. Click Add at the bottom
      4. Save the Client Secret to a text editorGrant app permissions to Microsoft Graph
  1. Grant your app permissions to Microsoft Graph
    1. Click API permissions -> Add a permission -> Microsoft Graph -> Application permissions Grant app permissions to Microsoft Graph
  1. Select the following permissions:
    1. GroupMember -> GroupMember.Read.All
    2. Users -> User.Read.All
  2. Click Add permissions at the bottom
  3. You’ll need the Global Admin to click on Grant admin consent Grant admin consent
  1. You’ll need the Global Admin to click Yes for the confirmation pop-up
  2. The permission’s Status should change from “Not granted” to “Granted”
  3. Click Add a permission -> Azure Active Directory Graph (at the bottom)->Delegated permissions
  4. Select User -> User.Read
  5. Click Add permissions at the bottom
  6. You’ll need the Global Admin to click on Grant admin consent
  7. You’ll need the Global Admin to click Yes for the confirmation pop-up
  8. The permission’s Status should change from “Not granted” to “Granted”Permissions Granted

Build the workflow

  1. We’ll start by creating a new blank workflow
  1. Then we will set the variables to the values we saved from Azure AD:
    1. Add a Set Workflow Variable action and set the variables as follows:Variables
      1. varTxtAppIDApplication ID you saved earlier
      2. varTxtTenantID: Tenant ID you saved earlier
      3. varTxtAppSecret: Client Secret you saved earlier
      4. varTxtGroupId: Group ID you saved earlierSet Workflow Variables
  2. Now we will get the bearer token
    1. Add a Web Request action
    2. Set the properties as follows:
      1. URL: https://login.microsoftonline.com/‍{Variable:varTxtTenantID}‍/oauth2/token
      2. Method: POST – content type: application/x-www-form-urlencoded
      3. Body: Content radio button – grant_type=client_credentials&client_id=‍{Variable:varTxtAppID}‍&client_secret=‍{Variable:varTxtAppSecret}&resource=https://graph.microsoft.com&scope=user.read
      4. Username: your username
      5. Password: your password
      6. Store response content in: varTxtBearerTokenJson
      7. Store http status code in: varIntgrResponseCodeGet Bearer Token

Once this action runs, we will have retrieved the bearer token in a JSON format and saved it to our variable varTxtBearerTokenJson.  This is how the bearer token will look:

Bearer Token

From the bearer token, we want to retrieve the access token.  The easiest way to do this, is to store the bearer token in a dictionary, then retrieve the value for the key “access_token”

  1. Add a Set Workflow Variable action and set it as follows:
    1. varDctnryBearerTokenJson: varTxtBearerTokenJsonSet Bearer Token Json
  1. Add a Get An Item From A Dictionary action and set it as follows:
    1. Dictionary: varDctnryBearerTokenJson
    2. Item name or path: access_token
    3. Output: varTxtAccessToken
  2. Log access token – to make sure we retrieved it successfully
    Note: You will not see the full access token in Workflow History due to the character limit. You can Email it to yourself to see the full token.Log Access Token
  1. Now, let’s call the Graph API and get the members
    1. Add a Web Request action
    2. Set the properties as follows:
      1. URL: https://graph.microsoft.com/v1.0/groups/‍{Variable:varTxtGroupId}‍/members
      2. Method: GET
        • Header name (key): Authorization
        • Header value: Bearer ‍{Variable:varTxtAccessToken}
      3. Username: your username
      4. Password: your password
      5. Store response content in: varTxtUsersJson
      6. Store http status code in: varIntgrResponseCodeGet Users Json

Once this action runs, we will have retrieved the group members in a JSON format and saved the object to our variable varTxtUsersJson.  This is how the users’ JSON will look:

Retrieved Users Json

  1. Now that we got the users, we need to extract the property userPrincipalName, we will retrieve it
    using Regex.

    1. Add a Regular Expression action
    2. Set the properties as follows:
      1. String: ‍{Variable:varTxtUsersJson}
      2. String operation: Extract
      3. Pattern: (?<=(userPrincipalName\”\:\”))[^”]+
      4. Output: varCollUserPrincipalNamesRegular Expression Json
  1. Let’s confirm that we retrieved the users successfully
    1. Add a Send an Email action
    2. Set the properties as follows:
      1. To: your Email address
      2. Subject: Users
      3. Body:Response Code: {Variable:varIntgrResponseCode}Users Json: {Variable:varTxtUsersJson}‍Users Collection:{Variable:varCollUserPrincipalNames}Send Email
  1. That’s it! Now run the workflow.
  2. You should receive an Email with the following:
    1. Response Code of 200
    2. Your AD group members in a JSON format
    3. A collection of your AD group members’ user principal names

Received Email

Conclusion

Microsoft Graph API allows you to access tremendous amount of data in Microsoft 365. In this tutorial we used the API to retrieve Azure AD group’s members. However, the API can be used for a lot more than that. The tricky part here was to get the access token. Now that you know how to get the token, check out the Graph API and see all the cool things you can do.

References

Microsoft Graph API – Get access token without a user.

Microsoft Graph API – List members end point.

 

A version of this article also appears on Wisam’s blog Consultant Diary.

 

Good Process First, Effective RPA Later.

More and more technology leaders are turning to Robotic Process Automation (RPA) to help accelerate time to value, reduce human error, and free employees from highly repetitive, manual tasks allowing them to focus on higher value work.   

RPA has great promise in transforming how organizations can approach and perform work. But to get the most out of your automation investment, look at conducting a process assessment prior to starting a project.  

Process reviews have numerous benefitsAbove alla review will ensure that your blueprint for RPA (aka your process documentation) reflects the wayour process is performed and help you optimize it for automation. During a review, it’s good to keep in mind that RPA works best for well defined, linear processesKnowing this ahead of time will help you avoid unexpected stand stills later. 

Surprises take the fun out of RPA 

To understand why a well-defined process is so critical to robotic process automation, we need to discuss how RPA works.   

RPA bots are designed to mimic or replicate user interactions with the desktop, but with added efficiency. Mouse clicks, key combinations (e.g. ctrl + S, F2 etc.), copy paste procedures are capturestep by step into what is called a bot script. Those are instructions that an RPA bot will execute. When applied to optimized processes, RPA bots can achieve multiples in output over a human worker doing the same task. Amazing, right? 

However, as mentioned above, bots work best with processes that are both well-defined and linear. RPA bots aren’t that good at dealing with surprises. This means that any deviation from what you captured in your RPA bot script will cause trouble. Most RPA bots default to a full stop when they encounter an unexpected condition. When you have a lot of undocumented variations (or surprises) in a process, and then try to apply an RPA bot to automate it, you can expect your RPA bot to stop… a lotThere goes all that promised efficiency! 

Let’s circle back.   

So, the question becomes, how to leverage the power of RPA when you don’t know the variability of your process? 

One option is to budget for enough bot development time so you can handle the variations you know about and continue to add complexity as you uncover new variations. However, this approach tends to be costly and unsustainable in the long run.   

A much better (and cost-effective!) alternative is to start with a process review to simplify or re-engineer the variability out of the process. Although this approach will likely take more time upfront, you get the benefit of an accurate, updated and improved process and a much better RPA outcome. 

Eager to get started with robotic process automation?

Get in Touch

Planning and Mapping a Process with Nintex Promapp

“If a process hasn’t been documented, how can you know if it’s broken?”

Why should you document your processes? Simply put, process documentation is a core function that’s needed to understand your business. Being able to identify an area of a process that can save time, money and improve effectiveness is extremely valuable to any organization. It can make all the difference between a business that operates on the verge of burnout and one that is successful and growing in a sustainable manner.

At its most basic, documenting a process is an opportunity to capture and identify the critical elements of a process often described as the 5Ws:

  • What needs be done?
  • Who will do it?
  • Where will it be done?
  • When will it be done?
  • Why should it be done?

This straightforward analysis helps us understand the reasoning behind the process and recognize all the steps involved. However, documentation alone is not enough. In order to be truly useful to the business, we need to clearly communicate the flow of tasks and activities with others. Process maps do a great job of doing just that. Because humans are visual learners, we find it a lot easier to understand concepts when they are laid out in easy to follow diagrams. With process maps, we can explain even the most complex processes in a way that’s accessible to everyone. Once  we can see and understand our processes, we can begin to improve them in a meaningful way.

Choosing a process mapping method that’s right for you

There is no one right method of mapping a process. In fact, the method you select for process mapping should depend on the needs of your team and your project. In most cases, a whiteboard is a great starting place for processes that are new or haven’t yet been clearly documented.

While whiteboards are extremely helpful in the early stages of mapping processes, they aren’t exactly ideal for remote collaboration. A centralized process mapping solution such as Nintex Promapp can help you empower your teams to own their processes in a truly collaborative fashion.

One of the reasons why we love Promapp, is because it allows you to make process mapping fully digital. What does that mean in practice? For starters, it makes it easy to continuously improve processes. Because the tool is centrally managed and can be accessed from anywhere, it helps to get everyone in your organization on the same page. Any stakeholder in your organization, be it a member of the process or someone who is affected by it, can access the Promapp-built process to provide feedback about any of the tasks or activities. By combining maps with an actionable feedback loop, you can continuously adjust processes in a truly agile fashion. When a process changes, the process expert and process owner approve the change and automatically push the updated map to all stakeholders. This takes the trouble of version control completely out of the equation.

Benefits of Process Mapping with Promapp

After going through process mapping with Promapp, clients we work with report at least some of these benefits:

  1. Improved customer experience. Accurate processes that are easy to understand ensure the best possible customer experience, no matter who is serving the customer.
  2. Increased efficiency and productivity. Teams that have a visual representation of a process are better at understanding how the process works. They are also quicker to identify improvements to increase efficiency and productivity.
  3. Simplified compliance management. Regulatory compliance becomes less tedious when processes and procedures can be easily updated and shared with external auditors.
  4. Improved quality and consistency. Mapping processes establishes ownership and accountability. Knowing who is responsible, empowers teams to identify and implement opportunities for improvement in their day-to-day work.
  5. Reduced Costs. Current, standardized processes make it easier to identify areas in your business where you’re wasting time or money, or where processes are repeated.
  6. Increased business agility. Driving change in your business is easier and faster when everyone has accurate, up-to-date process information at their fingertips.

ProMapp Process Mapping Demo

In this short video we demonstrate how easy it is to create a process map in ProMapp:

Interactive ProMapp Demo

You can also view the interactive demo version of this Promapp process by clicking on the image below:

Promapp Process map Demonstration

Why use Microsoft Flow?

When the name “Microsoft Flow” gets brought up in a conversation, the typical response I hear is “Oh, the automated workflow tool released by Microsoft! It looks great, but I’ll wait a couple of years to see how it matures before using it for business process automation.”

Quite often, I see that that because Microsoft Flow is still fairly new by enterprise software standards, many customers will shy away from it because they believe it’s too raw to be used as a production level solution. Although it is true that Flow is a new player in the workflow automation space, nevertheless it can deliver significant value to anyone looking to get started with business process automation. Let’s take a closer look at the benefits and drawbacks of the tool.

Benefits of Microsoft Flow

Ease of Use

One of the biggest advantages of Flow is that it is incredibly easy to use. Flow was designed for non-developers, so even someone without technical background can use it to create workflows. The simplicity of the tool and the small learning curve are a definite advantage over other process automation applications.

Lots of Connectors!

Microsoft Flow has hundreds of connectors that can be used to connect to data from many different sources right out of the box. Large collection of easy to use, pre-built connectors makes integrations with third party applications, such as Slack or Dropbox, a breeze.

Microsoft Flow Connectors

Microsoft Flow comes with over 250 ready-to-use connectors

Creating Custom Connectors

Another benefit of Flow is the ability to create custom connectors with the same straightforward no-code approach. All that’s required is understanding what the API of the application that you want to integrate with Microsoft Flow looks like. In other words, the connector just needs to tell Flow what the API is and which requests and responses they support. The process for creating a custom connector is as simple as creating workflow in Flow.

Weaknesses of Microsoft Flow

Before implementing Flow, it’s worthwhile to consider the limitations of the tool.

Latency

One of the main weaknesses of Flow is its latency. Very complex workflows used when designing a webpage or program can significantly affect performance especially if conditions and actions are left open.

Another issue with latency is the time it takes for the flow to trigger. Depending on the subscription plan, it could take up to 15 minutes for a single flow to complete. Microsoft Flow is an attractive tool because it is bundled with Microsoft Office 365. The most basic version of Flow comes without an added cost, making it easy to get started. However, many users don’t realize that there is a difference in flow frequency times between the available plans. The free Flow plan has a maximum flow frequency of 15 minutes while the next tier has a maximum flow frequency of only 5 minutes!

Microsoft Flow Pricing Plans 2019

2019 Microsoft Flow Plan Comparison Chart

Permissions

In Flow, it isn’t possible to set/change permissions on a SharePoint item without the usage of a web service or a third-party connector. Currently, there is no out of the box Microsoft solution available which is a serious limitation of the product.

Creator Based

Flows are creator based. Since the creator of the flow is the one doing the action, the actions will be attributed to them. This might cause issues depending on what is the goal of the flow. To illustrate this, let’s consider setting up a flow to send an email from an alias. Since the workflow is based on the creator of the flow, then a person who has access to that email alias MUST be the one to create the flow.

Is Flow right for you?

As you can see, despite its limitations, Flow is still a strong business process automation tool that might serve well in your organization. When deciding if Flow is the right solution for you, it is worthwhile to consider the complexity of workflows you are hoping to build. For example, fairly simple workflows that can utilize basic out of the box connectors in Flow, are an excellent candidate for the Microsoft tool. However, processes that apply complex workflow logic might require more powerful tools better suited for complex tasks. For more information on workflow tools and getting started with business process automation, be sure to check out our resources.

Intelligent Process Automation – Webinar Recap

Municipalities and ministries are no stranger to paper-based manual processes; processes that are often prone to delays, errors and other inefficiencies. Sound familiar?

Fortunately, it’s now easier than ever to automate these and create a more efficient and effective system for everyone.

We invite you to view our recent webinar hosted by DevFacto consultant, Julian Charles, which presents a unique case-study approach to automation for municipalities and ministries. See first-hand how Nintex’s Intelligent Process Automation (IPA) platform can be used to easily create an automated, more efficient business process.

The Case: Automating the Property Tax Rebate Application Process at Harrington County

Harrington County (a fictional municipality) was utilizing a paper-based process by which citizens could apply for a refund on their pre-paid property taxes. The original process was manual and was prone to delays and errors in processing. As part of a county-wide initiative to transform, Harrington County leveraged the Nintex IPA platform to recreate the process as a dynamic, responsive web-form; automating this and other similar processes quickly and easily.

See Harrington’s Public Form here.

About Nintex

Nintex specializes in solutions for municipalities and government ministries, including:

  • RFP Processes
  • Inventory Management
  • Safety Inspections
  • Incident reporting
  • Public-Facing Forms
  • Mobile-Worker Forms
  • Leave Requests
  • Employee On-boarding and Termination

The Nintex Workflow Platform provides you with powerful digital workflow and content automation capabilities. Turn time-consuming tasks into a few simple clicks, and inefficient department-wide processes into well-run engines. We give you the ability to do more:

  • The advanced workflow engine provides enterprise logic to drive sophisticated processes.
  • Gain visibility with process intelligence to make better decisions and optimize processes.
  • Modern and responsive forms are easy to build and deploy often improving web interfaces with the public.
  • Dynamically create documents based on metadata that is collected.
  • Design, deploy and manage mobile app solutions for staff or the community with just a few clicks.
  • Make your Nintex Forms Mobile with offline capabilities

 

Lessons from Nintex xchange 2018 Pt. 1: Introducing the New Era of Intelligent Process Automation

By Julian Charles, Solution Architect

As shared in our previous blog post, DevFacto was recently in attendance as a sponsor at Nintex xchange 2018 in San Diego. The conference was a great opportunity to network within the Nintex community and it provided a unique perspective into how these thought-leaders are using the platform to automate processes across a number of industries. Read more

DevFacto to Sponsor Nintex xchange 2018

From February 26 to 28, a few lucky DevFactonians will travel to San Diego, California to participate in Nintex xchange 2018. DevFacto is proud to not only be a key sponsor of this event, but also to be Western Canada’s only Nintex Premiere Partner. Getting involved with an event like xchange further solidifies Read more

Why Would I Buy Nintex?

In my previous blog post ECM Governance – Part Five, I mentioned that I should post about Nintex and discuss how to determine an ROI for the purchase. So, let’s dive right in and talk about Nintex:  Read more