►
From YouTube: Microsoft Teams community call-March 2020
Description
In this month's call, Andrew Clear, Senior PM on the Bot Framework SDK team, shared what's new and upcoming with the Bot Framework, including: Bot Framework 4.8 SDK, Get Member changes for Microsoft Teams, Skills (Bots talking to bots), Adaptive dialogs Declarative, Composer and Power Virtual Agents.
View the blog here for more details: https://aka.ms/AA7w8et
For more Microsoft Teams developer information, please visit:
https://aka.ms/MicrosoftTeamsDeveloper
Connect with us:
Twitter https://twitter.com/microsoft365dev
YouTube https://aka.ms/M365DevYouTube
Blogs https://aka.ms/M365DevBlog
A
Good
morning,
everyone,
I
am
andrew
clear,
I'm
a
p.m.
on
the
bot
framework
sdk
team.
I
used
to
be
a
p.m.
on
the
teams
team
on
the
team's
platform
team.
We
will
go
over
to
the
buffer
member
team,
but
still
dealing
with
the
bots,
but
with
bots
on
both
sides
of
the
fence
and
today
what
we're
gonna
be
talking
about
is
what's
new
in
the
bot
framework
world.
Traditionally,
when
we've
got
to
talk
like
this,
we've
been
really
focused
on
teams.
Specific
things
in
the
bot
framework
world
today
we're
gonna,
be
we're.
A
Gonna,
go
a
bit
broader
and
talk
about
more
generally
applicable
things
that
we've
not
really
ever
talked
about
and
the
themes
community
call
before.
So
that's
me,
you
can
follow
me
on
twitter
at
a
clear
16.
If
you
reach
out
to
me
on
twitter
with
any
questions,
you
can
either
just
tweet
at
me
or
DM
me,
and
I
will
help
if
I
don't
know
the
answer.
I
hope
I
will
do
my
best
to
help
find
the
answer.
So
please
feel
free
to
follow
me
and
reach
out
to
me
on
Twitter.
A
A
Sharath
about
we're
gonna
talk
about
the
get
member
changes
specific
to
teams,
so
this
is
the
only
portion
of
today's
talk
that
will
be
100%
focused
on
teams
rather
than
just
general
black
framework
at
all.
If
you
don't
know
the
background
of
why
the
member
end
points
or
the
roster
calls
sometimes
refer
to
them-
are
changing
for
teams,
there's
a
blog
post
that
you
can
check
out
down
here,
I've
made
a
little
aka
for
it'll,
be
in
the
slides
once
they
get
posted.
A
A
If
you
are
writing
BOTS
for
teams,
you
need
to
be
aware
of
these
changes,
particularly
if
you
have
any
BOTS
in
production
that
use
the
roster
the
what
the
payload
that
the
roster
is
gonna
be
returning
is
going
to
change
you'll,
be
getting
less
information
by
default
from
any
roster
call,
so
I
highly
recommend
you
check
out
that
blog
post,
if
you
haven't
already
or
the
documentation
so
we've
added
in
4.8
first
off,
is
a
to
get
a
single
member.
So
you
can
retrieve
a
team's
channel
account
object
by
a
the
ID
teams.
A
Ip
UPN
Inc
was
actually
one
more.
It's
pretty
straightforward.
It's
just
teams
in
phuket
member
or
give
embracing,
depending
on
your
language,
pass
in
a
turn
context
and
an
ID,
and
it
will
give
you
back
a
team's
channel
account.
This
is
very
useful
in
large
teams
when
you're
checking.
If
you
know
you
have
a
UPN
or
whatever,
and
you
want
to
find
out
if
they're
there
in
a
particular
roster
or
you
just
you
need
to
exchange
aad
ID
for
a
team's
ID.
A
So
you
can
send
a
proactive
message,
but
you
don't
want
to
grab
the
whole
roster
and
then
page
through
everything,
particularly
in
large
teams
that
can
become
prohibitive.
So
that's
definitely
you
know.
I
will
put
that
up.
Thank
You,
Dana,
I,
appreciate
it.
I
was
just
about
to
say:
I
should
do
that,
but
you
did
it
for
me,
the
the
link
for
that
blog
post
is
in
the
meeting
chat.
So
it's
that
you
can
click
on
it.
A
Instead
of
trying
to
memorize
the
random
string
of
letters
and
numbers
anyways
back
to
get
single
ever
so
single
member,
it's
pretty
straightforward
returns,
a
single
team's
channel
account.
This
is
again.
This
is
super
useful
in
large
teams.
A
lot
of
this
is
a
large
team
support
get
paged
members,
so
the
paged
member
end
points
already
existed,
but
we
have
made
them
so
that
they
return
teams
channel
accounts.
We've
made
an
implementation
of
it
that
returns
Tube
channel
accounts,
rather
the
channel
accounts.
A
A
If
you,
if
you
do
a
get
members
call
inside
of
a
team,
you
want
to
switch
over
to
this
endpoint
as
soon
as
possible.
Okay,
so
there's
a
question
from
chat:
is
there
ever
going
to
be
an
easy
way
to
proactively
message
all
users
inside
your
organization's
directory?
The
root
of
the
question
is
proactive.
Messaging
is
hard
and
it's
frustrating
how
hard
it
is
it's
hard
for
a
reason,
because
the
team's
team
I
say
we
no
longer
own
the
team's
team,
but
I'll
speak
for
them
for
a
little
bit
here.
A
The
team's
team
erred
on
the
side
of
caution
with
the
rules
around
proactive
messaging.
So
essentially,
what
they've
done
it
said:
hey
you
can't
just
create
a
bot
that
can
spam
people
who
you
need
to
you
need
to
be
in
the
context
of
a
user
somehow
in
order
to
start
sending
them
messages,
we
don't
want
you
to
be
able
to
just
bulk
pull
a
list
of
everyone
and
start
blasting
out
proactive
messages.
There
needs
to
be
some
kind
of
reason
why
you
know
that
they
exist
in
most
contexts.
A
That
makes
that
makes
a
lot
of
sense
when
you're
building
the
box
for
your
organization
that
you
are
your
organization's
IT,
that
is
kind
of
frustrating,
so
it
makes
it
difficult
to
solve
that
solution.
The
app
template
the
for
the
company
communicator
app
template
was
sort
of
meant
to
be
a
bridge
between
those
two
worlds
and
that's
current
state
of
affairs
of
where
we
are
right
now.
A
But
I
will
say
that
the
the
team
is
well
aware
that
that
proactive
messaging
continues
to
be
a
pain
point,
and
we
need
to
continue
to
iterate
and
improve
upon
it
and
make
it
better
and
easier
and
easier
to
send
messages
across
your
organization
when
you
know
that
this
box
should
obviously
be
able
to
just
send
messages
to
everyone
in
an
organization
whether
that's
a
bot
solution
or
a
graft
solution.
That
will
be
something
that's
addressed
in
the
future.
A
Thank
and
thanks
for
asking
that's
a
that's
an
important
thing
that
I
know
that
has
been
frustrating
for
a
lot
of
folks
that
are
trying
to
build
my
business
spots
all
right.
So
that's
enough
about
team
specific
stuff.
Now
we're
gonna
move
on
to
thought
framework,
specific
stuff,
because
I
think
there's
a
bunch
of
cool
stuff
in
here
that
doesn't
ever
really
get
talked
about
inside
teams.
So
the
first
thing
I
want
to
talk
about
is
skills,
so
skills
are
at
their
root.
A
The
idea
of
box
talking
to
bots
the
ability
for
a
bot
to
send
a
message
to
get
a
message
from
an
end
user,
send
it
on
to
a
different
bot,
get
a
response
in
the
bot
respond
back
to
the
there's,
a
person
who
a
them.
Well,
the
cool
thing
about
skills
a
little
bit
history
on
skills
before
I
dive
into
this
diagram
too
much
because
those
have
kind
of
evolved
over
time,
so
they
originally
were
part
of
the
virtual
assistant
world.
A
If
you'd
ever
used
virtual
assistants
for
building
BOTS,
it's
a
super
cool
sort
of
almost
software
as
a
service
solution
built
on
top
of
the
bot
framework
that
that
can
help
you
build
Virtual
Assistants
for
your
organization,
fairly
quickly
skills
kind
of
originated
there
with
the
4/7
SDK
we
a
couple
months
ago.
We
pulled
them
into
the
core
SDK,
so
they
were
part
of
the
core
bot
framework
idea
and
then,
with
this
release,
we've
also
we've
done.
We've
been
on
some
additional
work
so
that
this
world
is
currently
possible.
A
So
you
can
imagine,
you've
got
an
end-user
who's
talking
to
an
assistant
and
that
sistent
is
a
current.
You
know
dotnet
bot,
built
on
top
of
the
4.8
sdk,
then
that
bot
has
a
bunch
of
stuff
that
it
can
do.
You
know
for
you,
but
if
you
ask
it
an
HR
question,
it's
gonna
actually
farm
that
off
to
a
different
bot,
which
is
an
older
v3
bot,
built
on
note
and
now
notice.
A
We're
ending
up
here
with
this
v4
+
v3
interrupt
because
we've
wrapped
our
v3
bought
with
the
brand-new
point
release
the
v3
SDK
that
we're
releasing
very
shortly.
You
will
be
able
to
wrap
a
v3
bot
and
talk
to
it
from
a
v4
box.
So
that's
pretty
cool
and
also
language
interrupts.
It
doesn't
matter
so
you
can
do
across
version
and
across
the
language
interrupts
with
skills,
one
of
the
big
benefits
of
them,
and
then
they
can.
A
Actually,
they
can
actually
be
as
deep
as
you
want
so
HR
to
talk
to
consent
and
to
off
to
another
skill
which
can
send
off
to
another
skill,
and
then
the
calendar
is
a
completely
different
skill
built
on
Python.
So
the
the
idea
here
is
that
each
of
these
each
of
these
nodes
is
a
bought
in
and
of
itself
and
can
pass
off
to
other
BOTS
to
farm
out
information.
A
Ok,
so
that's
the
good
thing
about
skills.
The
bad
thing
about
skills
is
these
are
completely
different
BOTS.
So
you
are
introducing
network
complexity
and
latency
into
any
of
these
handoffs.
So
you
need
to
decide
whether
or
not
the
trade-offs
here
are
worth
it,
but
that's
the
general
idea
of
skills
to
dive
into
one
of
these
interactions
a
little
bit
further.
A
So
you
can
kind
of
see
what's
going
on
the
the
client
app
over
here
is
the
end
user,
sending
a
message
it
sends
it
to
the
robot
and
I'll
go
into
vocabulary
a
little
bit
because
it's
kind
of
important
in
a
bit,
but
the
client
app
sends
a
message:
it
hits
the
the
adapter
it
says:
hey
go
gives
it
to
the
robot.
The
robot
says
hey:
this
is
this
needs
to
go
to
a
skill,
so
it's
gonna
fire
off
to
a
skill.
It's
got
an
HTTP
client
and
it's
dedicated
to
that
particular
skill.
A
It
hands
it
off
to
the
skill.
The
skill
does
what
it
does
returns
it
back
to
to
the
robot.
The
robot
then
passes
it
back
to
the
client
app.
So
there's
a
couple
important
things
going
on
here.
What
one
that
you
need
to
realize
is
that
the
skill
bots
will
never
interact
directly
with
the
end-user,
so
it's
not
like
you're
you're,
not
you're,
not
passing
off
the
copy
interaction
to
the
skill.
A
You
are
passing
through
the
interaction
to
the
skill,
which
means
that
the
robot
can
always
act
both
before
and
after
the
skill
does
it
stuff.
So
it's
always
it's
kind
of
the
same
way
that
middleware
works
right
now.
It's
always
gonna
get
the
option
on
the
way
in
and
the
option
on
the
way
out
to
take
an
action
and
it
can
do
whatever
it
wants.
These
are
another
good
thing
to
keep
in
mind.
Is
these
are
two
very
distinct
conversations
with
different
conversation.
A
Ids,
the
user
is
having
a
conversation
with
the
robot
and
the
route
bot
is
having
a
conversation
with
the
skill,
so
that
means
that
you're
getting
different
conversations.
Id
ID,
is
across
both
of
these
boundaries.
So
there's
obviously
things
that
you
need
to
do
in
order
to
make
sure
that
you're
tracking
those
things
and
keeping
them
all
mapped
together
and
they're
all
working
happily
and
hopefully
together.
A
So
but
that's
basically,
the
the
core
idea
of
the
skill
is
that
the
the
robot
is
able
to
have
conversations
with
other
BOTS,
some
vocabulary
and
responsibilities,
the
way
the
responsibilities
break
down.
So
the
skill
consumer
in
the
last
diagram.
That's
what
we
were
calling
the
route
bot,
but
we've
tried
to
kind
of
natively
want
to
jump
to
parent
and
child
box.
But
since
you
can
chain
them
together,
it
can
be
in
any
any
particular
bot
can
be
both
the
skill
consumer
and
a
skill
depending
upon
context
calling
the
parent
child
gets
confusing
as
well.
A
So
we
so
we've
come
up
with
skill.
Consumer
is
the
bot
that
is
dispatching
and
dispatching
at
Vivat
ease
to
the
skill
gets
lonely
gets
to
act
both
before
and
after
the
skill,
and
it's
actually
where
all
the
complexity
is
in
this.
So
dealing
building
the
skill
consumer
is
more
difficult
than
building
the
skill
itself.
The
skill
consumer
is
going
to
need
to
be
responsible
for
deciding
which
skill
it's
going
to.
A
If
it's
got,
you
know
10
different
skills
it
has
to
it
has
to
handle
all
the
dispatch
choosing
which
skill
need
it
needs
it
needs
to
give
which
which
messages
to
and
all
that
kind
of
stuff.
So
the
skill
consumers,
where
all
of
the
complexity
is
the
skill
itself,
is
actually
fairly
simple.
Any
any
bot
can
be
converted
to
a
skill
pretty
quickly.
A
It's
really
all
you're
gonna
do
is
say:
hey
I
get
to
receive,
that's
just
from
another
bot
you
can
limit
which
BOTS
can
consume
you
as
a
skill,
so
you
can
limit
them
by
ID.
So
this
is
for
like
monetization
scenarios
and
stuff
like
that
or
just
security
in
general,
but
the
you
can
say
only
you
know:
bots
1
through
10
get
to
call
me
and
then
you
can
publish
a
manÃs
best
to
describe
your
function.
A
If
you
want
to
make
your
skill
publicly
available
like
anybody,
you
could
publish
a
calendar
skill
that
anybody
could
consume.
So
I'll
show
you
how
that
works
in
a
bit,
but
the
the
core
I'd.
The
core
concept
here:
we've
got
two
things:
the
skill
consumer
is
dispatching
activity
to
skill
and
then
the
scale
itself,
mostly
just
a
bot,
it
doesn't
actually
do
anything
different.
So
a
little
bit
more
on
skills.
A
They
work
with
invokes,
so
you
could
have,
for
example,
a
skill
that
was
dedicated
to
handling
your
search
based
messaging
extension
or
your
messaging
extension
with
a
search
command.
So
you
could
just
pass
those
in
books
along
to
that
skill
and
then
return
them
as
a
4.8.
They
work
with
dialogues.
So
if
you
have
a
waterfall
dialog,
you
can
use
a
skill
to
complete
the
dialogue.
A
They
support
user
authentication,
but
it's
local
to
whichever
bought
and
the
chain
asked
for
it,
and
you
can't
pass
the
authentication
from
bought
to
bots,
so
that
can
be
frustrating
if
both
the
parent
and
the
child
are
going
to
need.
Authentication.
You're,
probably
gonna,
want
to
have
deal
with
that
in
a
graceful
way.
If
you
control
both
ends
of
that
equation,
but
security
being
what
it
is.
A
It's
not
really
a
good
idea
to
just
say:
hey
you
logged
in
over
here
so
now,
you're
logged
in
over
there,
with
no
trust
relationship
established
between
the
two
things
can
always
establish
your
own
trust
relationship.
Just
there's
not
one.
By
default,
a
skilled
consumer
can
consume
multiple
skills
and
a
skill
can
be
consumed
by
multiple
skill.
Consumers
and
a
skilled
consumer
can
be
a
skill
as
well
as
a
skilled
consumer.
A
So
there's
lots
of
composition,
complexity
that
you
can
create
here
be
careful
because
all
of
that
adds
complexity
so
make
sure
your
you've
got
a
good
reason
for
doing
it.
All
everything
that
you're
doing,
but
if
you
need
to
you,
can
you
can
make
the
tree
pretty
neat
skill.
Consumer
can
be
running
more
than
one
skill
in
parallel
and
handling
dispatching
and
keeping
track
of.
What's
going
on
the
bot
service
and
the
bot
registration
provides
the
Box
about
authentication,
you
do
it
by
ID
and
Pat
and
app
secret.
A
So
that's
how
it's
going
to
create
a
secure
communication
over
HTTP
between
the
the
skill
and
the
skill
consumer
and
again
it's
important
to
keep
in
mind
each
BOTS.
About
conversation
is
a
different
conversation.
There's
it's
gonna
have
different
conversation,
ideas
need
to
be,
and
it's
gonna
need.
You
need
to
keep
track
of
it
as
a
different
conversation.
Id
we've
got
a
conversation,
ID
factory,
that
that
will
help
you
build
conversation
IDs.
A
Another
important
thing
to
keep
in
mind
is
there's
no
there's
no
channel
between
the
skill
and
the
skill
consumer.
This
is
bot
framework
channel,
not
team's
channel,
so
bot,
framer
channels,
like
teams,
is
a
channel
web
chat
is
a
channel.
Direct
line
is
a
channel
the
bots
of
between
the
two
bots
there's
no
channel
that
exists
between
there.
So
some
some
of
the
stuff
that
the
channel
does
for
you,
you,
you
need
to
kind.
You
need
to
do
while
the
sdk
helps
you,
but
you
need
to
do
it
between.
A
You
need
to
do
it
yourself,
so
things
like
creating
the
conversation.
I
think
that's
normally
handled
by
the
channel.
There
is
no
channel,
so
you
have
to
create
your
own
conversation.
Id,
there's
a
configuration
stuff
that
needs
to
happen
so
that
the
two
things
can
communicate
together
securely,
but
it's
kind
of
an
interesting
world
where
they're
just
talking
directly
to
each
other
over
HTTP
posts
and
then
the
future.
So
the
idea
so
we're
just
in
the
beginning
of
this
world
and
we're
starting
to
scratch
the
surface
of
what's
possible.
A
But
we
want
to
build
towards
a
true
component
model
for
BOTS,
where
you
can
have
multiple
bots
that
you
you
can.
You
can
build
a
component
library
of
bots.
There
can
be
open
source,
publicly
available
skills
that
people
can
consume
and
the,
and
we
can
just
we
can
compose
these
things.
However,
we
want
so
skills
are
sort
of
in
the
very
early
stages
of
laying
the
groundwork
for
this.
You
can
imagine
you
know
just
grabbing
from
a
library
of
skills
and
then
turning
your
bot
on
and
voila.
A
You've
got
a
bot,
and
if
you
want
to
make
your
bot
smarter,
you
just
grab
a
new
skill
or
you
plug
in
a
new
skill.
So
that's
kind
of
the
idea
that
the
North
Star
is
a
true
component
model
for
box
that
allows
you
to
sort
of
plug-and-play
these
things
and
make
sure
that
I'll
work
happily
together
for
all
eternity.
Of
course
they
will
it'll
work
it'll,
be
tomorrow.
A
A
Sorry,
we
have
one
sample
right
now
for
skills,
we're
about
to
add
a
couple
more
over
the
next
week
week
and
a
half
as
well
as
some
additional
documentation
force,
particularly
for
the
b3
to
b4
Interop
scenario,
but
the
sample
that
we
have
right
now
is
just
a
simple,
a
single
route
bot
and
an
echo
that
passes
off
to
an
echo
bot
as
a
skill.
But
I
did
want
to
show
a
couple
things
inside
here
so
start
out
inside
the
skill
itself.
So
the
skill
itself
is
really
not
very
interesting.
A
It's
essentially
it
not
much
changes
inside
the
skill.
It's
just
a
bot.
That's
gonna
that
it's
going
to
respond
to
an
activity
from
another
bot
like
it
would
any
other
bot.
The
only
thing
that
we
want.
We
need
to
add
in
terms
of
the
skill
go
into
the
bot
itself.
What
we
are
doing
so
basically
we're
saying
if
the
activity
text
said,
has
end
or
stop
what
we're
going
to
do.
A
We're
gonna
say
we
are
going
to
tell
you
anything
conversation,
but
then
we're
gonna,
send
a
new
activity,
type
called
an
end
of
conversation
activity
and
the
end
of
conversation
activity
is
going
to
tell
the
skill
consumer
hey
I'm
done
with
this
conversation,
stop
forwarding
me
messages
and
move
on
with
your
life,
so
this
is
sort
of
the
big.
The
big
change
inside
of
the
skill
itself
is
you
need
to
be
able
to
send
these
end
of
conversation
activities
at
the
end
of
any
conversation.
Threats,
oh
and
the
other
bit
is
the
the
aloud
callers.
A
So
this
is
where
I
said
you
can
the
skill
can
limit
who
can
consume
it?
So,
basically,
what
we're
saying
is
you
can
you
can
load
up
a
list
of
bond
IDs
from
a
configuration
file
or
you
put
hard
codes
and
if
you
wanted
to
or
whatever,
and
then
you
can
add
them
to
your
allowed
callers
your
list
of
allowed
callers
which
will
make
it
so
your
skill
can
block
random
BOTS
from
trying
to
consume
them
as
a
scope.
A
I'm
not
gonna,
go
into
skilled
manifests
right
now,
I'll
show
you
them
in
context
the
PVA
here
in
a
bit,
but
for
right
now
just
know
that
a
skill
so
skill
can
skill
needs
to
essentially
do
three
things:
the
allowed
callers
list.
You
don't
have
to
do
the
allowed
collars
list.
You
can
choose
to
do
the
allowed
College
list
to
limit
which
skill
consumers
can
consume
you.
A
You
need
to
send
end
of
conversations
when
you're
done
so
that
you
can
release
control
the
conversation
back
to
the
skill
consumer
and
then
the
the
other
optional
thing
that
a
skill
can
do
is
publish
a
manifest
which
says
which
basically
describes
the
capabilities
of
the
bot.
What
information
you
should
send
it
when
you're
when
you're
starting
a
conversation
and
then
those
sorts
of
things,
its
language
understanding,
model
that
sort
of
stuff,
so
that
be
the
skill
consumer
can
more
intelligently
send
send
it
the
correct
information.
It's
also
going
to
be
used
for
any
application.
A
That's
gonna
help
you
plug
a
skill
and
do
an
existing
bot
and
I'll
show
you
that
inside
PDA,
okay.
So
that's
the
skill
side
on
the
roof
bot
side.
This
is
where
pretty
much
all
of
the
complexity
is
so
you're
gonna
see
immediately
that
we
normally
have
just
with
the
one
bot
controller.
We
need
a
new
controller
to
have
a
conversation
with
the
skill.
Remember,
there's
no
channel
here,
so
we're
actually
gonna
define
and
you
route
to
to
pass
information
to
pass
these
messages
onto
the
skills.
A
So
the
skill
is
going
to
talk
to
me
on
or
all
of
my
skills
are
gonna
talk
to
me
on
API,
slash
skills
and
then
I'm
gonna
have
conversations
with
the
end
user
on
API,
slash
messages
inside
my
app
settings,
I'm
going
to
define
skills
that
I'm
gonna
consume,
so
we're
gonna.
Add
the
app
ID
and
I
need
to
know
the
endpoint
for
the
skill.
I'm
gonna.
A
Eh
do
be
client
bunched
up,
so
there's
a
bunch
of
boilerplate
stuff
that
needs
to
happen
inside
here
in
order
to
what
sort
of
wire
everything
up
and
make
sure
that
you
can
send
and
receive
messages
to
the
skill
on
the
bot
side
itself,
you're
going
to
inside
the
constructor
for
your
bot,
you're
gonna
you're,
going
to
construct
your
skill
clients
and
this
one
we're
just
using
a
single
skill.
So
we're
gonna
create
and
we're
gonna
wire
up
that
one
skill
we're
gonna
override
the
on
turn
activity,
which
is
not
normally
done.
A
You
don't
normally
override
the
on
turn
activity.
So,
when
you're
doing
this,
you
need
to
make
sure
that
you've
called
base.
Otherwise
bad
things
will
happen
but
yeah,
so
you
should
in
the
on
turn.
What
we're
doing
is
we're
saying,
okay,
this
is
where
we
are
going
to
forward
messages
on
to
the
skill,
so
we're
gonna
say
if,
if
it's
not
an
end
of
conversation
and
also
there
is
an
active
skill,
we're
gonna
go
ahead
and
send
the
activity
on
to
the
skill
you're
just
gonna
pass
that
through
now.
A
This
is
where,
when
I
said,
is
you're
gonna
have
the
opportunity
to
act
before
so,
if
you
want
to
do
interrupts
or
you
want
to
be
able
to
do,
you
know
complex
dispatching,
where
you're
you're
checking
the
user
intent
before,
but
before
continuing
to
forward
on
canonical
examples,
usually
you're
in
the
book
of
flights
thing
and
someone's
like
show
me,
the
weather
need
to
be
able
to
detect
that
this
is
where
you
would
detect
that
and
then
we're
also
gonna
do
so.
We
need
a
way
to
start
to
fire
up
these
skill,
the
skill
process.
A
So,
in
this
case
the
user
says
skill,
we're
gonna,
say,
sweet
turn
it
connecting
you
to
the
skill
and
then
we're
gonna
go
ahead
and
set
the
active
skill
property
to
our
one
skill,
since
we've
only
got
the
one
and
then
we're
gonna
Ford
the
activity
along
to
the
skill.
So
this
is
gonna
start
the
skill
pipeline.
Otherwise
we're
just
gonna,
say:
I,
don't
know
what
to
do,
because
the
only
thing
this
bot
does
is
connect
you
to
a
skill,
and
the
nice
thing
that
we
need
to
do
is
handle
the
end
of
conversation.
A
So
we
need
to
be
able
to
handle
the
end
of
conversation
if
we
receive
it
from
the
skill
and
we
also,
if
we're
doing
any
Ruff's
or
anything,
we
need
to
be
able
to
handle
it
incoming
from
the
skill,
and
we
also
need
to
be
able
to
send
them
one
if
we
want
to
be
able
to
end
proactively.
In
the
conversation,
the
end
of
conversation
works
both
ways.
A
The
skill
can
send
one
to
the
skill
consumer
and
the
skill
consumer
can
send
one
to
the
skill
so
that
either
way
you
can
end
the
nd
conversation
and
both
endpoints
need
to
deal
with
that
elegantly.
So,
if
you
agree
or
you're
saving
state,
you
need
to
clean
up
state
clean
up
your
dialogue
stack
whatever
you
need
to
do
to
sort
of
end
the
conversation
gracefully
so
that
the
next
time
you
start
the
conversation,
the
users
not
in
some
weird
next
state,
so
yeah
both
sides
need
to
handle
the
end
of
conversation.
A
That's
that's
pretty
much
it
that
I
wanted
to
show
inside
here.
There's
a
whole
bunch
more
in
this
world
that
you
can
do.
I
recommend
checking
out
our
documentation
if
you
want
to
learn
more,
but
I've
got
a
whole
bunch
of
other
stuff
that
I
want
to
demo
today.
So
I
don't
want
to
spend
much
more
time
in
here
before
I
move
on.
Does
anybody
have
question
any
questions
on
skills
on
what
we
just
talked
about?
Oh
I,
see
one.
A
Can
we
send
notification
to
client
app
when
someone
calls
the
team's
call
number
sure
what
you
mean
by
when
someone
calls
the
team's
the
team's
called
number?
So
you
mean
like
the
call
into
a
meeting
number?
Okay?
Yes,
so
there.
As
far
as
I'm
aware,
there
is
no
trigger
that
handle
inside
the
team's
client.
For
when
someone
calls
a
phone
number
for
a
meeting,
you
would
get
a
meeting
join
notification,
but
in
general
no
there's
no
there's
no
trigger
for
that.
A
If
you
would
like
one
I
would
suggest
leaving
feedback
I'll
give
you
I'll,
give
you
the
link
to
the
team's
feedback
stuff
in
the
end,
but
that
I'm
not
sure
if
that's
on
their
radar,
so
you
might
want
to
do
my
honest
yeah
use
the
feedback
mechanism
and
send
then
that
I'll
put
that
time
at
the
end.
I'll
circle
back,
and
we
can
talk
more
about
that
one,
but
I'm
gonna
go
ahead
and
move
on
unless
there
are
any
other
skills,
specific
questions.
A
The
ability
to
build
dialogues,
decoratively
lu
and
LG,
which
is
language,
understanding
and
language
generation
files,
there's
a
common
expression
library,
there's
a
UI
component,
there's
a
whole
bunch
of
stuff.
So
this
is
sort
of
the
one
of
the
major
things
we've
been
working
on
and
we
think
it's
we
think
it's
pretty
awesome.
So,
let's
jump
in
all
right.
The
goal
with
the
adaptive
dialogue
stack
is
to
make
dialogue
based
bots
that
are
event-driven
rather
than
waterfall.
So
right
now,
the
waterfall,
the
waterfall
and
the
prompt
stack
work
very
well.
A
If
you
want
to
have
a
conversation
on
rails
and
drive
a
user
towards
very
specific
goal,
but
in
order
to
build
a
bot
that
handles,
interrupts
and
context,
switching
and
stuff
it's,
it
is
difficult
and
requires
a
bunch
of
boilerplate
code
and
a
lot
of
oddness
that
you're
you're
just
kind
of
like
well,
someone
said
to
copy
paste
this
code
here
so
I,
so
I
did
it
and
it
seems
to
kind
of
work.
So
this
run
with
that
so
dialogue.
A
We
want
to
make
dialogue
based
spots
that
are
event
driven
and
in
just
the
context,
and
then
each
dialogue
itself
should
be
a
cohesive
self-contained
unit.
The
dialogue
has
a
bunch
of
different
parts
to
it.
A
dialogue
with
the
bot
you
know,
you've
got
you've,
got
the.
What
the
bot
is
gonna
say
to
the
user.
You've
got
the
the
intelligent
understanding
model,
trying
to
figure
out
what
the
users
are
saying
to
the
bot.
A
That's
the
language
agnostic
so
put
another
way.
We
want
to
make
this
bot
easy,
so
the
user
stares
on
a
book
flight,
the
bus
says
sure,
where
you
want
to
go
users
like
wait,
how's
the
weather
in
Seattle,
the
pod
just
immediately
responds
with
its
72
and
sunny
in
Seattle
the
user.
That
says:
Seattle
lots
like
sweet
you're
flying
to
Seattle.
Where
are
you
flying
from
user,
says
318,
okay,
so
you're
flying
to
Seattle
on
March
18th?
Again,
where
are
you
flying
from?
A
You
can
make
this
bot
right
now
with
the
waterfall
stack,
but
it's
hard
and
it
causes
it.
It's
it
takes
a
lot
of
oddness
to
make
this
month.
Adaptive
makes
building
this
bot
pretty
straightforward.
You
think
it's
pretty
cool!
You
see
we're
dealing
with
a
couple
different
things
right:
the
user.
The
user
is
interrupting
the
bot
in
the
middle,
in
the
middle
of
a
of
a
stack
and
saying,
hey,
I
want
to
switch
intense
and
do
something
different
they're
there
they're
responding
with
types
of
information
that
the
bot
isn't
prompting
them
for
right
now,
right.
A
It
said
where
do
you
want
to
fly
from
and
the
user
gave
a
date
and
the
bot
smart
enough
to
say?
Oh
look,
you
gave
me
a
date.
I
know
that
I
need
a
date
in
order
to
complete
this
set
of
this
interaction,
I'm
just
going
to
assume
that
that
date,
maps
to
this
part
of
the
pot,
so
that's
sort
of
intelligently
deciding
how
to
map
all
the
stuff
together,
all
right,
so
some
vocabulary
before
we
jump
into
Tim,
Owen
and
looking
at
stuff.
So
an
adaptive,
dialog
sort
of
consists
of
five
different
pieces.
A
You've
got
your
recognizer,
which
is
your
language,
understanding,
Louis
or
regex,
or
whatever
that's
what
you're
using
to
extract
the
users
intent
from
from
whatever
they're
saying
triggers,
which
are
the
initiating
dialogues
in
response
to
events,
the
actions
inside
of
a
dialog
are
the
steps
that
the
bot
is
taking
and
how
the
Box
should
respond
inputs.
These
are
not
user
inputs.
These
are
like
inputs
into
the
dialogue
itself.
There
are
pieces
of
information
that
the
bot
needs
to
collect
and
the
previous
example.
A
The
inputs
were
the
destination
city,
the
the
originating
city
and
the
date
that
you
wanted
to
fly
on,
and
you
can
see
that's
we're
talking
about
them
specifically,
because
this
is
what
powers,
the
the
users
ability
to
say,
318
in
response
to
a
prompt
for
a
different
input,
so
that
that's
why
we
model
them,
sort
of
it
specific
thing
and
then
generator
or
the
language
generator
which
which
allows
you
to
alter
the
way
that
the
bot
responds
so
that
it
sounds
more
natural.
So,
instead
of
always
saying
hi,
sometimes
it
says
hi.
A
Sometimes
it
says
hello.
Sometimes
it
says
good
day.
Sometimes
it
says
banana,
it
doesn't
really
matter,
but
you
can.
You
can
know
craft
a
bot
that
mixes
up
what
it
said
so
that
it
doesn't
sound
quite
so
robotic
and
because
it
can
all
be
built
decoratively.
Your
dialogue
can
look
like
this,
so
real
Souls.
This
is
an
example
of
an
adaptive
dialogue
written
at
JSON.
You
can
see
we're
gonna
define
we're,
gonna,
say
hey,
this
is
an
adaptive
dialogue,
we're
gonna,
add
a
trigger
the
trigger
is
when
the
dialogue
starts.
A
We're
gonna
say
inside
this
trigger
the
actions
are
or
we're
going
to
do,
an
if
condition
if
the
user
name
is
null,
go
ahead
and
prompt
for
the
user
name
and
we're
gonna
set
the
username
from
whatever
the
next
input
is.
Otherwise,
if
the
this,
if
condition,
isn't
met,
we're
gonna
go
ahead
and
send
an
activity
that
says
hello,
username
nice,
to
talk
to
you.
So
this
is
a
bot
completely
written
in
JSON
yeah.
You
could
do
this
in
the
ammo
if
you're
weird,
but
do
it
in
JSON,
because
J
sounds
better.
A
Sorry,
Gamal
is
awesome
for
everyone
who
likes
the
Gamal
Gamal
is
a
perfectly
acceptable
way
to
write
decorative
things
yeah
anyway,
so
yeah,
that's
a
that's
an
attempted
dialogue
built
in
JSON,
it's
pretty
cool
and
they
can
get
they
can
get
as
complex
or
as
not
complex
as
you
want,
and
a
lot
of
you
might
be
looking
at
this
and
going
wow.
That's
really
verbose
and
I
wouldn't
want
to
want
to
write
all
of
that
and
do
a
bunch
of
crazy
stuff.
Why
can't
I
just
write
code?
A
You
can
you
can
still
write
code,
you
can
you
can
write
adapter
dialogues
procedurally
as
well,
there's
no
requirement
that
they
must
be
billed
equitably,
but
you
also
can
build
in
this
way
because
of
composer.
So
that's
my
transition
to
composer
an
adaptive
dialogues
are
in
preview,
we're
getting
close
to
stable,
so
I,
just
I
didn't
call
that
out
specifically,
it
was
on
the
title
side,
but
I
want
to
make
sure
I
call
it
out.
They're
still
in
preview
and
composer
is
in
preview.
A
Composer
and
composer
is
you
I
bought
building
for
developers?
It's
a
way
to
manage
all
of
what
I
just
talked
about
from
a
single
app
platform
and
I'm.
Not
even
gonna
have
any
more
slides
about
it.
We're
just
gonna
jump
right
into
a
devil
on
composure,
because
it's
way
easier
to
show
that
it
is
to
talk
about.
There's
gonna
be
a
couple
different
ways
to
run
composer
right.
Now,
it's
a
it's
a
hosted,
node
application,
so
you
can
see
I'm
hosting
it
and
running
it
from
from
my
own
computer,
lobo's
3000.
A
You
could
also
host
it
on
your
inside
your
company's
infrastructure
or
whatever
and
have
multiple
people's
connects
to
the
same.
The
same
instance
and
there's
also
going
to
be
a
self-contained
way
to
run
composer
sort
of
as
a
electron
app
so
right
now
this
is
the
composer
there's
a
bunch
already.
We
have
a
ton
of
samples
and
and
guidance
and
help
videos
and
there's
a
whole
documentation
that
goes
along
with
it
stuff.
A
So,
even
though
we're
in
preview
we're
pretty
far
along
the
preview
world,
so
it
is
truly
public
preview
at
this
point,
so
what
composer
is
going
to
allow
you
to
do
is
work
with
BOTS
built
on
top
of
the
adaptive
stack,
so
we're
gonna
jump
in
I've
got
one
of
the
the
sample
BOTS
opened
up.
You
can
create,
there's
a
whole
bunch.
You
can
create
a
new
bot.
We've
had
a
bunch
of
templates
that
you
can
use
that.
A
Will
that
will
help
walk
you
through
and
show
you
what's
possible
and
and
and
yeah
the
best
I
mean
the
best
way
to
figure
out
how
composer
works
right
now
is
we
have
a
phenomenal
tutorial
on
the
dock
and
the
dock
repository?
It
gives
you
a
really
good
overview
of
all
what's
possible.
One
thing
to
keep
in
mind
is
this:
is
a
developer
focused
tool?
So
it's
not
a
it's,
not
an
O
code
tool,
so
I
just
want
to
set
that
expectation
from
the
front.
A
This
is
not
intended,
nor
will
ever
be
intended
to
be
a
no
code
or
even
a
low
code
tool.
This
is
a
developer,
integrated
development
experience.
It's
not
it's
not
an
IDE
shouldn't
anyways,
it's
not
an
ID,
but
it
is
very
much
intended
to
be
a
developer
tool
and
not
another
no
code
or
low
code
tool,
so
I've
got
one
open,
I'm
gonna
go
ahead
and
jump
in
there
and
we'll
talk
about
it.
A
A
little
bit
over
here
on
the
left,
you're
gonna,
see
my
list
of
dialogues
with
my
list
of
triggers
and
then
inside
each
trigger
is
going
to
be
an
action.
So
I've
got
the
one
to
new
bot
dialogue
that
I've
got
open.
You
can
see
I'm
I'm,
setting
a
recognizer
type,
so
I
can
choose
to
use
either
Louis
or
regular
expressions
or
maybe
I,
don't
have
a
recognizer,
because
I
don't
need
one.
A
In
this
case,
I'm
gonna
use,
Louis
and
I'll
show
you
how
Composer
works
with
Louis
to
help
you
train
your
models
without
having
to
change
context,
which
is
pretty
awesome.
So
in
my
first
trigger
the
the
welcome
user
and
there
are
a
whole
bunch
of
different
trigger
types
that
you
can
do
so
we
can
do
a
whole
bunch
of
different
trigger
types.
When
you're
creating
new
triggers,
you
can
create
a
oh,
my
god,
I,
don't
know
what
the
user
is
talking
about
or
you
can
do
different
events
or
a
bunch
of
different
stuff.
A
But
so
we've
got
our
welcome
one,
which
is
when
we
receive
a
conversation
update
activity.
Then
what
we're
gonna
do
is
we're
gonna.
Do
a
loop-
and
you
can
see
already
right
off
the
bat
right
for
each
value
and
some
part
of
the
deep
activity
model.
So
in
order
to
do
this,
you
need
to
understand
the
activity
model
and
all
stuff
that
was
going
on
there,
but
for
each
member
added
in
the
activity,
we're
gonna
check
and
see.
Is
this
as
long
as
it's
not
the
recipient
that
ID?
A
As
long
as
we
were
not
talking
about
the
BOK
just
got
added
to
the
conversation
or
going
to
go
ahead
and
show
you
notice
right?
We've
got
a
whole
expressions,
language,
a
whole
bunch
of
stuff
going
on
inside
here.
So
this
is
my
if
condition,
and
then
we
got
a
true
and
a
false
branch
on
the
true
branch.
We're
gonna
send
a
welcome
message,
and
this
is
where
we
start
to
get
into.
Okay.
A
I
was
talking
about
language
generation
and
the
ability
to
compose
your
responses
and
make
them
a
bit
more
natural,
a
bit
more
interesting,
so
the
language
generation.
This
one
in
particular,
is
calling
a
function
and
the
welcome
message
function.
So
I
can
jump
over
here
and
I
can
check
out
the
my
bot
responses
and
I
can
see
the
this
is
the
list
of
all
of
the
responses
from
my
bot
inside
inside
this
particular
bot
and
in
this
case
we're
talking
about
the
welcome
message.
So
the
local
message
is
an
array
of
activities
and
we're
adding.
A
A
So
every
one
time
we're
gonna
compose
all
of
this
stuff
together
and
that's
how
we're
gonna
we're
gonna
create
a
response
now
this
can
obviously
be
as
complex
or
as
not
complex
as
you
want
it.
So
there's
no
reason
that
you
need
to
compose
things
this
complicated
or
even
use
these
functions.
If
you
don't,
if
you
don't
need
them,
if
you
wanted,
if
all
you
needed
to
say
was
you
know
what
can
I
do
for
you
today
with
a
list
of
suggested
actions?
You
can
do
that
right
from
right
from
here
right.
A
We
don't
have
to
jump,
we
don't
have
to
jump
around
and
do
all
that
stuff.
But
if
you
want
to
build
a
more
complex
message,
you
have
the
option
of
doing
so
so
either
one
of
the
nice
things
about
the
way
language
generation
is
formatted
in
the
way,
both
both
the
so
LG
language,
generation
files
and
LU
language,
understanding
files.
A
The
way
that
they're
formatted
is
kind
of
in
a
semi
markdown
format,
which
is
really
nice,
because
you
can
actually
share
them
with
other
people
a
lot
of
times
there
are
subject
matter,
experts
or
copywriters
or
other
people
that
you
want
to
write
these
options
for
you
with
the,
with
the
way
that
these
files
are
formatted
right.
It's
just
in
most
cases,
it's
just
simple
markdown,
this
one's
pretty
complex
since
we're
doing
some
actual
like
using
and
taking
advantage
of
activities
in
a
lot
of
cases.
A
It's
just
text,
so
you
can,
you
can
share
them
with
with
people
and
have
and
they
can
help
you
write
them
outside
of
the
context
of
your
code.
So
it
can
be
a
good
way
to
sort
of
crowdsource,
both
your
language,
understanding,
your
Lakers
generation
models,
which
can
make
for
a
much
better
bot
experience
for
end
users
right.
So
that's
a
little
bit
on
language
generation.
We
want
to
talk
about
language
understanding,
so
we
talk
about
language,
language
generation.
A
Also,
we
so
the
composer
works
tightly
with
Luis,
if
you're,
using
it
as
your
language
understanding
model
or
as
your
recognizer
to
help
you
train
your
mouth.
So
one
of
the
things
I
can
do
is
right
here.
So
these
are
the
intents
for
this.
So
this
is
the
trigger,
is
intent,
recognized
and
then
we're
gonna,
say.
Okay,
so,
since
we're
having
a
trigger
of
intent
recognized,
we
need
to
know
we
need
to
be
able
to
train
our
recognizer.
A
So
if
you
were
using
a
regular
expression
recognizer,
this
is
where
you
write
your
regular
expression
to
to
parse
out
the
the
intent
of
the
user.
But
since
we're
using
Luis,
we
need
to
train
our
model,
so
we're
gonna
use
a
language
understanding
model
to
say:
hey.
These
are
the
types
of
things
a
user
might
say
in
order
for
us
to
say
we
we
know
that
they
want
help,
so
I
can
very
quickly
add
a
new
one.
So
we've
got
all
these
ones
that
are
already
and
now
I'm
like
okay,
so
was
so.
A
This
seems
to
be
something
my
users
are
saying
a
lot
and
it's
not,
and
it's
not
hitting
my
model
correctly,
so
I
want
to
retrain
my
model,
so
I
can
just
add
it
right
here
and
I
can
say:
restart
bot
and
you'll,
see
that
it
says
publishing
and
because
this
is
this
is
hooked
up
with
Luis
and
it
has
my
authoring
key.
It's
gonna
go
ahead
and
see
over
here
in
Luis.
Here's
the
model
form
I
bought.
All
of
this
model
was
was
trained
directly
from
composer
I.
A
Never
actually
wouldn't
hear
mess
with
any
of
this.
So
the
the
idea
is
that
from
composer
you
can-
and
you
can
very
quickly
either
crowdsource
this.
If
you,
if
you
know
you
can
talk
to
subject
matter
experts
to
help
them
help,
you
I'm
gonna
jump
off
of
composer
right
now,
because
I
still
want
to
talk
about
PV
a
bit
and
leave
time
for
you
today,
so
we're
gonna
jump
away
from
composer
I
highly
recommend
it.
This
looks
interesting
to
you.
Go
check
out
the
docs.
They
are
available,
doc,
stop
microsoft.com,
/,
composer,
pretty
straightforward!
A
You
can.
You
can
download
it
from
github
run
it
yourself
locally
test.
It
out,
try
it
out
and
we
have
more
about
adapter
dialog,
so
created
an
ak47
'pls
repository,
but
there's
more
samples
and
stuff
that
you
can
download
there.
So
there's
a
ton
of
stuff
you
can
do
with
composer
I
didn't
even
begin
to
scratch
the
surface.
You
can
add
all
different
kinds
triggers
and
dialogue,
management,
localization
and
just
a
bunch
of
stuff
that
I
haven't
even
begun
begun
to
touch
on.
A
We
could
do
hours
on
top
of
composer
itself,
so
I
recommend
checking
it
out
check
out.
The
tutorial
takes
about
45
minutes
to
run
through
the
tutorial
once
you've
done.
The
tutorial
you
have
a
you'll
have
a
really
good
understanding
of
how
composer
works
and
how
it
all
fits
together.
You
remember
skills
from
earlier.
Imagine
skills
plugging
into
you
can't
do
it
yet,
but
we
want
to
be
able
to
do.
A
Is
you
can
hand
off
one
of
those
triggers
to
a
skill
so
you
can
plug
in
and
that
kind
of
goes
to
the
component
world
future
of
skills
box
in
general
is
the
ability
to
from
there.
You
can
have
a
you
know,
old,
v3
skill
that
you
don't
know,
and
you
want
to
use
adapter
dialogue,
so
you
build
an
adaptive,
dialogue
and
composer,
and
then
you
plug
in
that
old
v3
skill
inside
that
world.
So
it's
sort
of
starting
to
compose
all
of
these
things
together.
So
you
can
get
all
the
bits
and
pieces
work.
A
Okay.
So
now
we
want
to
talk
totally
switched
gears
and
we're
going
to
talk
about
power.
Virtual
agents,
which
is
you
I,
bought
building
for
everyone
or
not
developers
in
this
case,
because
we've
got
composer
for
developers,
power,
virtual
agents
for
not
developers
or
if
you
just
want
to
do
something
simple.
So
what
are
power
of
virtual
agents?
It's
a
part
of
the
power
platform.
I
saw
I'm
going
to
so
I'm,
not
part
of
the
power
platform
team,
but
I'm
going
to
do
this
because
it
touches
my
stuff.
A
Take
that
with
a
grain,
it's
everything
I
say
about
power,
virtual
agents
with
a
grain
of
salt,
not
part
of
the
team,
but
definitely
have
worked
with
them
really
closely
on
making
it
work
well
with
with
BA
framework
a
mix.
Third
part
of
the
power
platform
it's
built
on
top
of
the
the
bot
framework
service,
you
can
extend
power,
virtual
agents
with
skills.
A
So
that's
where
you
sort
of
pull
in
your
existing
bits
into
a
power
virtual
agent
side,
but
but
basically
it's
our
automate
per
box
and,
let's
just
dump
jump
into
a
demo
because
we're
running
low
on
time.
Okay,
so
power,
virtual
agents,
power,
v8
power
via
a
Microsoft
comm,
it's
a
whole
new
way
to
build
and
manage
BOTS.
So
it's
kind
of
similar
in
concept
to
what
we
were
doing
with
composure.
But
it's
a
little
bit
more
UI,
friendly
and
less
code
that
you
can
build
inside
here.
A
So
same
kind
of
concepts
apply
that
what
they're
calling
topics
we
would
call
dialogues
and
then
inside
the
dialogue
you
can
have
trigger
phrases.
So
in
this
example,
there
are
four
different
trigger
phrases.
This
is
a
little
bit
different
than
composer
right.
We're
not
training
a
language
understanding
model,
this
sort
of
self-contained
software
as
a
service
offering
right.
This
is
all
very
self-contained
inside
itself.
You
add
a
bunch
of
trigger
phrases
and
then
so,
when
the
user
says
when
are
you
closed,
I
can
then
create
sort
of
a
workflow
style
set
of
messages
and
responses.
A
There's
a
bunch
of
there's
a
bunch
of
logic
that
you
can
do
inside
here:
if-else
loops
for
loops
a
whole
bunch
of
craziness
inside
here,
but
the
core
idea
is
that
this
is
all
a
little
bit
easier
for
anybody
to
understand
right,
so
you're,
just
writing
messages.
What
you're,
adding
in
here
is,
is
pretty
straightforward
in
terms
of
what
you
can
do.
Look
the
one
thing
I
do
want
to
show
inside
here
is
the
ability
to
add
skills.
So
in
power,
virtual
agents,
you
can
wire
up
a
skill
by
using
its
skill
manifest.
A
A
Here's
something
that's
too
complex
or
I've,
already
built
this
skill
that
I
want
to
make
it
part
of
this
broader
thing
that
I'm
building
and
releasing
to
my
customers,
don't
really
want
to
rebuild
the
bot,
because
there's
no
reason
to
do
that.
I
can
write
a
manifest
for
the
make
it.
You
know
at
the
end
of
conversation,
logic
and
the
small
little
amount
of
changes,
I
need
to
turn
that
bot
and
do
it
into
a
skill
and
then
I
can
add
it
to
power.
A
Virtual
agents
not
gonna,
go
through
this
too
much,
but
you
can
add
a
you
basically
added
by
the
manifest
and
then
you
can
see
for
a
more
complex
one.
The
manifest
is
going
to
describe
three
different
actions
that
this
skill
can
take.
It'll
show
if
you
can
maybe
describe
inputs
and
outputs,
it's
going
to
output
the
flight
number
and
return
the
flight
number
to
the
parent,
bot
or
whatever,
and
then
once
you've
added
them.
You
can
plug
them
into
any
sort
any
pipeline.
A
You
want
to
be
a
workflows
as
an
action,
so
you
can
we're
gonna
trigger
phrase
of
skill,
we're
gonna
switch
to
the
skill
and
then
I'm
gonna
add
the
skill
as
an
action
to
the
workflow,
so
that
will
that
will
then
pass
off
control
to
the
skill
and
then,
on
the
end
of
conversation
from
the
skill,
it
will
hand
it
back
to
power
virtual
agents
so
again
to
go
back
to
that
component
model,
we're
trying
to
make
all
of
these
things
fit
and
work
together.
Happily,
okay!
So
that's
my
30-second!
A
Our
virtual
agents,
demo
I'm,
sorry
for
running
low
on
time
wanted,
but
I
did
want
to
show
that
real,
quick,
it's
kind
of
why
skills
and
all
stitching
all
this
stuff
together.
So
that's
that's
sort
of
it.
That's
it!
That's
all
that
I've
got
for
today
inside
the
slide
deck.
You
will
find
a
whole
bunch
of
resources
inside
here,
including
a
couple
of
my
favorite
teams:
developer,
documentation,
AKMs
last
teams,
dev
and
then
teams
developer
feedback,
page
that
outlines
how
to
provide
the
feedback.
A
What's
gained
a
split
also
into
the
chat,
a
kid
I
miss
less
teams,
dev
feedback,
they're,
really
they
are
one
of
the
best
teams.
I've
ever
seen
it
Microsoft
and
responding
to
the
channels
that
are
outlined
there.
So,
if
you
have
questions,
please
feel
free
to
reach
out
to
them,
but
I
have
time
to
hang
out
for
a
few
more
minutes
and
answer
any
questions.
So
if
anybody
has
questions,
I
can
totally
answer
them.
But
if
not
thank
you
very
much
for
joining
us.
This.
B
Is
a
night
from
Dubai?
Why
should
University
just
wondering
if
the
presentations
and
the
videos
can
be
shared
I
didn't
know
about
this?
I
was
I
was
just
informed
about
this
session
a
few
minutes
ago
and
I'm
only
in
this
session
for
the
last
15
minutes.
So
it
would
be
great
if
you
can
clear
me
the
videos
to
all
the
participants,
probably.
A
B
That
one
so
in
the
chat,
I
put
a
couple
of
Link's
wine.
There's
an
Andrew
if
you
go
back
a
couple
slides
to
the
Microsoft
365
okay.
So
these
are
topics
for
all
of
our
Microsoft
365
developer
platform.
B
There's
a
join
link
there,
so
it
will
be
really
easy
to
just
join
in
a
damn
Pacific
time,
every
third
Tuesday
of
the
month.
It's
a
lot
of
information,
we'll
have
links
and
resources
in
our
blog
posts
that
we
will
put
out
there
and
then
in
the
recording.
You
can
grab
these
links
as
well.
Thank
you
very
much
yeah.
Thank
you.
I.
C
Had
a
question
to
circle
back
to
the
voice
question
that
was
asked
earlier:
the
the
idea
of
being
able
to
intercept
and
not
meeting
calls
but
direct
phone
calls
teams
has
ability
to
replace
your
phone
system
for
the
purposes
of
a
CRM
pop.
Is
there
any
discussion
on
that
or
is
there
any
direction?
Maybe
we
can
get?
You
know,
look
for
some
articles
and
get
warm
on
that
I.
C
There
kind
of
is
so
Chris
from
computer
talk
here,
I
I
just
know:
we've
we've
messed
with
it,
take
a
look
at
the
they
just
rebranded
it.
It
was.
The
compliance
recording
API
is
now
it's
the
policy
recording
api's,
but
what
that
does
you
have
to
enable
a
calling
bot?
But
what
that
will
do
is
let
you
apply
a
policy
to
a
user
and
it
will
pull
your
bought
into
a
call
before
it
connects
to
the
user.
Okay,.
A
C
Do
that
we
need
the
phone
number
in
order
to
do
a
CRM
pop
yeah,
but
what
I'm?
What
I'm
wondering
is?
Could
you
write
a
write,
a
recording
bot,
that's
not
really
actually
recording
but
you're,
getting
a
notification
that
the
usually
getting
a
call
and
then
sending
them
a
notification
or
something
at
a
band.
You.
A
Could
probably
retrieve
the
phone
numbers
so
you
it
would
not
be.
It
would
be
sort
of
asynchronous
in
that
case
right.
The
the
whoever's
answering
the
call
would
get
the
results
from
your
application
a
little
bit
after
the
college
started
cuz
right,
because
the
call
would
come
in
you
would
pull
in
the
I
guess
you
could
wait,
it's
kind
of
a
workaround,
but
it
would
actually
might
work
yeah.
A
I'm
sorry,
there
was
one
that
was
asked
in
chat
that
I
wanted
to
answer
real
quick.
Can
we
add
a
virtual
agent
embedded
to
a
web
site
and
the
yeah?
Yes,
you
can,
you
can
actually
add
them
in
teams
do
so
so
this
is
my
virtual
agent
bot
inside
teams.
So
it's
pretty
cool.
It's
just
a
bot
behind
the
scenes
right.
It's
just
a
bot
framework,
but
that's
that's
running.
A
B
A
Like
that
can
be,
it
can
be
a
web
front-end,
it
can
be
inside
teams.
Really
it's
just
a
bot.
So
but
the
thing
to
keep
in
mind
with
power
virtual
agents
is,
it
is
a
different
licensing
model
than
tripes.
It's
a
full
software
as
a
service
suite.
So
it's
a
different
licensing
model.
It
has
things
that
come
along
with
it.
B
What
my
question
was
about
sorry:
I'm,
not
too
sure
if
it's
11
the
developer
tools,
but
while
I'm
in
Dubai
on
the
on
the
toll-free
number
or
on
the
number,
if
I
want
to
join
the
games
to
a
phone
I'm,
only
seeing
the
number
from
Bahrain,
which
means
a
neighboring
country.
But
is
there
any
way
if
Microsoft
has
any
plans
of
having
the
local
number
for
Dubai
youi
can.
A
B
A
A
You
can
add
one
of
these,
so
let
me
grab
what
the
demo
website
looks
like,
so
this
is
embedded
inside
of
a
fake
website.
So
this
so
basically
all
of
the
chrome
around
here
is
just
a
like
a
demo
website
and
did
this
is
the
chat
with
the
bot
itself.
So
this
is
it
that
embedded
inside
and
you
can
see
that
this
is
the
same
go.
So
this
is
the
same
chat,
but
this
is
the
exact
same
bought.
I
was
having
a
conversation
with
in
teams,
it's
the
same
bot,
but
this
is
just.
C
C
A
C
Bot
to
a
live
person,
you're.
A
Talking
about
you
may
hand
off
stuff,
no,
not
for
power
virtual
agents
not
simply
actually
don't
think
that
they
do.
Maybe
that
I
don't
want
to
say
whether
or
not
that's
possible
or
not.
I,
don't
know
that
human
hand
off
is
possible.
Currently,
this
would
be
the
one
that
would
have
it.
A
C
Hey
I
just
had
a
question:
actually
we
kind
of
hit
on
a
little
bit
of
it
earlier,
but
proactive
messaging.
Let's
try
something:
a
bot
where
I've
got
a
I've
got
a
bot
that
actually
I've
got
a
conversation
establish
with
the
user
but
I'm
trying
to
start
a
new
conversation
proactively
without
the
conversation
ID.
So.
C
C
A
C
A
Chet
anyways
I'll
drop
this
in
a
chat
in
a
sec
and
I'll
dig
into
that
a
bit,
but
basically
the
the
core
of
the
idea
right
is
you
need,
in
order
to
send
a
message
to
a
one-to-one
conversation.
You
have
to
do
two
things,
one.
It
needs
to
be
created
and
then
two
it
needs
to
be
sent.
You
need
to
send
the
message,
so
you
really
do
you
can
call
create
multiple
times,
even
if
it
already
exists,
you'll
never
create
in
one
right.
A
C
A
C
A
Don't
think
so,
okay,
the
issue
with
with
a
lot
of
these
endpoints
is
that
they're
sort
of
made
to
work
across
lots
of
different
channels,
and
this
is
a
framer
channels,
not
team
channels,
so
right
so
the
same
endpoints
gotta
work
in
slack
and
Facebook
and
teams,
but
that
means
that
some
of
the
stuff
just
doesn't
apply
in
channels.
So
when
you
start
digging
into,
why
doesn't
this
I'm,
adding
group
members
to
my
create
conversation?
Call?
Why
isn't
that
working?
A
C
A
You
you
absolutely
can
know.
Basically
you
definitely
cannot
create
a
group
chat.
You
can't
create
a
new
group
chat
from
a
bot.
The
only
way
I
bought
can
proactively
send
a
message
to
a
group
chat
is
if
someone
installs
the
bot
and
that
location
once
the
conversation
gets
swapped
to
a
group
chat,
the
BOTS
got
to
be
installed
and
swapped
to
the
group
chat
is
important
because
it
might
look
like
a
London
one
conversation,
but
it's
not
it's.
Actually.
A
A
group
chat
and
weird
things
happen
like,
for
example,
if
you've
got
a
a
conversation
between
you
and
two
other
people
and
the
bots
installed
there
and
then,
like
you,
remove
those
people.
What
gets
weird
so
don't
do
that
because
it's
just
weird
things
will
happen,
but
in
general,
no,
you
you
cannot
create
a
new
group,
chat
or
add
a
topic.
That's
because
one-to-one
chats
don't
have
vapes.
You.
C
C
A
C
A
That
will
net
yeah
and
and
d
and
that's
and
that's
by
team's
design,
because
teams
doesn't
really
want
you
to
do
that
really
at
all.
It
wants
you
to
have
a
single
conversation
between
the
bot
and
the
user,
and
that's
that
because,
from
the
team's
perspective,
the
thought
is
part
of
an
app
right,
and
so
it
wants.
It
wants
the
conversation
to
look
like
this
yeah
because
it
wants
it
to
be
part
of
an
app
and
so
that's
just
sort
of
the
app
model.
A
B
One
final
question
for
me:
probably
go
ahead:
it's
about
setting
up
a
password
for
the
meeting
now
like
usually
on
on
Skype
or
WebEx,
there's
an
option
to
set
up
a
password
for
teams
meeting
or
like
for
an
online
meeting.
Do
we
have
a
similar
option
in
teams
or
do
have
plans
in
the
pipeline
to
implement
a
password
for
teams
and
having
more
easy
way
of
joining
a
call
to
a
meeting
ID?
Instead
of
the
link?
Sorry.
A
I
have
I
am
definitely
the
wrong
person
to
answer
that
question.
I
would?
Can
you
use
the
team
status
feedback
channel
options
to
submit
that
question
because
or
open
an
issue
and
github
on
the
docks?
Yes,
sir
I'm
not
I'm,
not
sure.
Oh
okay,
no
problem,
thank
you
or
I.
Just
I
just
dropped
my
Twitter
handle
into
the
chat.
If
you,
if
you
send
me
a
DM
or
a
tweet
and
tag
me,
I
will
be
able
to
follow
up
with
you
after
I
find
the
right
person
who
can
answer
that
question.
Sure.
A
Okay,
thanks
for
thanks
for
hanging
out,
please
feel
free
to
use
either
the
team's
dev
feedback
which
excellent
monitor
that
channel
tube.
So
if
you
use
any
of
those
those
or
send
me
a
tweet
or,
however,
you
want
to
get
in
contact
with
me
feel
free
to
do
so,
and
I
will
follow
up
whenever
I
can
again.