(bright upbeat music)
- Up next, we'll look at updates
coming to Power Virtual Agents,
our low-code bot creation service
that's part of the Microsoft Power Platform.
Now, we'll show you how this single environment
enables fusion teams of citizen and pro developers
to author bots that are more engaging,
with dynamic custom greetings
in addition to quick replies,
and more sophisticated and visual through adaptive cards
along with deep Power FX integration
to dynamically adapt bot responses using variables,
as well as new native telephony integration
that gives your bot a voice.
And I'm joined today by Gary Pretty
to walk us through all the updates
from the Power Platform team.
Welcome. - Yeah, thanks so much.
It's great to be here.
- Glad to have you on,
because we've been following the Power Virtual Agents story
for a while now, and it's evolution.
We recently actually had Lili Cheng on the show,
who leads conversational AI at Microsoft,
which you can check out if you missed that
at aka.ms/TeamsPVA.
Now at the time, she actually alluded
to how fusion developer experiences will get better
in the next round of updates
so that citizen developers
can more seamlessly collaborate with their peers
as pro developers on projects.
- Yeah, and it's really incredibly important
because today five out of six organizations
have what we would call fusion teams.
So we really are laser focused
on making sure that pro developers, citizen developers,
and the other disciplines can work together collaboratively
to build out their bots.
- I know that in the past
we've had two distinct tools for building out chatbots;
one of those is Power Virtual Agents
which citizen developers could use
for a low-code experience.
Then we also have Azure Bot Framework Composer
for more custom code targeted professional developers.
And both environments were integrated, but separate.
So what changes now?
- Well now we've got a brand new unified authoring canvas
built from the ground up.
It combines the intuitive authoring experience
that PVA is known for,
with the advanced capabilities of Bot Framework Composer.
And it gives fusion teams a single bot building platform
that spans the breadth of business
and technical skill set requirements
to author powerful next generation bots.
Importantly, if you're a pro developer,
you can better take advantage of the advanced feature set
that gives you the control you need.
You don't have to choose between the two different tools,
and there's no infrastructure or resources to provision
thanks to the PVA SaaS service.
- So this is really the best of both worlds then?
If you're a pro developer you're not limited,
and citizen devs can more easily improve
their bot building skills
and also bring in experts when they need help.
So I'd love to try this out.
And I kind of consider myself a citizen developer,
and you know, I've started building out a customer-facing
airline bot, and I really wanted to be able
to answer some simple questions
and really complete some simple tasks.
So I've built a simple topic
to let the customer check the status of their flight.
And it asks a couple of questions, you know,
to ask for things like the flight number and also the date.
And I'm calling Power Automate, as you can see,
to get the status information.
And then I have added also some conditions here
to send the appropriate response back to the user,
and all this was pretty easy and pretty familiar.
And something else that I noticed
was just how much easier it is now to build bots,
because I can use my favorite Windows commands
like cut, copy, and paste from the toolbar right here,
or even use keyboard shortcuts if I want.
- Yeah, that's right.
Cut, copy, and paste
are just one of the broader set of improvements
that we've made on the new unified authoring canvas,
to make authoring as efficient as possible.
Another thing you should try out
is the new Topic navigation experience.
- Okay, sounds good.
So right now, I've noticed that's a lot easier too
because instead of moving back and forth
between the Topics page to go between different topics,
now from the authoring canvas,
I can just use this drop down here and it's so easy.
I can go between the topics now.
So I can move to the Confirmed Success topic.
Now I'm going to go back to my Flight Status topic
and it's just that easy.
- Yeah, absolutely.
Another thing you should do is take a look at the properties
on one of your question notes
and you'll see how we're giving you even more control there
as well. - Okay, so I'll try this out.
So I'm going to go ahead and look at this note
and click on the ellipse,
and then I'm going to open the properties.
And wow, there's a lot more that I can do now.
So I can even control what happens
then if a user enters an incorrect answer to a question.
So in this case,
what I want to do is customize the retry message.
So if someone provides an invalid answer,
you know, maybe I'm asking for a flight number
and they just input the airline name pretty common, I think,
I can just paste in a message like,
'Oops, that doesn't look like a flight number.
For example, I'm looking for something like 173.'
Now, I'm guessing there's even more I can do
to make my bot even more engaging
in terms of the experiences.
So what can I do to take things then to the next level?
- Yeah, sure.
We really are just scratching the surface
as to how we are improving that low-code experience
and enabling advanced authoring.
Let me show you a few more low-code capabilities
that you can add to the bot that you started.
Right now I'm in the greeting topic,
where the simple message to greet the user
when they start a conversation with the bot.
It would be good to make this a little more engaging though,
and I can do this with our new rich responses feature.
First, I can now add an additional alternative message,
where one will be picked at random
when the message gets sent.
This is great because customers will likely engage
with this bot multiple times.
So this helps to solve the problem
of the bot sounding too rigid or too stale over time.
Next, for users chatting via text with the bot,
I can now easily add images and videos to my responses.
Here, I just provide a URL pointing to my Contoso logo,
and I immediately get a preview
of how that will be displayed to users.
Another good way to improve the customer experience,
especially on greeting messages,
is to help users understand what the bot can do
and what they might ask for.
And I can now add quick replies
which show up as suggestions for users.
Here we can add a quick reply for the top two reasons
users will speak to this bot:
check flight status, and book a flight.
Now these are great updates
to greatly improve text-based interactions,
but we also want to make sure the experience over voice
is just as good.
Switching to the speech tab on the message note,
I can now provide tailored responses
that will be used on voice-enabled channels.
You can see here that I'm thanking the user for calling,
and including those top two suggestions to guide users
as to how they might answer.
I can even include SSML
or Speech Synthesis Markup Language,
which helps further control how the message is spoken
with things like short pauses or breaks, word emphasis,
or prosody for better intonation.
And just like that, in just a couple of minutes,
we've made a meaningful difference to the user experience
by updating just that single response.
- And this is really powerful because I think in the past
it would've probably taken a professional developer
using tools like the Bot Framework Composer.
- Absolutely, we're taking those advanced capabilities
from Bot Framework Composer,
and we're combining them with that intuitive,
low-code experience that PVA is known for,
so that it can be used by anyone.
For the voice authoring capabilities that I showed,
this goes hand-in-hand with the Dynamics 365 voice channel
that's already generally available,
and allows for the creation
of conversational, voice-enabled bots.
Meaning you don't need to be an IVR expert
to bring voice capabilities to your bot.
And we're going even further now
with new native telephony capabilities, right within PVA.
- Awesome, but I want to go back to our
telephony integration that you touched on earlier
for the developers and admins who are watching.
But first, I feel like I've kind of reached my limit
with the check flight status topic,
and I think it could be enhanced, you know
with something like an adaptive card.
So how can I get help from you, as a pro developer,
to add that to my bot?
- Right, sure. So you could just use
the built-in commenting capability within PVA
and @ mention me, and ask me for my help.
- Okay, let me try this out.
So I'm going to go ahead and add a comment.
I'll @ mention you.
Now is this going to then send a notification to you?
- Yeah, because this is all integrated with Microsoft 365,
I just got an email notifying me of your comment.
I can jump to that comment in the bot
and even reply to you if I want to.
I'll clear out the original message
and I'll add an adaptive card using the Add menu.
Because I've already designed the card
on the adaptive cards website,
I'll copy the JSON to my clipboard.
And if I jump back to the Power Virtual Agents canvas,
I can paste it straight in.
And that gives me a preview of the card.
And just like that you, as a citizen developer,
and me as a pro developer,
have collaborated to improve the bots experience.
- And all these updates really show
that the adaptive cards are a lot easier to add.
So is it possible then for kind of the contents of the card
to be dynamic as well?
- Yeah, so that's where our work
to deeply integrate Power Fx,
our Excel-like formula language
already used elsewhere in the Power Platform,
really comes in.
Power Fx now underpins the entire variable system
for Power Virtual Agents.
And we've added a new formula editor into the canvas
which I can use to arbitrarily assign values to variables,
write custom condition logic, and in this case
I can use it to create a dynamic adaptive card.
By choosing to edit my card as a formula,
the JSON is automatically converted into a Power Fx record.
And I can use the formula editor
to reference the variables being used within the topic.
In the interest of time,
I'll paste in an updated version of the record
which I've already amended, and you can see here
that I've referenced our flight details.
We want the same status card to be used for all statuses.
So I can even simplify my logic
by copying and pasting the message note
and removing the condition.
Now I can save my topic
and test that my card's working correctly.
I'll enter the flight number, the date I want to check,
and there it is, our new dynamic adaptive card
to show the flight status summary.
- Good stuff. So what I'm seeing here
is that we've basically taken something
that would've required professional developers
really making it available to everyone.
So what you also did though,
was you've uplifted kind of the pro dev experience,
in terms of integrating more Power Fx?
- Yeah, exactly.
And because it's Excel-like in nature,
anybody who's familiar with formulas,
whether they're a pro developer or a citizen developer
can get up and running with this.
- Okay, so now we've built and tested out
our experience here within a new unified canvas,
including tailored messages and also voice scenarios.
So why don't we come back to our topic
of telephony integration and see what's possible there?
- Right, I mean, there's a lot to talk about here,
but first let me show you how quick and easy it is
to connect a phone number to your bot and give it a voice.
I'll head over to the Channels page
and select the new Telephony channel,
where I can connect an existing phone number.
I'll select my Azure subscription
and my Azure Communication Services resource.
Then my phone number type, in this case, it's PSTN.
And this lets me see what numbers are available to me
to connect my bot.
In this case, there's one listed.
I'll select it and hit connect.
And that's it.
The phone number is now connected
and my bot is ready to answer phone calls.
The next thing I want to do
is go to the Speech Settings page,
where I can configure the bot's voice.
Now you can choose
from a wide variety of voices for your bot
powered by Azure Cognitive Services.
I'll pick one,
and now I can even choose specific speaking styles
such as customer service,
which might be a good one to use for our scenario.
And that's it, our bot's now ready to be called.
- Okay, so as you can tell, I'm ready to try this out.
So I'm going to go ahead
and call Contoso Airlines customer service here,
and I'll go ahead and turn the speaker on
to make sure that everyone can hear it.
And it's ringing now.
- [Contoso Bot] Hi, thanks for calling Contoso Airlines.
In just a few words, tell me how I can help you today.
For example, you could say 'check the status of a flight,'
or 'make a new booking.'
- Check the status of a flight.
- [Contoso Bot] Sure,
I can help you check the status of a flight.
What's the flight number?
- Flight 73.
- [Contoso Bot] And for which day
do you want to check status for?
- For tomorrow.
- [Contoso Bot] Good news, Flight 73 is currently on time
and scheduled to leave Seattle-Tacoma Airport at 2:30 PM
and arrive into Atlanta at 5:45 PM local time.
- I'll go ahead and hang up.
And that's really great news.
You know, this is pretty fluid,
and it really sounded natural with the voice that you added
when you were authoring your bot earlier.
- Yeah, and this really is just the tip of the iceberg.
We're also adding capabilities
to make sure that your bot shined over voice,
such as silence detection,
where a bot can detect if the user stops speaking
and connect accordingly.
And we'll now allow you to connect your bot
with existing contact centers, so that your customers
can be rerouted to a live agent if needed.
- That's a really great update.
So for anyone who's watching right now
and looking to try this out, what should they do?
- Sure, so you can register today
for the technology preview
to get hands on with the new features yourself.
And first-time PVA users
can also take advantage of a new limited time pricing offer.
You can get all the details on our blog over at
aka.ms/PVABuild22.
- Thanks so much Gary, for joining us today
and also showing us all the updates
for Power Virtual Agents.
Of course, keep watching Microsoft Mechanics
for the latest in tech updates,
and be sure to subscribe to our channel
if you haven't already.
And as always, thank you for watching.
(bright upbeat music)