What is Power Virtual Agents?
Power Virtual Agents is Microsoft's offering in the chatbot space. As organizations start to realize the importance of such a service, Microsoft joins the ranks of other vendors providing solutions in this space.
As we have just seen, there is quite the competition going on in the chatbot space, with offerings from all the big players in the industry, including Google, IBM, Amazon, ServiceNow, and others. Furthermore, there are offerings from small, specialized players with solutions tailored for various industries and various degrees of complexity or simplicity.
Around 2016, Microsoft recognized the potential of the bot offering for the masses and began its foray into this space with the introduction of Bot Framework. This was, at the time, a very developer-focused offering, with the ability to build complex bots using languages such as C# and Node.js as the core.
This robust framework was presented in conjunction with the Microsoft Cognitive Services offering, as well as the expansion of Cortana and chatbots into Skype. It is acknowledged that Cognitive Services played a role in the success of conversational chatbots.
The main components of Bot Framework included the following:
- Bot Framework Service (BFS)
- Bot Framework SDK (Software Development Kit)
- Bot Framework tools for development
- Bot deployment and channel configuration
As the resource needs for such a comprehensive offering are great, some Azure supporting services are leveraged, including the following:
- Azure Cognitive Services
- Azure Storage
The adoption of cloud services is now essential for such solutions.
Value to these offerings is provided through services such as the following:
- LUIS – natural language processing
- QnA Maker – answering questions in a natural way
- The Dispatch tool – allows for the selection of the correct tool for each scenario type
- Cards – complex presentational elements that include graphics, menus, and other artifacts to augment standard text presentation and provide a better user experience
The next evolutionary concept revolves around the ability of the bot to provide a REST endpoint to be called by the Bot Connector service. Having the ability to bypass the SDK, you can now create bots with other languages, such as Python. With version 4 of the SDK, support has extended to languages such as Python, Java, and JavaScript, along with the existing C# capabilities. All this was happening around 2018.
Important note
The Bot Framework SDK is in fact an open source SDK. This is a testament to Microsoft's renewed commitment to the community, and a stark contradiction to other organizations' walled gardens of proprietary solutions.
The most common channels supported by connectors include Facebook, Messenger, Slack, Teams, Telegram, Twilio, and many others.
Improvements and new features are continuously being added. For example, in 2020, a new implementation of Azure Blob Storage for better performance occurred, as well as better integration with Azure Queue Storage. Bots talking to other bots is possible through API communication or even through RPA.
Fast forward to the end of 2019, and Microsoft introduced the public preview of Power Virtual Agents for the first time. Wrapped in the Power Platform, it now provides users the ability to create chatbots in a no-code manner. Leveraging Azure AI and a specific toolset for building bots, the aim is to expand creation capabilities to allow citizen developers (your typical business users that do not have a development background), along with IT pros and pro-developers, to create and deploy chatbots with minimal effort and custom coding.
The new offering relies heavily on AI functionality to understand intention from existing conversations without the need to define all possible key phrases. It also relies on other features such as Power Automate to trigger specific actions on other platforms.
Another key aspect is the ability to generate and capture advanced analytics. You can easily track where the bot fails to provide the right answers and easily make adjustments to improve communication. A robust analytics dashboard provides deep insights into engagement over time, outcomes over time, resolution, escalation and abandon rates, as well as, when configured as such, customer satisfaction.
A lot of the analytics we were looking for in a regular customer service agent interaction are now bubbled up and presented to the administrator for the bot interactions. And this being a scripted process, you can easily go in and adjust the process as needed for better results.
The process to create new bots is now streamlined to the point where basic bots can be created by users with no development knowledge. Simple conversational bots can be created, monitored, and optimized by business users. This is part of a trend identifying these users as citizen developers. The bulk of the experience is built around a streamlined user interface that allows for configurable processes.
The developer role in the chatbot space
That is not to say that the role of IT pros or pro-developers becomes obsolete. Developers will always play an important role, especially when dealing with more complex or custom scenarios. The expectation is that developers will start to understand and leverage the tools available in their tool belts and use a no-code approach where possible. The advantages are obvious, with the ability to create processes and scenarios that require less effort to produce, less overhead in future maintenance, and a more streamlined product that protects the assets created from the unnecessary complexity that comes with custom development. This applies across the entire Power Platform and is not something specific to Power Virtual Agents. A configuration-first approach provides the ability to support the created assets in the future with fewer overheads and reduces the need to call upon a technical partner or internal pro-developer resource to support these assets in the future. It generally puts the power in the hands of IT pros, or even less technical and more business-focused people.
An important aspect is the understanding of the technology, best practices, and overall governance. While now we can allow non-developer users the ability to create business value through a no-code approach, we still need to enforce certain rules for better operation of the business assets created.
For those of us coming from the development world, this might sound a lot like the start of a typical Dynamics 365 (CRM) implementation, where a business analyst would start to mock up the requirements through simple configurations. As we've all seen so far, in some scenarios we could continue to build on top of those configurations, while in many other scenarios, we wind up leveraging those configurations only for the initial discussions with our customers and end up starting with a configuration from scratch. It all depends on the level of understanding of the platform capabilities from those resources that were involved in the initial stages of a project.
Overall, as those business analysts become more familiar with the platform, best practices, and overall design, more of what they produce in those initial stages will be reusable down the road.
From a user experience perspective, the bot creation and editing interface is simplified, as we can see in the following screenshot, which shows a brand-new bot I just created:
The left navigational area presents the various category options available, including the topics, the entities our bot will interact with, standard analytics on the performance of our newly created bot, and the ability to publish our bot to a selected channel. The Manage section provides detailed bot configuration options. We will be looking at each of those areas in more detail throughout this book, as we begin to build specific bots to serve various purposes.
The next area to the right of the navigation is the Test bot panel. This is where we can run and interact with our bot as we are building it, allowing us to validate the logic and the expected behavior. We can always show or hide this area as needed. Typically, we will keep this section closed to maximize the edit area while we are building our bot logic.
Finally, the right-most area covering the majority of the screen is the editing area. While on the Home area, this will present various details on how to get more information about building bots. This is a great place to start when learning about bot creation, as it provides links to the most relevant learning materials available from Microsoft.
As you move through to any of the other categories, you will find you are able to configure the details of the bot behavior. Again, don't worry if you are unfamiliar with these options at this time; we will inspect and analyze each of these options throughout this book.
Note that at the time of writing, there are two distinct scenarios envisioned for Power Virtual Agents. They are presented as the following versions:
- Power Virtual Agents web app: This is meant for creating bots that will integrate into existing or new web applications or mobile applications. This is what we saw in the previous screenshot and is aimed at users creating bots that will interact and engage with customers. These are, for the most part, publicly available bots. Of course, there is nothing stopping you from creating and presenting these bots on an intranet portal to internal users and taking advantage of internal authentication, as we will see in Chapter 6, Handling Authentication and Personalization.
- Power Virtual Agents Microsoft Teams app: This is meant for supporting existing employees of your organization. By definition, they are not exposed publicly and are only aimed at supporting your staff, team members, or any other internal resources. In many cases, you can leverage existing Microsoft 365 licensing, which includes the standard Office functionality along with several cloud services such as SharePoint, OneDrive for Business, Exchange, Teams, and others.
We will see throughout the book how to build bots for both these scenarios and will gain a better understanding of the differences.
Now we know what Power Virtual Agents is, let's look at its value and benefits.