- Coming up, I'm joined by
Product Lead Emma Archer, to take a look at how you can
now use Power Virtual Agents to create intelligent chatbots
directly in Microsoft Teams. We'll also show how the integration with the bot framework composer
lights up new capabilities for building even richer
custom experiences. So Emma, welcome back to the show. - Thanks Jeremy. It's great to be back. And thanks for joining us from home today. So, before we get into this, if you're new to Power
Virtual Agents the service, or PVA as it's called, it's part of Microsoft's Power Platform, and it really gives
you a zero-to-low-code, AI-rich way to build intelligent chatbots. In fact, we did an introduction
to Power Virtual Agents just a few months back that you can watch at aka.ms/PVAMechanics. So Emma, what have you and
the team been focused on for the latest round of updates? - Well, with so many of
us working remotely today, it can be harder to get
your questions answered. So we've been focused on how we can expand the use
of Virtual Agents to help. Many of us are using Teams as
our collaboration platform. So one of the major updates is the integration of
Power Virtual Agents. This gives you an instant
bot authoring canvas to build intelligent
and responsive chatbots without even leaving Teams. And the good news is,
that Power Virtual Agents is included in your Teams license. - And just to put this into context, we've had the ability to
create simple bots in Teams for a while now, but this takes things
to another level, right? - It does. If you're one of the millions
of Teams users today, you're probably predominantly
using it for chat or online meetings. With Power Virtual Agents, you can build custom
virtual chat experiences to engage with your team. For example, as a manager
or an HR professional, you can quickly build an
FAQ chatbot for Teams, or maybe you want to address
frequently asked questions about returning to work
during this time of COVID-19. Or if you're in IT, you can save time by creating
intelligent service desk chatbots that triage common IT questions. - Great, so can you show us an example? - Absolutely. So I'll start by showing you
an example of the chatbot that I've already built, and then I'll show you how
easy it was to create it within Teams. I have here, a HR assist
chatbot that enables employees to ask questions about
time off, public holidays, how many days do they have left, etc. So I'll type 'want info
on national holidays.' And you see it shares that information. Let's try something harder. I'll type 'how many
vacation days do I have?' And it asks me to choose
between national holidays or paid time off. I'm going to choose paid time off. And it looks like I've got zero days left. - Yeah. And that was totally
natural interaction there. And there's obviously though a lot happening behind the scenes, including some integration
then with your user profile, maybe the backend HR system that can track your vacation
days that you have left. Unfortunately, zero at the moment. But, how did you build all this out? - It's pretty simple. Really, anyone can author
chatbots like this. First, let me tell you how
to get Power Virtual Agents for Microsoft Teams. You go to the app store, or
you can click on the ellipse and search for Power Virtual
Agents, click on add for me. And here's the app in the nav bar. Let's pin it so it's always present for quick access. From here, I can go ahead
and create my first bot. So we'll click start now. I select my team that I
want it associated with. I want this one and we'll click continue. And now I can give my chatbot a name. Let's call it HRassist, select a language, and that's it. I have my chatbot and I'm
ready to start adding content. - Okay. So that looked pretty simple, but how easy is it to build then that interaction that we saw earlier? - It's super simple. Here's the Power Virtual
Agents left-hand nav. Let's expand that out
this first time through so you can see. We're going to the topics list page, and you can see that the chatbot comes with some out-of-box content, a few sample topics
and some system topics, which are pre-built responses like a standard welcome
or goodbye message. And I'm going to create a new topic that focuses on time off. I'll click on the plus, the new, give my topic a title,
'Employee time off,' and add a few trigger phrases. What are the national holidays, need info on time off, how many vacation days do I have, I need help with time off. Now, I'll go to the authoring canvas and we can see trigger
phrases here at the top. And I can populate this
message node with info pointing the user to an internet site that's got info on paid time off. Keeping it very simple to start with. So I'll paste in the message with the links for further information, I'll save it and we'll test it. Let's type, where do I go
to get info about time off? And here you see the bot
is providing a response. - And that's really a great option to just get users the
information that they need as fast as possible. But how did you create that
more complex interaction that we saw earlier? - Yeah, so that's the beauty of PVA. Your chatbot uses AI to make
decisions and take actions. I'm going to delete that
message node that we had there. And instead, I'm going to ask a question. We're going to ask, what
info are you looking for? And that's going to present two options. I'm going to present national
holidays and paid time off. Notice that the dialogue
has automatically branched creating two conditional nodes for us. And now I'm going to go ahead and store the user
selection as a variable. And I'm going to call that leave type, so we can more easily
track it in the topic. For national holidays,
I'm going to go ahead and add the content here directly. Now for paid time off
I want to do a look up in our HR app and see how many vacation
days I have remaining. And for this, I'm going to add an action, that calls a Power Automate flow called get vacation balance to do that look up, which I pre-created here
in the interest of time. And if you've not used
Power Automate before, it gives you access to hundreds
of pre-built connectors to connect to existing apps and services. - So, do you need to do anything then to specialize or personalize
the response to the user? How does it know for example,
who was making the request? - Well, because the user's
already signed into Teams, we know who they are, we know their alias, etc. So we can use that
information as an input. You can see, it takes
the user's display name as an input here, and it returns the variable
balance as an output. Let's add a message node to
output that info to our user. 'You have X days remaining.' Okay, we're ready to save and test it. And we'll enter, 'we want
info on national holidays,' and you can see that
the bot is smart enough to skip over that question and instead directly display the national holidays. - Wow, that is smart. So, as I recall though, it's using a capability that's
called Entity Slot Filling, really to skip over the questions that it already has answers for. - That makes the
conversation more streamlined and efficient. Now, let's also test the vacation days portion of the dialogue. I'll reset and I'll type
'need info on time off.' And you can see it's calling a flow, doing the lookup based on my user details. I'm going to choose paid time off and you can see, ah, I've
got eight days remaining. - Nice. And that's so much better than having zero days left. So what else can you do then
to customize the chatbot? - This is where Power Virtual
Agents becomes a bridge between your business users
and professional developers who can build out even
richer experiences for you. - Okay. But we've had the
ability for a while though, to call a bot that we created
using the Azure Bot Framework as a skill from within PVA before, right? - Yeah we have, but this is different. We've just released to public preview our deep integration
of Power Virtual Agents with the Azure Bot Framework Composer. - Okay. So what are some of
the things I can do there? - You can author much richer experiences, such as adaptive dialogues that give you a way to code
complex event-driven dialogues. For example, you want to look up a flight and you want to see
what the weather is like in that location at the same time. And the bot can easily switch
contexts mid-conversation and then switch back. Or language generation that dynamically varies
the chat responses, so they appear less robotic. Or adaptive cards that give
you a rich, interactive display and enable you to incorporate
images and videos. - That sounds pretty amazing. Can we see a few of these in action? - Sure. So I asked Salem,
a ProDev colleague, to build out a Bot
Framework Composer dialogue to collect pertinent information about extended leave requests. So let's walk through what he did. On the topics list page you can click, open Bot
Framework Composer to launch it. Now, if you haven't already installed it, it will install it for you from GitHub. Here it's pre-installed. So now it's starting to import
the bot content from PVA over into Composer, and it will prompt you to sign in the first time you do this. Here he's going to add a
request leave dialogue, specifically for folks needing
to take a longer leave, say for medical purposes. You can see here that
he's already prebuilt an intent trigger, which
fires upon detection of one of the trigger
phrases: request leave, extended leave, maternity
and paternity leave. Now Power Virtual Agents
natural language understanding is being used for the intent recognition behind the scenes here. This is going to call a new dialogue that will present an
adaptive card to the user asking them to provide the from
and to dates and the reason, and then to click on
submit when they're done. And that will call a Power Automate flow to notify the HR specialist that there's a new request to approve. And here, you can see
he's adding a response that goes back to the
employee to let them know that the request has been
sent to the HR specialist for consideration. You can see here, these are
the bot responses he's created. This is where he's
sending the adaptive card and this is the adaptive card he created to send back to the user. So now, he's going to publish
those changes back into PVA. And once that's completed,
you can see here the request leave trigger and the request leave
dialogue imported into PVA, and now it's integrated and ready to use. - Okay, great. So how then do you make the chatbot available within Microsoft
Teams for other people to discover and use it? - So that's our final step. Let's navigate over to publish, click on the publish button and confirm, and that's going to
propagate out our content that we've just added
and make it available. We're also going to click
on the,share the bot, and this is how we make
it visible to other folks within the app store. We have a couple of options here. You can see submit for admin approval. If that's approved, your
bot will be made available across an entire tenant, so that everyone in your
organization can use it. Or more commonly you'll
want to do add to Teams. And this makes the bot visible in the share with colleagues
section within the app store. We're going to share with
our team for demo purposes. So let's close that and
navigate out to the app store to show you where to find it. We click on the ellipse and more apps. Then under Built for Contoso, you'll probably see your
own company name here, and we'll scroll down to the bottom. And there's a section
here you can see called built by your colleagues, and you'll find it here. You want to install it and
pin it to the left-hand nav. - So I'm going to actually try this out. First I'm going to make a request, and it looks like I'm out of vacation days like you were earlier. And I need info then on extended
leave, so I'll ask that. Now the bots can actually prompt
me for a form to complete. And you can see it's
asking me to provide things like the from and the to
date range, and a reason. So I'll say medical procedure,
need time off to recover, and then I'll hit submit, and that's going to go to
an HR specialist for review. - So now I'm logged in
as the HR specialist, and in the HR specialist channel I can see your request has
come in and I can review it. Everything looks good. So I'll hit approve. So you've seen how easy it is to create a new Power Virtual
Agents bot in Microsoft Teams. You can start simple and add
intelligence as you need to. And you could even extend
it with custom capabilities, leveraging the Bot Framework Composer. - It's awesome to see both the integration of Power Virtual Agents
with Microsoft Teams and also the new integration
with Bot Framework Composer, but for the folks who
are watching from home, where should they go to learn more? - Yeah. So you can either go directly to powervirtualagents.microsoft.com or you can install it from Teams as we showed you by searching
for it in the app store. - And for those of you joining us online, thanks so much for watching, that's all the time we
have for today's show. Subscribe to Microsoft
Mechanics if you haven't already and goodbye for now. (upbeat music)