[MUSIC]
>> Hi. Thank you for watching this video.
Today, we will talk about how you can extend
your Power Virtual Agents with Bot Framework Composer.
I am Marina Kolomiets,
the Senior Program Manager on Power Virtual Agents team.
I will give you this presentation today.
We will talk about what Power Virtual Agents are,
and how they can be used by
both business users and developers.
We will talk about the general availability of
this great feature of
Bot Framework Composer integration
as Power Virtual Agents.
I will give you a brief demo of all the goodness
that this integration brings to the table,
and in the end, I will share
some resources and references for your use.
What is Power Virtual Agents?
Power Virtual Agents is basically
a SaaS-based, bot-building experience
that empowers absolutely everyone,
Citizen Devs and ProDevs,
to create enticing rich bot experiences through
no-code interface or any other AI experience need.
We have been in GA since December of 2019.
However, very often, we see that
our users are actually working in teams with developers.
The actual situation in the market is the fusion team,
where there are business users and subject
matter experts sharing their expertise
with developers and together
our customers are implementing rich solutions.
To address this need,
we have implemented the feature that allows
you to extend Power Virtual Agents with Bot Framework,
and this feature is in
general availability starting today.
What does it mean? It means that
inside of your Power Virtual Agents experience,
you can click on the button and
open a Bot Framework Composer. It is free.
It is free, it is in GA,
you don't have to pay extra for it,
it's simply available right there at your fingertips.
Open your Bot Framework Composer, code up.
It's a full power Bot Framework SDK.
Use Adaptive Dialogs, use Language Generation abilities,
Adaptive Cards, Hero Cards,
everything that Bot Framework
can compose and brings to the table,
you pretty much can use.
Very important, out of Composer,
you do not publish whatever you
created to an Azure Instance, no.
You publish it directly to Power Virtual Agents,
and everything you just
create lives together with the rest of
your Power Virtual Agents content and runs together with
the rest of your Power Virtual Agents content.
There is no separate management experience,
there is no separate Azure Instance to manage,
there is no separate Azure bill to pay,
you pay a single PVA bill.
What is it that you can actually do with
Power Virtual Agents and
Composer integration at this time?
Well, you can use Adaptive Dialogs which
are event-driven dynamic dialogues,
which basically allow you to
traverse your dialogue in any direction,
use interrupts, and create event-driven dialogues.
You can use Language Generation abilities
which give you response variance for your bot,
rich responses so your bot does not need
to sound scripted or robotic anymore.
You can also use a whole belt of prebuilt functions,
which you can access through Language Generation ability.
Adaptive cards, Thumbnail cards, Hero cards,
all the rich UI available in Bot Framework,
is now at your fingertips with this integration.
Of course, you can connect
your external and internal data sources
by HTTP invocations.
You can use two types NLU,
either Regex or PVA NLU
in Composer for Power Virtual Agents.
By default, you will be pointed to use PVA NLU.
But if you wish, you can switch to Regex's file.
You can access and update
Power Virtual Agents variables in Composer.
It basically created a new scope for you in
Composer called a Virtual Agent.
You can call Composer dialogues in PVA and vice versa.
You can also call PVA dialogues in Composer.
It's a two-way integration
getting more and more seamless.
Last but not the least,
you can create your own Telemetry in
Bot Framework Composer dialogues by using AppInsights.
We do support AppInsights in this integration.
But let's see a short demo of
everything that this integration
of this Bot Framework Composer
could actually bring into PVA.
For this demo, I set up
a Bot for Contoso Meal Delivery Service.
This bot can already talk about a few things.
It can tell you what meals we have,
it can tell you what the daily specials are,
so let's give it a try.
A lot of this bot has
been already created through the Composer.
Let's see what we have in this bot.
"Hello, how can I help you?"
What meals do you serve?
Let's see.
It's asking me for the city and then it's going
to invoke Composer stuff.
I am actually in Redmond.
Okay. For Redmond, they have three meal options.
This Adaptive Card has been
rendered in Power Virtual Agents
through the Composer integration.
Do you have any specials?
That's another Composer element.
Yeah, they do holidays.
There is a discount for holidays, that's great.
I would like to extend this bot with another element.
I would like my users to be able to sign up
for a free trial for delivery service.
Now you can do this through Bot Framework Composer.
In the Bot Framework Composer,
I would like to open my
Bot Framework Composer first.
As you can see,
you can see all the elements of
the bot right there at
your fingertips in Composer itself.
I would like to create a new trigger
that would respond to my request to
start a trial for the service.
I have created a new trigger and I'm going to
enter a bunch of trigger phrases there.
You don't need to enter that many trigger phrases,
but as long as you give
enough variation, it's going to work.
These trigger phrases will not be run by LUIS,
they will be run directly by PVA NLU.
So you don't need to have LUIS Service,
you don't have to have LUIS Key to use this feature,
and you don't get to pay for LUIS calls.
The next step, I would like to create
a little form that I would require my users to fill out,
and that would be an Adaptive Card.
This is submit button.
This is my Adaptive Card,
you see how every element of data has its own ID,
like name, weeks, an address,
and I will use this ID key to actually extract this data.
There's a submit button that's clicked by the end user.
But let's actually build up a dialogue.
Here, I'm going to display my Adaptive Card,
and I'm going to do it by directly pointing it here.
That's great. That should do it.
Great. This Adaptive Card has a submit button
so I need to figure out the output.
I want to put my output into the user's scope.
Remember that ID that I set up in the Adaptive Card,
so I'm going to use it.
I'm going to extract it from
turn.activity.value by that ID.
This is how you deal with cards for submit button.
See one of them was Name with a capital letter.
But my card actually had two other pieces of
information that it had user's address.
It also had user's trial period.
I need to get these out of
the card as well and this is how I do it.
I'm going to use Set properties, element in Composer,
to add them to the user scope.
How do I reference them in the Adaptive Card?
The same way. I'm going to use Activity Scope,
turn.activity, and look it up by values.
In this particular element of the dialog,
allows me to set up multiple properties
at the same time so it makes it easier.
We got the address going.
We need to extract the sign up period,
and that's a number, that's very
important so that the values should match.
Again, turn.activity.value,
and the ID of that field in that Adaptive Card.
Great. I've done it.
Additionally, I'm going to have
a response in my dialogue,
basically confirming that we have registered UDA user,
so let's write it up.
Username. Thank you for starting the trial with us.
The trial is for X amount of weeks,
whatever the user put in.
The last element should acknowledge
that the food will be delivered to a certain address,
and I have this address extracted
in the user address variable.
That's great. Sounds good.
Additionally, in this particular dialogue,
I would like to invoke a Power Virtual Agents topic to
take the customer satisfaction survey,
basically, which is end of conversation.
My dialogue is down and let's
actually upload it directly to PVA.
You're not uploading into any Azure Instance,
you're uploading it directly to PVA.
It's going to take its own sweet time
to publish and there is
a log for you that you can use to
see if anything went wrong.
I think this case, everything's been just right.
Let's check it out.
I can already see that my StartTrial,
the element that I created in Composer,
is now in Power Virtual Agent with
the triggers that I created and it is
represented as a normal Power Virtual Agents topic.
Let's give it a try. How does it
actually work in Power Virtual Agents?
I want to start a trial.
You can phrase it whichever way you want,
it's going to understand you.
Let's see. My form is supposed to come up and it did.
Great. Let's say my name is Jane Doe
and my address is One Contoso Drive,
Redmond, and two weeks. Great.
"Submit". Let's see if my event worked correctly
and Power Virtual Agents
understands all the values extracted.
It did, and that is wonderful.
Then it went into a Power Virtual Agents topic,
which is asking me for user satisfaction survey.
How happy am I?
I'm pretty happy how it worked.
No, that's all I needed just to sign up for a trial.
Excellent. Great. Now we have
seen all the richness that
Composer integration can bring to Power Virtual Agents.
I hope you were impressed with
this demo and now ready to try this feature.
This feature is now generally
available at your fingertips.
There is no sign up.
Please open Power Virtual Agents.
You will see the button to
open the Bot Framework Composer,
open up and start coding.
Please checkout our PVA blog
for all the announcements that we have
around this feature and
all other amazing features that we are working on.
There is a full documentation online,
which actually includes all the sample code
for the demo that I just walked you through.
Please use that. That is really easy to
jumpstart yourself for this feature.
I have collected a whole set of links which I
think could be helpful to you on your journey.
Please check out the Adaptive Card Designer,
where you're going to go in
and design your Adaptive Cards.
All the Adaptive Cards that you've seen in the demo
were designed by me using this designer.
Please give it a try.
It's really a guided UI experience.
There is a link on
Adaptive Dialogues,
Language Generation Technologies.
There is a lot of belts in there,
please check it out.
See if they can be of use for you.
You can create amazing things in there.
Last but not the least,
please visit us at
PVA Community Site and provide your feedback.
I hope you enjoyed the session
and I look forward to
seeing your comments in our community site.