►
From YouTube: Microsoft Teams Apps for Meetings
Description
Rajesh Rangarajan, Microsoft Teams Program Manager, shares how to design and build Microsoft Teams Apps for Meetings and how to deliver a unique user experience for each stage of the meeting lifecycle.
Apps for Meetings https://aka.ms/create_apps_in_meetings
Demo taken from the October Microsoft Teams community call
https://youtu.be/gwvHpKUM9Cg
Stay connected
Twitter https://twitter.com/microsoft365dev
YouTube https://aka.ms/M365DevYouTube
Blogs https://aka.ms/M365DevBlog
A
Hey,
thank
you
all
so
much
for
joining
this
community
call.
I
am
personally
so
excited
to
be
presenting
this.
My
name
is
rajesh.
You
know
if
you
watch
the
big
bang
theory,
I'm
rajesh
and
I
am
currently
a
product
manager
in
microsoft
teams,
and
specifically,
I
am
the
pm
for
meetings
extensibility
apart
from
my
time
at
microsoft,
which
has
been
now
three
years.
I
am
a
proud
penn
state
alum
and
you
know,
love
to
watch
college
football.
A
When
you
look
at
the
team's
platform
overall
at
the
very
bottom,
at
the
very
foundation
of
the
platform,
there
are
services
like
craft
and
sharepoint
and
power
platform
that
then
start
working
across
different
app
capabilities
like
tabs,
bots
and
message
extensions
and
these
capabilities
of
an
app
along
with
the
backend
services
that
we
offer
work
in
different
surfaces
within
teams.
You
must
be
familiar
with
personal
scope,
channel
and
group
chat,
and
for
the
first
time
we
are
introducing
meetings
as
a
surface
as
well.
A
So
this
is
a
you
know:
a
million
user
billion
minutes
kind
of
an
opportunity,
and
we
are
we.
We
strongly
encourage
you
to
partner
with
us
and
start
building
some
applications.
A
So
we
have
thought
through
the
entire
life
cycle,
just
the
way
you
see
in
in
this
particular
slide
and
in
the
course
of
this
presentation.
What
I'm
going
to
talk
to
you
about
is
how
to
actually
build
your
application
so
that
it
fits
across
this.
A
This
meeting
life
cycle,
if
you
go
to
the
next
slide
I'll,
be
talking
about
a
few
things
I'll
be
talking
about
how
to
attach
your
application
to
the
meeting
life
cycle
before
during
and
after
the
second
thing
is
I'll,
be
talking
about
ways
you
can
make
your
app
more
meeting
aware
and
I'll
explain
what
that
means
in
just
a
bit
and
then
finally
I'll
be
talking
a
little
bit
about
the
new
ux
services
and
places
where
your
customers
and
your
users
can
engage
with
your
application.
A
But
before
I
even
get
into
the
nitty
gritties,
we
already
have
a
handful
of
partners.
Who've
been
closely
working
with
us
and
pagerduty
is
one
of
them.
A
A
patient
duty
is
an
incident
management
platform
that
provides
a
real-time
collaborative
and
productive
environment
so
that
customers
are
being
served
well
by
their
service
provider,
such
that
when
an
incident
comes
through,
a
group
of
people
can
actually
come
together,
get
on
a
call,
see
make
decisions
and
actually
have
a
discussion
all
with
the
context
of
that
incident
ticket
that
was
raised.
A
So
if
you
see
in
the
next
few
slides
like
page
pagerduty,
the
the
experience
that
they're
building
is
before
the
meeting,
the
organizer
is
able
to
set
context
in
the
meeting
chat
by
sending
a
message
extension
with
an
adaptive
card.
That
explains
what
the
incident
is
and
essentially
building
that
context
and
when
they
actually
get
into
the
meeting
notice
that
there
is
a
side
panel
experience
where
the
context
that
the
organizer
created
follows
them,
and
so
that
everybody
in
the
meeting
can
grab
the
context.
A
A
So
before
the
meeting,
how
does
your
app
actually
appear
in
the
fly
out
that
you
see
here
and
particularly
you're,
probably
wondering
what
does
optimized
for
meetings
even
mean
I'll
get
to
that
in
just
a
bit?
But
in
this
scenario,
you're
trying
to
add
your
application
to
the
meeting
before
the
meeting
event
starts,
and
how
does
your
app
actually
be
surfaced
in
this
flyer?
A
The
changes
that
we
ask
you
to
make
is
the
the
app
manifest
that
you
have.
There
are
two
fields:
there
is
the
the
scope
field,
and
then
there
is
the
context
field
we
would
want
you
to
have
group
chat,
as
the
scope
and
context
will
be
meeting
chat
tab
and
for
those
who
are
familiar
with
the
platform
already.
Yes,
we've
made
changes
to
the
app
manifest
we've
added
a
new
field
called
context,
and
I
highly
encourage
you
to
go.
Read
our
documentation
to
understand
more
about
what
context
actually
means.
A
The
simplest
way
to
think
about
it
is
context
is
mainly
for
where
your
app
appears,
whereas
scope
is
for
whom
your
app
appears.
So
just
to
recap
for
your
app
to
be
available
before
the
meeting.
Your
context
is
meeting
chat,
tab
and
your
scope
is
group
chat.
That
is
signal
for
us
to
showcase
your
application
in
the
fly
out
that
you
see
here
in
the
next
step.
What
happens
during
the
meeting?
There
is,
as
you
see
like
this
in
meeting
site
panel
experience
and
for
you
to
actually
enable
your
application
in
the
meeting.
A
As
I
said
earlier,
the
context
that
we
need
is
the
in
meeting
site
panel.
So
the
context
here
is
meeting
site
panel
and
the
scope
still
remains
group
chat.
That
is
when
your
app
becomes
meeting
optimized.
So,
if
you're
wondering
what
does
optimized
for
meetings
mean,
it
just
means
that
your
application
functions
before
the
meeting
in
the
meeting
chat
and
it
functions
during
the
meeting
as
well,
and
that
signal
for
us
to
showcase
your
app
in
the
meeting
optimize
section
of
the
flyer.
A
In
addition
to
the
to
the
site
panel,
we
we
are
also
introducing
a
net
new
surface
called
the
in
meeting
dialogue
and
the
way
you
should
think
about
the
meeting
dialogue
is
the
ability
to
showcase
an
actionable
notification
in
the
meeting
stage
itself.
A
One
of
the
classic
examples
that
we
we've
we've
showcased
here
is
how
you
send
a
poll
and
get
users
to
actually
participate
in
a
poll.
This
is
a
way
to
get
user
engagement
and
to
actually
grab
user
attention
for
the
most
important
thing.
So
this
is
something
that
is
net
new
and
it
resembles
a
task
module
and
if
you
do
recognize
that
it
is
in
a
way
a
task
module.
The
underlying
infrastructure
is
the
same,
but
the
intent
and
the
purpose
is
different,
so
we've
documented
this
publicly.
A
I
encourage
you
to
read
it
and
make
sure
that
the
the
use
of
this
surface
is
for
the
right
reasons.
Now,
how
do
you
actually
create
one
of
these
in
meeting
dialogues?
We
we've
actually
expanded
our
conversations
api.
So
if
you
look
at
the
conversations
api,
it's
something
that
works
only
when
you
have
a
bot
registered
and
when
you're
able
to
generate
a
bot
auth
token.
A
A
I
think
so
in
the
previous
slide.
It's
finally
wrapping
up
the
meeting
life
cycle
itself.
So
what
happens
after
the
meeting?
So
when
you
actually
finish
a
meeting
user
should
be
able
to
go
back
to
the
tab
and
and
make
updates
or
change
things
based
on
what
they
learned
from
the
meeting.
As
long
as
you've
enabled
your
app
in
the
pre-meeting
space
post
meeting
is
exactly
the
same
service.
There's
no
net
new
work
that
you
have
to
do
as
long
as
you've
done
the
work
for
enabling
your
app
before
the
need.
A
With
that,
let
me
get
into
some
of
the
let's
say,
like
different
aspects
that
developers
should
know
about
about
the
meeting
itself
in
a
given
meeting.
There
is
like
different
roles,
so
on
the
left
side
you
will
see
organizer,
presenter
and
attendee.
These
are
the
roles
that
are
available
in
a
meeting
and
if
you
see
the
first
row
on
top,
there
are
different
kinds
of
user
types,
guest
users,
anonymous
users
and
in-tenant
users.
A
So
it's
one
of
those
very
interesting
things
that
that
have
marked
at
that
the
very
end
of
of
the
matrix
here
and
it
also
showcases
the
different
roles
as
part
of
the
whole
meeting
meeting
life
cycle
and
as
part
of
meetings.
Extensibility
we've
created
an
api
called
get
participant
api,
and
this
api
gives
you
the
participant
role.
A
So
if
you
provide
us
with
the
participant
id
meeting,
id
and
tenant
id,
we'll
be
able
to
provide
you
the
role
of
that
user
and
that's
a
very
powerful
api,
so
that
you
can
create
experiences
based
on
roles,
and
when
I
give
you
a
closing
example
I'll
tell
you
how
some
of
the
developers
have
been
thinking
about
it,
the
way
to
now
retrieve
the
information
meeting
id
participant
id
and
tenant
id.
There
are
a
few
ways
to
do
this.
The
first
is
tab
sso.
A
A
You
can
get
up
the
participant
id
and
tenant
id
through
any
one
of
these
methods,
but
we
highly
recommend
you
to
use
tab
sso
and,
as
far
as
meeting
id
is
concerned,
you
can
either
use
the
client
side
sdk
or
you
can
use
the
boarding
work
and
below
are
the
links
we'll
also
share
this
out
with
you
to
kind
of
help
you
get
up
to
speed
on
on
these
concepts,
in
addition
to
the
get
participant
api,
the
next
slide
of
the
the
last
line
will
be
something
called
as
framed
contact
earlier.
A
I
said
that
your
app
can
be
aware
of
the
meeting
itself.
What
frame
context
does
is
that
it
gives
you
knowledge
on
where
the
user
is
and
from
where
they've
invoked
your
app
invoking
an
app
from
the
in
meeting
window
versus
invoking
the
app
from
say,
pre-meeting
or
post
meeting
is
different
and
your
experience
or
the
content
that
you
want
to
generate
could
change
based
on
where
the
user
is
frame.
Context
is
that
is,
is
that
tool
for
you
to
determine
where
the
user
has
invoked
your
app
from
so
that
you
can
render
appropriate
experiences.
A
So
with
that,
there's
always
the
the
more
admin
oriented
aspect
so
in
the
next
few
slides
I'll
kind
of
quickly
gloss
over
the
different
admin
experiences,
so
that
you
are
aware
of
how
your
app
is
being
treated
admins
and
organizer
controls
for
the
very
first
time
anonymous
users
are
able
to
not
just
join
a
call,
but
they
can
also
interact
with
amps
and,
like
I
said
earlier,
they
cannot
add,
remove
or
uninstall
applications.
A
But
if
you
send
an
adaptive
card
to
the
meeting
chat,
they
can
actually
participate
in
it
anonymous
users,
but
if
admins
are
not
happy
about
it,
they
can
actually
use
the
new
control
that
we've
provided,
which
is
the
ability
to
turn
off
anonymous
users
from
interacting
with
applications.
A
If
you
go
to
admin.teams.microsoft.com
into
meeting
settings,
you
will
see
a
toggle
that
says,
allow
anonymous
users
to
interact
with
applications
it's
default
on,
but
we,
like,
I
said
you
know,
we've
given
admins
the
ability
to
go
and
turn
it
off.
If
they
don't
want
this
to
happen.
A
In
addition
to
this,
you
must
already
be
familiar
with
permission
policies.
It's
it's.
It's
a
feature
that
we
announced
last
year,
where
admins
can
actually
selectively
go
and
enable
or
disable
applications
for
users
and
for
the
tenant
itself
and
with
introducing
meeting
applications
or
meetings
extensibility.
A
We
will
continue
to
honor
any
permission
policy,
so
let's
say
that
your
organization
or
your
customer
has
blocked
or
has
enabled
a
handful
of
apps,
and
let's
say
that
your
app
now
has
meetings
extensibility,
nothing
changes
in
terms
of
their
policy.
If,
if
it's
blocked
it
remains
blocked,
if
it's
allowed,
it
will
be
it'll
continue
to
be
allowed.
A
I
think
that
kind
of
brings
me
to
to
the
end
of
this
presentation
and
I'll
kind
of
wrap
it
up
with
with
one
example,
which
is
poly,
so
the
way
poly
has
done.
This
whole
thing
is
before
and
after
the
meeting
experience,
they
have
added
meeting
chat
tab
to
their
manifest
as
a
context
now,
because
of
that
they
are
able
to
operate
as
a
tab.
A
In
the
meeting
chat
before
and
after
the
meeting
when
you
go
to
during
the
meeting,
we
have
enabled
meeting
site
panel
as
the
manifest
context,
which
is
why
they
are
able
to
render
the
in
meeting
site
panel,
and
if
you
notice
there
is
a
button,
called
create,
create
a
poll.
They've
used
the
get
participant
api
to
determine
whether
the
participant
is
a
presenter
or
organizer
or
attendee,
and
they
are
rendering
experiences
in
that
site
panel
according
to
the
role
of
of
the
user
who's
using
the
application
and
then
during
the
meeting
they
are
also.
A
They
have
also
integrated.
With
in
meeting
in
meeting
dialogue.
To
my
earlier
point,
they've
used
the
conversations,
api
and
they've,
given
us
an
external
external
resource
url,
to
help
us
render
render
this
experience
during
the
meeting
so
that
users
can
create
polls
and
get
responses
from
all
meeting
participants
and
then,
even
even
in
here,
you'll
notice.
A
The
fact
that
they've
used
the
participant
role
api
to
see
like
who
gets
to
see
the
results
versus
attendees,
who
probably
shouldn't,
be
seeing
the
results
just
yet
yet
they
should
just
be
participating
in
the
poll,
but
then
it
depends
on
the
role
so
that
they
can
determine
whether
they
show
the
results
or
not.
On
on
the
side
panel,
I
think
yeah.
A
So
with
that
you
know,
that's
paulie's
experience
the
way,
they've
wrapped
things
together
and
some
of
the
resources
are
here
for
you
to
get
started
and
build
similar
experiences
or
even
even
better
experiences
through
your
customer
needs
and
also
through
your
creativity.
B
Awesome,
no
thank
you
rajesh,
for
you
know
taking
time
to
to
walk
us
through
all
of
this.
This
is
a
super,
exciting
area
and
we're
looking
forward
to
all
the
amazing.
You
know
meeting
apps
that
are
going
to
be
created
using
these,
so
you
know
to
all
the
to
the
devs
on
this
call.
You
know
start
playing
around
with
this
see.
You
know
we
definitely
want
to
see
all
of
the
you
know
the
awesome
apps
that
you
can
create
with
this.