Simon Bisson
Contributor

Ease into AI with Microsoft Flow

analysis
Jul 02, 20196 mins
Artificial IntelligenceMachine LearningSoftware Development

No-code connectors to Azure Cognitive Services make it easy to get started with artificial intelligence

ai artificial intelligence circuit board circuitry mother board nodes computer chips
Credit: Getty Images

Microsoft’s Power Platform has become a significant part of its developer offering during the past few years. Perhaps best thought of as the modern equivalent of the 1990s client-server applications and tools like the original Visual Basic, the Power Platform is a family of rapid application development tools intended for a mixed audience of both developers and business analysts.

Power Platform is built on the Common Data Model at the heart of the Dynamics line-of-business systems and on the workflow automation of Azure’s Logic Apps. It offers a mix of tools for building internal enterprise applications that deliver information to user desktops and devices. There are three key developer-facing tools in the Power Platform: Flow, Power Apps, and Power BI. Each supports different audiences, but they also fit together to give you a business information processing pipeline, from core systems at one end, to desktop dashboards and mobile applications at the other.

Using Flow for microservice workflows and integration

At the heart of that pipeline is the low-code, serverless Microsoft Flow. Much like Logic Apps, Flow offers a set of building blocks that can be connected to respond to a trigger and deliver an input to another application. For example, I have a Flow that connects my Office 365 calendar to Google Calendar, updating the Google Calendar when I add new appointments to Outlook, so they’re accessible by the Google Assistant on my Android phone. Another links to the third-party IoT IFTTT (if this, then that) service to change the color of the Hue bulb on my desk lamp when my name is mentioned in a Teams channel.

It’s a development model that works well with modern microservices, providing a way to quickly link one API to another, either using a prebuilt connector or a custom webhook. The two services don’t need to be designed to work together; all that’s needed is a published API. Any data transformation needed can be handled in your Flow. Connectors come in two forms: standard and premium. Standard connectors are available to all users, even on the free tier. Premium connectors require a subscription and include the connectors needed to work with many popular third-party key business applications such as Salesforce.

Using Azure Cognitive Services in Flow

Microsoft regularly adds new connectors to Flow, and recent releases included access to several of Azure’s Cognitive Services. These connectors allow you to quickly incorporate machine learning in your apps, without having to construct and manage what can be complex REST (Representational State Transfer) API calls. Currently Flow supports elements of the Computer Vision, Content Moderator, Custom Vision, QnA Maker, and Text Analytics in its preview Cognitive Services.

Using Azure Cognitive Services in your Flow is easy enough. Start by getting a Cognitive Services account key from Azure, since Azure will bill you for the services you use, and the key is needed to authenticate access to the APIs. Your Cognitive Services account will give you the root site URL for the service and region you’re using, which needs to be added to your connector; if you don’t set a site URL the service will default to West US, which can have significant latencies outside the United States. Once you’ve connected your Azure Cognitive Services account to Flow you can start using them in your apps.

Flow supports two types of endpoint: triggers and actions. Triggers start a Flow. Actions are an endpoint for a Flow, acting on data that’s generated by a Trigger. It’s not surprising that Flow only supports Cognitive Services APIs as Actions, as these services are not designed to source events or messages, only process data delivered via their APIs.

Building intelligent apps in Flow

There’s a lot that can be done using these connectors, which give you access to the same features as the full Cognitive Services APIs but without writing any code. It’s easy to imagine the types of Flow you could build too, using the Computer Vision connector to take uploaded images from a Dropbox folder, process them using its OCR-to-text service, populate a Word template with the recognized text, and then save the resulting document in a SharePoint folder. It’s the type of app that anyone could put together in a few minutes, using the online Flow editor. Alternatively, you could use the Text Analytics tool to determine the sentiment and key terms attached to tweets sent to your corporate Twitter support account, giving you an early warning of problems with a product.

Flows like these don’t need to be full-fledged applications put through the entire development lifecycle. They might be tools that one person needs, or tools that have a limited lifespan, or even proofs of concept for a larger-scale application that would need significant development resources. That Dropbox to OCR app could be the prototype for a service to digitize documents from a field service team, with the aim of reducing the time needed to process job paperwork. Put together as a Flow and rolled out to a small group of testers, it gives you a quick way to run a live proof of concept before writing a full project specification.

Getting a quick start with templates

Microsoft provides prebuilt templates for common use cases, giving you a way to try Cognitive Services before building your own or to use as a base for your customizations. One of the templates, linking Twitter to Text Analytics and using Power BI as a dashboard for additional analysis, is a good example of what can be done using elements of the Power Platform, showing how a Flow can be used to prepare a data set before it’s analyzed in Power BI, taking advantage of Power BI’s support for streamed real-time data.

Tools such as Flow (and the related Logic Apps) are a useful way to implement simple apps that link disparate microservices. There’s no need to think about infrastructure, only the services you’re using as triggers and actions. As an abstraction of common distributed application design patterns, it’s a useful way to work, especially if you’re building an application that won’t get a lot of demand or where it’s hard to justify more development resources.

Adding machine learning to Flow gives you more tools for processing data as it passes through a workflow, either deriving insights or transforming content. Using Azure Cognitive Services this way gives you access to both pretrained and, in the case of Custom Vision, custom models. It’s a combination that should get you working with machine learning apps a lot more quickly than traditional development techniques, developing skills and concepts that can be used across your entire business.

Simon Bisson
Contributor

Author of InfoWorld's Enterprise Microsoft blog, Simon Bisson prefers to think of “career” as a verb rather than a noun, having worked in academic and telecoms research, as well as having been the CTO of a startup, running the technical side of UK Online (the first national ISP with content as well as connections), before moving into consultancy and technology strategy. He’s built plenty of large-scale web applications, designed architectures for multi-terabyte online image stores, implemented B2B information hubs, and come up with next generation mobile network architectures and knowledge management solutions. In between doing all that, he’s been a freelance journalist since the early days of the web and writes about everything from enterprise architecture down to gadgets.

More from this author