Automating business processes and approvals with Microsoft Flow
![Automating business processes and approvals with Microsoft Flow Automating business processes and approvals with Microsoft Flow](/pic/automating_business_processes_and_approvals_with_microsoft_flow/T1JnYUE5OElvTk0_.jpeg)
So. Today, we'll be talking about Microsoft, flow and how you can use it to automate business processes, and approvals, inside your organization. So. By. A show of hands can I see how many people have heard, of Microsoft, flow before. Ok, so almost, everybody that's awesome how, many people have built. An approval, flow before. Okay. So ass, much, smaller, percentage, that's relatively. Good since I'll be doing that in the demos today so if, you've already seen it great you can follow, along but if you haven't yet then, one. Of that's definitely one of the things I'll cover in the session today so. When. We talk about Microsoft, flow I'm gonna give a little background on, why. We making Microsoft flow who, we see it for and kind of but the purpose of Microsoft flow is and, I. Like to show this graphic, and really, what we're trying to say here is, today. There, are there's, data in a wide variety of systems inside and outside of your organization, there. Is email there's files there's, messages and. The. Way that you integrate this data together today more often than not is by, having people doing. Manual, tasks, people, have to go and they have to copy and paste data between systems they, have to make sure that when they get an email from their boss that they do the right thing that if, they're sending out an approval request that it goes to the right people in fact. Not, only are people doing this oftentimes, people are doing this with pen and paper a lot. Of the processes, that are inside organizations today, still have not been digitally transformed, in a way that they can run inside the cloud, so. With Microsoft, flow we, hope to make people be able to work less and do. More because. We want people to work smarter, inside, organizations and, the supply is not just individuals, but also to teams and groups of people inside. Organizations and, they could do this with, Microsoft, flow by, automating, the processes, and automating. The approvals, and all of the things that go on inside of their organization. And. What is Microsoft, flow, Microsoft. Flow is a global. Scale software, as a service that. Is intended to support the digital transformation of, processes, across, many different verticals. We have data. Centers throughout, the world we run in Azure and just like you'd expect and we, are a complete, finished, software, as-a-service that means you can go you can go to flow microsoft comm and sign up and it just works out of the box we, are not like, an infrastructure, service. What there's lots of great talks today and throughout, the week and build about infrastructure, and how, you can use Azure to build that that's not what we are we are a software, as a service you can use to sign up today, and start automating, things inside your organization so. To, set some context, of how Microsoft flow fits, in with the other Microsoft. Business applications, that we have there. Are tailored. Applications. That meet your needs no matter where. You are if, you're using, managing. People inside your organization you're managing the products of your organization, managing the customers of your organization, and we. Have tools like, Dynamics, 365, that, have built packaged. Applications, that meet these needs plus. We have a wide variety of tools like LinkedIn. Being, all, across, the board all, these applications build on top of a few key platform, elements, so, when. We talk about the, business application, platform, I'm talking, about the, power, bi power. Apps and flow, and together, with Azure they offer a platform for all of the business applications, of Microsoft delivers. When. You're thinking about digital, transformation inside, our organization. Often. The fastest and easiest way to get started is by. Purchasing. An off-the-shelf. Finished. Application. Our dynamics, 365 applications, like marketing sales service, talent they are this they're a complete, application, but, the fact of the matter is many. Applications, don't do exactly what you need every. Business has its own distinct, requirements, so. You need a platform that allows you to customize the processes, of your organization. Oftentimes. There's no app for that because, there's, no business, process, that comes out of box you just magically does what you need, so. To represent, it in a visual way we, have these packaged, applications, but, there's also all of these individual, line, of business processes. That need to be created that span.
The Distance. Between each, of these individual, applications, so, if I want a business, process that goes between marketing, and talent I need. A way to do that and the simple out-of-the-box, business. Processes, that come with those individual, applications, won't do that for me, that's. Where Microsoft flow along, with power apps and power bi come in is they allow you to fill in these gaps for. The processes, and capabilities of your organization. Moreover. We, see that IT application, development, is becoming, more focused on the high productivity and, low code aspects. Of development and what we mean by this is you shouldn't have to go and write a bunch of code just, to accomplish, a simple workflow that. Wouldn't be a good use of your time and it. Would be harder to maintain after, you've done it so. We really think that the, capabilities. Of the platform that we're delivering will. Make it much easier to. Build solutions, whether, you're nighty or not. We. Think that these solutions, will give you a way to build applications. And solutions faster than you ever have before and you can compose, together things. Like analytics from power bi user, interfaces. From power apps and the, automation that exists inside Microsoft flow, together. We, say these three things make up what we call the power platform. It's not an official term but. Two of the three applications have word power in them so. That's why we call it that and the, power platform targets, power. Users, these are the people that are embedded inside the line of business that know what, their business problem is more, most, closely. Now. On top, of this, we, offer the. Developer, platform capabilities. Of Azure so. Power, bi flow, and power apps are built directly, on top of equivalent. As your offerings, for pro devs so. If you are a pro dev in the audience which most, of the people have build probably. Are either, developers, or no, developers, themselves, that's. Where Azra comes in and we. Really see the offerings. That we have for power users being. Closely connected to the azure offerings, that we have and. Both of these together they. Use new. Capabilities, in what, we call the common data service for analyst and the, common data service for apps that, are the, holistic data, store for, the, data that your organization. Has in stores so you can bring all of your business data and put in a single application or a, single database, that, you can then build applications. On top of build, processes. Build, your, analytics, on top of we, also have connectors and gateways so that way if you haven't brought your data into the common data service you, can still connect to it wherever it is.
Another. Way to think about this is. How. Are we differentiating. Between the audience, of developers, and citizen. Developers, is by, the, breadth of their. Offering, so, today, there's, a small set of applications. That can be built using dotnet, and dub F and functions because. It, requires a lot of skill and capabilities, to build those out but. If we start up leveling, these concepts, and, we look at as your logic apps which I'll dive, into a little bit more of comparison, later but. Other technologies, like xamarin Cordova, you're, expanding, this the set of possible audience towards. More of those citizen developers, and if. You go all of the way to say, for, power apps and flow we. See there as being huge opportunity. Because. Really any citizen, developer and citizen developer, is a little bit of a misnomer it. Means somebody. Who isn't a pro developer, which means really they don't know how to write a lot of code that. Is where we see power, apps and flow being really successful because as you'll see throughout the demos today all it, requires is thinking, a little bit about your business problem, to, be able to bring together with UI drag-and-drop capabilities. A business. Process. In, a way that works for your organization so our key goal here is to democratize. Digital. Transformation, inside of organizations, to make it possible for anybody building. Internal, solutions, and as, a citizen developer, to. Create things that their business needs now. That being said we, don't, want there to be what we call cliffs, where, I take, a solution, on that on one platform and, then, suddenly I have to go rebuild, it if I need it to be more advanced, so, we've built the platform in such a way that I can take a very, simple solution I build say from a template and you'll, see I'll walk, through each of these steps in the demos today but I'll start from a template which is a very simple flow that just works out of box and then, you can grow up and say hey I'm going to customize this to my business's needs but I'm still using. The simple UI drag-and-drop capabilities, that we have and if, even that is insufficient, and I need to be able to integrate with you, know continuous, integration continuous deployment and all the developer capabilities, that I have I can grow that up further and take that into, a pro developer environment so. We've created this. Spectrum, that you can always move along you're not limited to just a very simple solution and then you have to throw everything away and start over with your powerful. Solution so we think this is particularly, powerful. And, unique, to our platform inside Microsoft, unlike. Many of the other competitors, out there. So. I talked about the common data service routes what does that actually entail. The, common data service for Apps brings. In data, modeling which, means that you can create all of your business data your, business entities the relationships, the attributes, and you, can put that in a single place that, your business can use and the security, model can live on top of that as well then.
There's A business logic and this is where we see Microsoft, flow, really, fitting in to the common data service for apps because. Microsoft, flow is a way, to build, business, logic on top, of your business's, data you. Can have it to do things like send notifications. To create actions, do, whatever you need inside. The data that your business has and then. There's a user interface and I won't talk about that much today but, there are sessions that build about power apps and I'd recommend, checking that out if you're interested in, how, you, can use our high productivity, low code platform, to build UI that's, power apps and you can use that to build both canvass base and model-based, applications. On top of the common data source traps and one. Of the last, things I want to mention on this slide that we hear a little bit of confusion about is what's, the relationship between the common data service, and dynamics, 365, and the. Answer is the, common data service, is the, data platform, that Dynamics 365, uses, so. We've taken the data platform, and made, it so that way you can not only use it in your Dynamics 365, applique. We can also use it to build customized. Business solutions, with, Microsoft, flow and with, power, apps as well as power bi. But. The. Fact of the matter is today most, data does, not live in the common data service so. We've built a robust. Series, of connectors. We have over, 200 connectors today actually the slide is a little out of date that allows you to connect to SAS. Cloud, services, file, providers, databases. Web api's productivities, solutions. Pretty. Much wherever you have data there's. A pretty good chance that there's a connector for that today and, this. You know shows you just a snapshot, of the connectors, that we have available. Not. Only do we have connectors, to SAS services we also have the ability to connect to on-premise data, if you, have an organizational. Database that runs inside your local network you can actually connect to that from Microsoft, flow so you can use that to drive your business processes. You. Also can, build custom, connectors, which, allow you to, connect to custom, endpoints that your organization, may have created and I'll talk a little bit about, more about that at the end. Now. Some, organizations see, this slide and they freaked out a little bit because, hey. There's all these places that my company's, data could end up going how, do I keep track of that how do I prevent data from being leaked to, places I don't want it to go and the, answer is Microsoft. Flow comes with rich admin, capabilities, built in so, that way an organization, can, feel secure, in using, it in a way that does not result, in data, leaking, outside of the organization so you have things that we call data, loss prevention policies, and these data loss prevention policies, block. Data flow from. A source. That may be compliant, to a source that's non-compliant. So this is how organizations. Can adopt, Microsoft, flow and still be confident, that data is not leaking in a way they don't expect. Now. Flow. Has of course wide, variety of standards, it has accessibility, and it also has extensibility. Which means that developers, who want to extend. The capabilities of Microsoft flow, can as well and there's. Those custom connectors I mentioned as well, as the ability to connect, with Azure. When I showed, you that later diagram, with the power tier and the developer. Platform really, that's where I was talking about how Azure, can be used to extend what. You build for, power users inside your organization's, and one of the things that really excites me personally, is flow.
Is Embeddable, via an SDK in your application, that, means if you build a web, application and. You want workflows. To, be natively, included, in your application you can actually do that simply, by including the, flow SDK, and in, doing so as long as you support Azure Active Directory Federation, authentication. The. Users flows can show up right inside your application you can customize those views so, it's an awesome way to. Bring workflow capability, directly, into your app. Besides. Just giving IT control, over, what happens inside organizations, we also solve key problems, for IT. Integration. Is a problem, that spans the enterprise, and at the end of the day there's, only so many IT guys out there who, can actually build solutions, for the line of business so, we really believe that by democratizing. The ability to create business. Processes, so that way any line of business can create the business processes that they need and automate them it, will make the job of IT much easier because now they don't have to spend time building, out bespoke solutions, every single time that somebody. Requests, a new process to be built and this. Self-service, capability, enables, the less technical, users, inside organizations to, feel empowered to feel like they, can make a difference and they, can make their own lives better. Sometimes. Though if there is a solution that has been built and you need to be able to as IT, take it over you can do that as well and, with. Flow we have built it directly, on top of logic, apps which means if you've built a flow as a business, user and IT wants to take it they can put it in eyeties as your, subscription, which. Kind of begs the question what, is the difference between logic. Apps and flow well. The reality is there's. Far more commonalities. Than differences, flow. Is built directly on logic, apps it is literally the exact same engine, it is the same UI designer, it's the same expression, language performance. Characteristics. The same reliability, is the same it's, the same thing at runtime which, means that flow, is just, as robust as logic apps when it runs. But. There. Is a key difference in, that, logic apps is our pro developer, offering, it targets. People who use Azure who, live in visual studio who, expect, to use source control who. Want continuous, integration continuous deployment those types of things that's, where, azure really excels because it has things like as a resource, manager, it has, things like the, ability to go. To the audit logs inside Azure, access. Via our. Back all of these things are available inside of azure so if those are the types of things that you want for, the workflows that you're building as. Your logic apps is the right solution for you but. The fact of the matter is there's, millions while, I suppose they're secondly billions of people in the world who don't use Azure today, and, for. Those people, flow. Along, with power apps and power bi are really, a great option because. They don't require having, an azure subscription. They don't require going to the Azure portal, or installing Visual Studio or using any of those pro dev tools there, are wave people that get started with, just a few class.
So. Why don't I dive into that, building. Flows so. Inside. Of flows there, are a few key concepts, that I would like to talk about all. Flows, start, with, what's called the trigger it's, the event that kicks it off oh then. Can have any number, of actions and it, can have additional logic like, conditions, flows, can have loops they, can have a do until loop they can have a for each loop they. Can also have different types of branches you could have parallel, branches so you can build out, your business, process, to do whatever type of workflow you're interested, in your. Flows can then trigger, other workflows if you want if you want to isolate the, business logic between different locations. To. Get started with a flow we, have literally. Thousands, of templates available on the flow website these. Templates, help users to get started by pre configuring, and bringing together actions. And triggers, in a way that they're already set up so, that way the average user doesn't have to worry too much, about exactly. How to wire things together if they're just coming and getting started out of the box these. Templates, are a great showcase to, understand, if you're interested. What can flow do well, the easiest way to find out is go to the website and browse our template gallery there. You can see thousands. Of different of ways that, users use flow today to. Improve their business. Now. Once you start using a template you'll get a flow created, and then, you can go to the flow designer this. Is a little snippet here of what the flow designer looks like and obviously, I'll go into this more detail in the demo but at the top of every flow is a trigger the, trigger is that event that starts it and then. Below that are the actions, for. The triggers and the actions, we, have what we call inputs, which are those, text boxes on the on those actions there and you, have to configure the inputs in order to make that particular action, work if you imagine send an email obviously. You need to say who you're sending the email to well. The subject of the email is what the body is etc. In. Terms. Of triggers there are three, different common, types of triggers the. First one is you, can run a flow manually. Based on a user taking an action for, example we have a full mobile app that I'll show in a little bit that allows you to hit a button and immediately kick off a business process inside your organization. Another. Thing you can do is you can use flow to run on a schedule so you can say every, week or every, day. At 4:00 a.m. this. Can even respond based on daylight savings time and those types of things finally. And this is the most common way that people run flows is by, running on in. Response to an event that happens out in the cloud so. If I get an email or a file gets uploaded or somebody posts an RSS, feed all. Of these things can trigger flows. Then. Let's, look at the actions, actions.
Can, Run any number of steps that you like and they can connect both, the cloud services and of course to data and on-premise Gateway like I mention, actions. Can even connect, to direct, HTTP, endpoints, that means if you've built a web API inside, your organization and, you want somebody to be able to build orchestration. On top of this API you want somebody to be able to build a process on top of that API they, can simply. By using. The direct HTTP, actions that we have inside, of Microsoft flow. Some. Actions in flow don't, even connect, out to other data services, sometimes, you can use actions, and flow to, transform, data if I want to take an array and I want to filter it down or I want to store variables, inside of a loop or I want to convert something into an HTML table I can, do that using built-in actions, that we have inside a flow. Another. Important, concept to understand, is how, data is passed from action. To action inside a flow in order. To get data to be used inside flow we have a concept called dynamic, content, and really, all that represents, is the outputs. Of the previous, actions, and triggers inside. Of the flow. For. Example let's say I have a trigger here that's, uploading. When, a file is uploaded to a particular place that, trigger has, three outputs, it outputs the file name the, size of the file and the, actual file content, and each of these has a different type if, I. Then go and add an action onto, the flow and, I. Have a field that takes you know any binary, content as an input I can use any of those trigger outputs in that. Action. So, let's say this action is uploading, a file to, a particular folder if I. Were to pass in the file name I get a new file it added to that folder that just has the file name as the contents, so that isn't exactly what I want but I can do that, now. That, action will in turn output, additional, data such as the title and the, title, of the folder and how many items were in that folder if, I then add a third at our third step another. Action, on to the flow I can, now use any of the data from both the trigger and the. Action above it so, inside, a flow you can continue. To use any data that's from anywhere else above you inside, the flow and. The other important, note here is that the, data that we show is filtered, based, on the type of the, field this, means that if I have data. That's output as a number and I, have a number field that I would like to pass data into I can only pass things like the size and the count but, I can't pass the title because that's a string which doesn't match that type so we do intelligent, type, in there and if, you really know, that, that title is gonna be a number by convention, you, can explicitly cast, types as well inside the flow. Okay. So I've been talking for enough, time why, don't I switch. Over to the demo and. Of course my computer. Has fallen asleep so I'm going to need to sign in. There. We go so, here I am at the flow. Home, page so, you can just go here yourself by going to float on Microsoft comm and signing in you, can sign in with a, Microsoft, account or with an org ID you don't need to just use, your company's credentials, and, when you come to the flow website we have a number, of ways for you to very easily get started and learn about the capabilities, of Microsoft flow, at. The top here we have what we call future. Template, collections, and since. This is build maybe. You all would be interested in seeing the types, of software, development tasks, that we can automate inside. Of an organization you. Know for example you, can respond faster the customer bug requests and here are a few templates, that you see here that would help you with that or improve. Task management, or automate, the follow up on tasks, each.
Of These is a template, which means we have already configured for you the, steps that, need to run inside that flow and the data flow between, each of those actions, so, you could actually come to flow right now and just start using these. Processes. In. Addition to, using the, templates you can also browse the, different connectors that we have inside a flow you. Can learn a bit about flow and see some, of the feature templates, and these templates, have been used quite a bit you can see this, first template here has been used almost. 250,000. Times so. A lot of great, scenarios, are being built out today with, flow we. Also have a mobile app that I'll talk about in, a little bit so. Now let's take a look at the, different connectors that we have inside flow and, with. That you, can pull up and see I can, pull up in here and see at, the top we have the recently added connectors there's some custom connectors that have been built inside my organization and then. Here's the full list of all the connectors so don't, try to memorize, that list, but. What I want to do for this demo is I want to build a simple flow that, will create a wonder list ask whenever, a new bug is open in Visual Studio and, assigned to me so. I can go to wonder list and see the details of. What. Wonder lists can do inside, of Microsoft flow, and here are some triggers at Microsoft, that, Wunderlist has so, I can trigger when a new task is created when a reminder, is due, etc, but. In this particular case I want, to find a template that, creates. A task for me when an item is assigned, from visual studio, so. When you create from a template inside Microsoft flow, all, you have to do is fill out the, few required, fields, that you need to get this template to work when. I'm copying from visual studio into wunderlist I just, need to tell it where, to find the items in Visual Studio and where to put the item in Wunderlist so, I'm going to start with the account name that, my visual studio that I'm using inside Visual Studio team services, the, specific project, name if, I. Want I can choose a specific team, to put the, item into and, I. Want, to make, sure that these items are assigned to me and this is just an account I created for. The build demo so, now I've configured, this. Flow, to, listen to items created in this particular account. In this particular project and team the. Only other thing I need to do is go, to the. Wonder list list that I want to populate so, in this case I'm just going to put these tasks into my inbox. And. That's pretty much it with, just to say five inputs here, I was able to create, automation. Inside, of my. Organization. That, enables me to now, go, to my wunderlist list and see all the visual studio tests that are created, but. As I was talking about earlier there's, not a cliff here it's not like that, UI that I showed you is the only way, to, manage that flow now I can, click on edit flow and I can see the, trigger which. Is right here as, well as all of the actions, that are inside that flow so. This is the full flow, UI, designer, that I was talking about ok. So I've created this flow let's. Go ahead and test it out so. I'm, going, to perform the trigger action so I'm going actually go and create an, item inside visual, studio, so. I'm gonna switch over to, that and let's, create a new bug. And. Just, say you, know it seems to be running, a little slow. Whoops. Freudian. Slip there maybe, and. Then I'll, sign it to myself. And. There. We go so now I've created the, item, inside Visual Studio so you, can see here the, flow picked up the fact that the visual studio item was created pretty. Quickly almost. Instantaneously. In fact and then, created, a task and Wonder list so. If I switch over to wunderlist and if i sync. My account I should. See there we go visual. Studio bug seems, to be running slow so. In really, just a couple. Minutes I was able to create a process that, listen, to visual studio and automatically, created a task and, you can imagine now it, doesn't have to be just a simple.
Personal. Automation, scenario, there's, actually ways to take this and grow, it up so that way a whole organization, can take advantage. Of processes, like this. So. I will switch back to the PowerPoint. So. Let's talk about that let's, go beyond just an, individual, creating. A simple flow like I showed you that's useful for themselves to, creating. Flows that, are really about driving business processes, inside, an organization, so. There are three different ways that, we make flows available, outside. Of just the context of individual, the. First is you. Can have a single, flow that is owned and managed by multiple, people at once, the. Most common way to do this is to say hey this security group should be the people that manage this particular flow so, that's about management, of the flow the second. Thing to talk about is, buttons. Buttons. Are unique in that I can distribute, flow. Buttons which is it's not a physical button it's a software, button but I can distribute them throughout, my organization. And then anybody can invoke those buttons that, means that I can create business, processes, like approval, processes like. Opening, a bug and make, it possible, for anybody to, click the button and all, they have to see is the button and the inputs for it and it goes and it runs without. Them having to worry about all the details and, the innards of that flow. Finally. You can have people participate. In the decision-making process of, a flow by, using what, we call our modern approvals. Approvals. Allow people, to be assigned tasks, that they can then go and run. Inside, the context of the flow, so. Starting, with team ownership I can, say that. I want a security group an office 365 modern. Group or just, a list of people to be able to manage a flow in. Fact, we'd recommend that for any robust business process, you shouldn't have just one person own that because if that person leaves the company you, want that process to continue running right now. Technically if that happens admins. Still, have full control, over the flow so, they could go to the admin center and they could assign to somebody else but you. Don't have to get the admin involved as you don't have to. Additionally. The connections, that are in a flow don't have to be tied to just one person the, connections, that a flow uses, so, in that demo that I just showed you that was my connection to Wunderlist, and visual studio those. Connections, could be tied for example, to a service account so, that way you can create a service, account as long as it's a named user an AED you, can then give it the right level of permissions, and have, it just control.
What You want it to control and then you can use that connection inside, of your flows so, that way if somebody does leave the company that, flow continues, to function. So. Team ownership is very important, concept it helps people to create robust processes inside organizations. Then. The second thing that I want to talk about is buttons and buttons, are particularly. Useful from, when you're on side when you're on a mobile device now flow, has a lot of mobile capabilities. So you'll, see in the next demo how you can use flow mobile, to. Run, buttons, and start approval processes but, you also can, even monitor flow activity in a wide variety of things. The. Flow buttons can, even be tied to, physical, devices so, we have partnerships, with flick and BTN if you have ever heard of those that make these little tiny. Tiny. Wi-Fi, and bluetooth button you can distribute it inside your organization and, when you hit those buttons and actually, go and trigger a flow now. What I'm showing on screen here, this is a software button this isn't you know a physical device but, it's a button nonetheless you can click and you can have that go and run a flow and these, buttons can, be distributed to your co-workers or, to people inside your organization so if I have a you, know a six. Day process that I would like everybody, in my organization, to use I can create the six day button and I can simply share it with everybody inside my department, and they can click that button and run it you can, also of course get, links directly to buttons so you can share them directly to people via that route as well but. Buttons are really the best way to share, the ability to run a business process inside. Of your org. One. Other thing about sharing, buttons is sometimes. If you, would like you, can have a button, that's tied to the permissions of something other than a security, group for. Example if I have a process that I want to kick off from a SharePoint list or, a SharePoint, to document library I can, do that by creating a, that. Is tied to the permissions of that SharePoint, list or that document, library so, that way everybody who has access to that SharePoint.
List Will always be able to run that button this, is actually, a relatively new feature that, we've recently, released and we, built this because, people had this pain of keeping permissions in sync they weren't. Sure if the people had access to the right security group would have access to run the flow and we've, solved that by allowing. These buttons to be shared directly to a SharePoint list. Now. The third and final point that I want a much in the section. Approvals. Are the way that, you can have processes, that run across, your business and have many different participants, in the same process, if. You think about HR, for example, HR, request forms, can spend many different people one. Of the most common or not most common one of eight a scenario, that we have inside Microsoft is traful. Author Travel Authorization, we. Often in Microsoft send people across the world sometimes to less safe, regions, and when you have an approval process that, is established to, make sure that you really have a true business need to go to, a particular region of the world and that's. Built on top of Micra floo approvals, of course, you have all the things you'd expect like contract, approval, spec approval, all of these can. Go through the approval processes inside Microsoft flow and. Keep. In mind flow, is the successor, to SharePoint designer workflows, which means today if you're out there and you're still using SharePoint, designer and, using, SharePoint workflows, now, is the time to start thinking about how to get those processes, into, Microsoft, flow flow. Has, the vast majority of capabilities, that SharePoint designer has today. There. Are still some gaps that we're working on closing within, the next six months but. For the most part everything that you can do in SharePoint designer is there, and will close the remaining gap soon so if you have processes, in your organization, that use that start, looking at flow today. Now. What does monitor approvals inside flow offer well they give you the ability to view, sent, and received requests. The, ability to do an approval on the go right from your phone or your inbox, we have actionable, message support inside of Outlook so that way if you're in Outlook and you get an approval request with a single button tab you. Can just respond, accept, or reject to that approval request, the. Bruvold can, be customized, to meet your specific business needs so. If you want sequential. Approvals I want one approval after another or, I want parallel, approvals, I want two or three or five people to, handle an approval process you. Can do that by using the, flow designer and I'll show you a simple example of that right. Now. So. To. Build this flow rather than building from a template what. I'll do is I'll crate from blank crate. From blank is how you can create any type of process. That you would like and, when. You do your, first presented, with you know some popular triggers that might help you get started but what, I want isn't in this list so. What I'll do for this flow is I'm going to create a button that I can share with my colleagues that will open a bug inside Visual Studio for. My specific product or my specific team, when. You're adding a trigger you're first presented with a list of all, of the different connectors that have triggers here and this, is just a small subset in fact here you can see when, I click see more there's. A huge number of connectors, that we have available that can trigger flows in, this. Particular example though I just want to use the flow button so. I'll select that and, that's. Been added now the. Flow buttons, I can add any inputs. That I would like and these, inputs can have different types I could have a file upload associated, with a button if I for example want somebody to take a picture, with their phone and upload, that file to, send along with. With, the flow but. For this example I just need to add a text, input and for, this I'm gonna say I want the bug, title. Next. I'm going, to add the actions, into my flow and I can do that by, clicking, new step and adding. An action. Searching. For actions is just like searching for triggers in that I have a list of connectors, as well, as a, list of actions down here and you can see here the.
327. Actions that we we have recommended. This isn't actually the full list because. You, see here there's 3 for Outlook there's actually about 30 actions, for Outlook so we have probably, at this point thousands, of actions that you can use and that's. Just the out of box ones we, also allow you to connect to any of your custom services as well so really, the possibilities are, limitless with Microsoft flow. But. For this example I would like to start an approval, process so I can see more here and select, approvals, when. I do that there's just one action that the approval connector, has and that, will get added on, now, there are two basic. Types of approvals, that we support, the. First is anybody. Must approve on the approvers, list and another one is everyone, must approve so you can think about the, difference between that one is much more robust than the other one is hey I just need somebody to say this is okay another. Is I need everybody to say this is okay however, for the demo I'm just going to be. The only approver, so I can get the demo done so it doesn't really matter which, one of those I choose. Now. What I'm going to do is I'm going to populate, the title of the approval request and when I do that that. Dynamic. Content, pop over that I talked about earlier pops up and you, can see here the list of all, of the outputs, from, the button and trigger so. In this particular case I want the title to match the bug title. In. Addition to using dynamic content, I can just type content directly into the flow designer of course and some. Fields, are intelligent. So this one knows this field as an email field so. It automatically. Can do autocomplete and since, I'm the only approver I don't need anybody else on this list. Next. I can add a condition, into the flow and the condition is how I get branching, logic when, I do that I get this if yes branch and if no branch and. Inside. The condition, I'm choosing, what, I want to check in this case I want to check to make sure that the approver, the. Response, from. The approver, is. Equal. To approve. So. That will make the flow go down the, yes branch of the flow as long, as I, approve. The request so. Now on that branch I can add the specific action, that I want the flow to do in this case I would like to, find a, visual. Studio item. To, be added so I search for visual, studio and it shows me all of, the actions, that Visual Studio has inside a flow and there are eleven here seven, triggers so a lot of things you can do with Visual Studio but. In this case I just would like to create a work item. So. When, I create a work item this, UI may look familiar to you because it was similar to what I showed in the first demo, but, I have to choose the account as. Well as the project that I'm interested, in and creating this bug in and. I can leave the work on type as a bug and then finally, I would like to put the title into, the work item so. When I do that I can, come down here and use the bug title output, from the trigger and notice, how we're, accumulating, these outputs, so I can use outputs, either from the step above it which in this case is start an approval, or from, the trigger and as I add additional, actions on you'll see I can use any of the data as long, as it matches the right type. So. I just need to give this a name let's say you know build demo, and. Hit. Save and now this, flow will. Be saved and I can start showing you. The mobile device. So, this, is the flow mobile app here and inside. The flow mobile app on. The first tab we have activity, which just shows you what's, been happening, with your flows recently, so, you can see here, you know I have flows like get Atlas outlook, tasks, create that task, and note for assigned. Visual studio item that was a flow that Iran in the first demo that was 13, minutes ago so you can see all the flow activity here but. For this demo I would, like to do to. Click a button to start an approval, and the buttons tab here gives, me all of the buttons that I have created, inside, of my, account well, another note about buttons you can actually go and get, the buttons right, from the lock screen on your phone so. If I if I lock my phone here you can see there's, this flow button section in the widget and that.
Build, Demo that I that, I just created I could actually click that right, from here, but. Let's just do it from the app so I'll go to the build demo and I'll click that button as. Soon as I do if you remember I had. To provide the bug title so I can say here, you. Know if. I can spell properly build. Bug. And. Hit. Done as soon as I do that it's, going to start running the process and, you see I immediately, got, that, approval class that's because I was, the approver now, in real life you'd, almost certainly have different, people submitting. The bug as approving, the bug because. What's the point if it's all one person. But, just for demo purposes I've done it all at once and, you can see as. Soon as I clicked on that approval notification, I got, a tailored, UI here that showed me what I typed in the bug just. The title. Who, it came from in this case it was me again what time and then, I can choose do I want to approve or they want to reject this incoming request so. I'm, going to go ahead and approve it, actually. No I'm gonna reject it because no. I'll prove it so, I can approve it here and I can add a comment if I want and then, hit, confirm. As. Soon as I do that it will go and create, that item back inside, Visual Studio. So. I'll. Switch back to, the desktop and it, see if that, item actually got created. So. I'll go back to the list of bugs. And. You can see here bill, bug just got created, and. It's, been successfully, put individual, studio after I triaged it right from my phone very quickly, now. From, the flow here I could, customize. Or enhance this approval process, as much as I wanted so, one, of the other things that we support and flow is for example adding parallel. Branches so, if I wanted two people, to, be handling, this approval in parallel, I could, do that here you see when I do that I get the same UI that we've seen a few times already before where. I can, add parallel, actions in so I can say hey I want to start a separate approval I want to send this to somebody else if I. Want for example to do an escalation, path for approvals, I could do that by after. The that, second, approval, I could get the manager, of the. Person who approved the first request and, then. I could add yet, another approval, action below, that so. You can imagine here, how you can really build out these approval, flows to. Meet your, business's, needs. So. Now I'm going to start talking about some, of the more advanced concepts, that we have inside. Microsoft flow, so. That was hopefully, the easy part now let's, talk about expressions. Expressions. Are. The way to make advanced. Content, inside, of Microsoft flow, so. If. You have for, example a, type that you want to convert or you, want to do an inline calculation. I just want to do some math I want to divide, two numbers or add, or subtract, or do something like that I can. Do that or. I can get the current time, one. Of the most powerful things you can do inside expressions, is you can use the if conditional, which, allows you to say hey if this, value is equal to something I want to select either a or otherwise. I want to select B so, it's just like if inside. Excel so, our goal with, the expression language was, to make it similar, in concept to what inside. Excel formulas, today, the. Actual language itself, a little different because it's based on a geologic, apps but, the concepts in many ways are similar the. Big difference is that with. Flow we. Are data types are based on JSON, which. Means if you've ever used JavaScript. Or an equivalent language, you. Already know exactly what type of data types we support today so. On the right hand side there if we're talking about the, non textual, data types, we, have floating point numbers boolean, z' we, have arrays and objects, those, behave, exactly like the json types that you're familiar with, we. Even support XML content inside Microsoft flow so if you do have an Allegro C API that returns back to XML you, can actually parse that and convert that into JSON or run an XPath on it, in. Addition to the non-textual, types we, also have a variety of different encodings that we support for Strings so, if you have an API there turns back a base64. Object. Or returns. Back something that's been you or I encoded, you can actually parse and handle that inside a flow as well.
Finally. Whenever, we use strings, inside flow inside, expressions, and you'll see this in a second you, need to use single quotes to wrap that string this is a little different from other, languages where oftentimes as double quotes but. You know it's this thing that's important. For a reason I'll mention in the future, so. One, final note here because. Of data types the string, TR Yui does, not equal, the, token true so make, sure that, you're putting, the proper. Datatypes, in when you're constructing strings directly. So. How, to create expressions so. You saw me click the add dynamic content. Button and, when I did that I got a, dialog, that popped up that had dynamic content, tab there's. A second tab they're called expression, that I can click and, I can fill in an expression there. As. Soon. As I do that, then. I can hit, OK and I, get a expression. Placeholder, placed directly into the action. So. Let's break apart what exactly, that expression looks like so. Let's say for this example I, have, an object that, I have, output from a previous step and it has three properties ID title, and name, and. What I want to do is I want to take the title and I want to replace that, placeholder, which is you know bracket, time with. The actual current timestamp, so. To do that I will use the string replace function. First. You type the the, expression, and you have to understand, how, many parameters, that, that expression, has for, a place there are three parameters the first parameter is the string, that you're, passing in the, second parameter is the string you're searching for in it and the third parameter is the string you're going to go and replace it with. Once. You know what the parameters are you can start filling those in so, for. This search string, I want, to just type in bracket, time now, use single quotes there because, that's a literal that's an actual string that I'm just going to search for. Next. You can use other expressions. Inside of this expression so on the right hand side there I'm going to call the UTC now function that gets the current timestamp on. The. Left I am going to get the body from the from the record, step that actually output those three properties and, finally. You, can dereference, into. JSON objects. As far, as you would like so in this case I have a title, property from. That so, I'm going to use the square bracket syntax you can also use the JSON dot syntax to. Get at these particular properties, so. With, these few steps I was able to construct.
An, Expression. That replaces. Content, with. The current timestamp. Now. One, of the things that is important. To work with in expressions as well is arrays, and. Unfortunately. Inside, flow arrays are probably one, of the most difficult. Things to work with and the reason is there's a bunch of different ways you may want to use an array so. First, of all arrays, can, be composed of many different things I could have an array of strings, or of numbers or of objects, and if, you have an array of objects, and I, want to pass that to another action, the, schema, of the object, may not even match with. The the, between. The source and the destination, so. Sometimes, you have to transform, arrays inside, of can, use expressions, as well as actions to do that, you. Can also use a freshens a disc at a specific item from the list. So. If I want to get the first item from the list or the last item from the list I can use an expression to do that, likewise. You can filter a list down if I want to you know take the set of items and reduce it you can do that as well so expressions, are a great way to deal with arrays but. Definitely, if you're going to be doing some advanced array handling I recommend reading up on our documentation, on the different ways that you can do that. Another. Advanced concept I'd like to talk about briefly is. How. To handle, errors so. Normally, when a flow runs it runs in sequence which means it runs the, first step in the second step etcetera, and if, any of the steps fail all the subsequent, actions are skipped, that. Means that a single failure in a flow if you, don't handle it properly can. Result in your entire business process being terminated, so. What. That what. We've done to, prevent, that from being a problem though is by. Creating air handling actions, so. You can add an action anywhere. In your flow in the beginning in the end wherever you'd like that. Can, run after. A previous, action has failed or has been skipped because, an action above it for example failed. This. Allows you to, create, more, robust, processes, by. Sending. Yourself a notification or, by undoing, a previous action or really.
Whatever You imagine inside, of your flow. So. Now I'll switch, over to, my. Next, demo. And. For, this demo I'm, just gonna modify the. Flow that I created from the first one and what I'd like to do today. When, I created this flow I create, as a button that I could trigger but, I think it would be more interesting, if I could have all the people in the audience trigger this this button to be able to open bugs for us, so. What I'm gonna do is I'm first going to just, remove those outputs from the trigger so I can change it I'm going to change this from a button. Trigger to. A email. Trigger so. I've set. Up an inbox that, I can actually use, to I, get. Ideas. Be submitted, from, you all in the audience and it's. Just in a particular folder that I have here. Flow. Contact, so now this. Flow rather, than listening. To a button now listens to a new email arriving, another email can come from anybody. Next. I can, update. The, approval, action to, use say, the, subject. Of the message as the. Whoops as, the. Title of the bug, another. Thing I want to do is I want to create a live power, bi dashboard that shows me. How, this flow is executing, so I can do that by, pushing, data to, a streaming data set inside of power bi. So. I can search, for power bi here, you can see we have an add rows two data set action inside, of that. Flow, and then. I choose what, power bi workspace in, this case it's. The flow contact, workspace. As. Well as the, data set that I created for this and what, table I would like to stream data into and, when I do this you may notice that we've, gone to, that particular, data set and gotten the columns, from that data set each. Data set may have a distinct, set of fields, but in this case, it. Has these particular fields here that I created for this demo so. For, the name of the person I can pass that in for, the idea I said, that's going to come the subject of the email status. We'll start out as pending, and for. The date that's, when the, email was received. So. That I have added at the beginning of the flow the, other thing that I need to do is add, an action at, the end of the flow to. Push to, the power bi data streaming set when. The. Approval, has been completed. So. I'll add another row, to the data set and. I'll pick the same, workspace. That I, created, before and, the. Same data set and, the. Same table and. Likewise. I'm not going to change the name so. I can come over here you can also search inside. Of dynamic, content so. I wanted. To search for the from, so. When you have a lot of outputs, like I do now you see there's all of these outputs from all these previous actions, it's, oftentimes, much faster, just to search so. I can do a subject and for. The status I am, now going to pass in the status, from. The approval, action, so. I can go and hit the response. And. Now I'm going to use an expression so I've been using this dynamic, content, tab extensively, but I can come over to the expression, tab and it gives me a list of all, of the different options. That I have for, filling in an expression so, for, the date function I want, to get the current timestamp so if I come down here I can see there's. A function called UTC, now that I can call and, I can see what other options I have there's. A lot of them actually we have, over, a hundred different functions, you can call now, but I'm just going to use UTC, now and hit, OK, so. Now that that's been added the last thing I want to do is track the duration of how long it took me to approve this request so. I can do that by writing a more advanced expression, so. This. Expression what I'm going to do is I'm going to subtract to date times, so. I'm going to type sub, as you, notice as I'm building this out we also have intellisense, that shows you the parameters of the. Expression, as you go. So. I'm going to subtract well I want to subtract the, from. The current timestamp and. The. Other thing I need to do is I need to convert the time to tix so, that way I can do that math. Because. You can't subtract, two strings obviously. So I'm taking the text of UTC now and then. The other thing I'm going to do is take the tics of the. Received, time of the email now. In this, popover I can also switch back to the dynamic, content tab and. Find. That received, time that I had. And it will automatically. Drop in the expression, for that, particular. For. That particular output so you see here the, receive time is actually, a property, inside the JSON object. So. I can scroll over there whoops. It. Looks like I lost the outputs there but I can rebuild it real quick. Tics. Okay, so, now if I save, this flow. It. Looks like I have an to valid parameter somewhere so let's take a look and see exactly. Where. That is, oh. I. Had, removed the, the. Subject from here so I'll put that back. And. Yeah you're right it looks like it did i misclicked. Again so I'll try one more time and then if, this doesn't work I'll switch to my. Backup flow.
Dynamic. Content, nope. Killed it again okay. So I will switch to my backup flow now not. That that ever happens, in demos. And. We. Can see. That. I built but one hour ago. And. We can see the expression that I put there. So. You can see. This. Is this, is what it is and, often. Times, you. Can always just, click on this to edit it again when everything. Is working exactly as it's supposed to be so. What I'm gonna do now is I'll turn on this flow and if. You, would like you, can send an email to flow contact, at, service. Microsoft. Comm, and it. Will start kicking off this approval process, so. They again so I can type it on the screen. If. I can type properly, flow. Contact. At service. Microsoft. Comm. So. If you, go there if you send that email it'll. Start kicking off an approval process and. I've, created this power bi dashboard here, that, I. Takes. That data as you go so you see here. It's. Pre-populated. With some of the ideas that I already. Had. Put in but you see somebody put in get, the slide deck for this session and. As people, submit. More ideas this. Will start going so. Now what I can do is I can triage, these ideas by, going to the approvals tab so. That requests about getting the slide deck for this session that should. Actually show up here so, you can see somebody submitted this so, I can improve this because, I believe all the sessions are streamed and fully recorded so I can. Say great idea. And. Hit confirm and if, I go back to the power bi report now because, I push that second, event it, will actually you, see the, approval. Pie grew a little bit more. The. Latency. For doing the approval it's for, that request was at 0.71. Minutes and. You can see there's more requests coming in and yes, we did encounter a bug with the expression builder so we'll work on that so. That. Is how you can build a flow that, uses, a lot. Of different capabilities inside power bi and the, other thing that I wanted to show inside that flow is how. To do an error handling action, so. I can show that at the end of the flow. So. We'll come back and, we'll. Go and add a new step at the action at the end. So.
For This air-handling action, I'm going to send a notification I was. Going to send myself a notification saying hey the flow is failed. And. When I do that I can go up to this dot dot dot menu and up here there's, a bunch of different settings for actions so you can configure you. Know decompression. And the timeout of the action the retry policy the. Other thing you can do is you can configure the, run after so this is how you can make an action that. Runs only, after, the previous action has failed or was, skipped and, when you do that you. May notice that the designer it highlights, that arrow red to, indicate that this particular branch, will only run you. Have the previous actions fail. So. That was building. Out a, flow. That uses expressions. So. For, the final section I'm going to talk a little bit about how you can take those flows and grow them up into logic apps so. With, the flows, today, you, can already call logic, apps directly if you'd like so because flow supports. Calling. Any arbitrary, HTTP, endpoint in the. Flows. You can make, that HTTP, call and you can actually have a flow or a logic, app that has a trigger called request and that request trigger allows you to, receive an HTTP, call and it's. A little hard to see on the slide but that in that gray box there's a URL that you can actually copy and paste and use and, then. You can use that to isolate, logic you can have a pro developer go and build some. Key logic inside the logic app you can call it from a flow, you. Can even have flows call the flows via this mechanism. Likewise. If, I really, want to take a flow and I want to convert that to a logic, app I can do that, by exporting. The flow as a, logic app resource, definition, template so, whenever you go to a flow there's, in that more menu there's two ways you can in fact export, flows one, is by exporting as a package, you, can use to move your flows across environments so. That's useful if you have say a dev environment and, a prod environment, and you want to build your flows in your dev environment test, them out make sure they work and don't encounter errors like I did and then. When, you go to production you can export it and bring that whole package over but. For logic apps you get a simple, resource definition, file and with. That file when, you bring it into the azure portal, you then have to repair, the connections, for that particular logic app because connections. That live inside a flow are tied to a particular owner, or individual, in that environment, whereas, the connections that live inside Asia are, stored in the resource group so you do have to use a new set of connections when, you bring that flow over as. A logic app now. Some, other things to keep in mind is there are some limitations, for, going from, flow, to, azure for. Example, not, all connectors, are available inside, logic outs specifically. The connectors that rely on the flow mobile app are not available so that flow button the flow approvals, and the notifications. Are not, available inside, logic. Apps today so if you're building the process like the last one I showed you that you have to use flow for but, besides that you can really bring any other capabilities over to logic apps that you want. Finally. As I, mentioned you can actually call, logic. Apps from, flow as a, HP, endpoint or as a custom connector now. Custom, connectors, has, a whole dedicated, session tomorrow so, if you're interested about how you can build, connectors. In your organization, or allow. Other, people to call your, ISV. Application. If you have one you. Can do that by building a custom connector so I strongly recommend checking out that session if you find it interesting. Another. Thing you can do is you can embed flow into website so this is a screenshot of me just doing it with one or less. You can actually take, an iframe. Of many. Different types of flow views and put, them into an application so.
If You have your application and you want to create your own set of templates and capabilities, with flow you can actually do that and there's more documentation, at that URL and since, the slides are all will, be posted you could have come to that URL later if you'd, like. So. For my last demo I'm going to just show real quick how, you can take a flow and export. It as a logic app and what that looks like so. I'll, go, back to my list of my flows and, I'll take say a simple flow like the this, flow and I, go to this menu here and I can hit export and, I can export it as a logic apps package and I'll just save, this. Now. When I go to the azure portal, I can, create a resource. From a template by searching. For template in the marketplace. So, I'll select a template deployment, and. Because. I downloaded, that file I can actually just upload, it directly, into the template editor here I don't have to copy paste so I can hit load file and. Select. That, flow. That I exported, and hit save and. Then. I can, give, it a specific resource, group name I. Have. To give my logic app a name. And. It. Will automatically, create those connections for me I of, course agree, to the terms of conditions blah, blah blah and it, will go and start, creating this. This. Logic app from, that definition that I downloaded. So. This can take a few seconds so I can click, on this to see the progress. So. You can see it's deployed, the first connection. And. There we go so it, completed, in you know 10-15. Seconds there and. I can open up that logic app and what, I do notice. That the logic app is disabled, by default and, that's because the, connections, aren't yet configured. So, before, I can actually make this logic app work I have to select edit and open, up the logic apps designer and when. I do that you, notice it gives me those little warnings to indicate that indeed, I have to repair this connection, so, if, single, sign-on is working properly, I click, the sign in link there, and just. Grant it access. This. Creates a connection in this particular, logic. Apps resource, group and. Do the same thing for wunderlist, and. That. Will take a moment as well. And. Then, I, can hit save and now my, logic app is ready to go I can enable this logic app and now it will run instead. Of the flow inside, of the, the. Flow portal that I created and if I edit this you can even go back and see the, full code view, for. This logic app so, you can take this definition you can check this into source control you can do whatever you'd
2018-05-11 03:31