►
From YouTube: Adaptive Cards community call-January 2021
Description
AtBot continues to provide amazing tools for Bot developers using Adaptive Cards. Watch this month's community call to see a live demo of how AtBot uses new ways for bots to 'share their screen' using Adaptive Cards.
Resources
Adaptive Cards https://adaptivecards.io
Stay connected
Twitter https://twitter.com/microsoft365dev
YouTube https://aka.ms/M365DevYouTube
Blogs https://aka.ms/M365DevBlog
A
Thanks
everyone
for
joining
the
first
adaptive
cards
call
taking
some
time
out
of
the
busy
world
out
there
to
join
us
and
talk
a
little
bit
about
adaptive
cards.
I'm
matt
heidinger.
This
is
wow.
This
is
the
second
year
of
every
month.
We've
been
doing
these
ever
since
dana
asked
us
to
start
january
of
2019
or
something
so
thanks
for
jumping
on
today,
we've
got
a
couple
more
guest
speakers.
A
Last
month
we
had
a
pretty
big
deep
dive
into
flutter
and
adaptive
cards,
and
this
month
we've
got
mick
and
joe
harris
from
atbot
who
have
been
long
time,
supporters
and
integrators
of
adaptive
cards
originally
when
when
I
first
met
them,
they
were
doing
some
amazing
stuff
making
bot
development
accessible
to
low
code
developers
and
they've
done
some
even
deeper
integrations
and
innovations
that
they're
going
to
walk
through
today.
So
with
that,
we're
going
to
jump
right
in-
and
the
first
thing
I
wanted
to
mention
is
just
kind
of
a
call
to
action.
A
If
anyone
is
interested,
so
we
have
an
upcoming
partner,
onboarding
meeting
on
february,
9th,
so
in
just
just
under
a
month
and
we're
looking
for
folks
who
are
building
or
interested
in
building
adaptive
cards
that
work
with
teams
in
outlook,
so
we've
sort
of
demoed
some
things
along
the
way.
We've
called
it.
This
universal
action
model
to
make
it
easier
to
write
cards
that
you
can
communicate
with
the
back
end,
the
same
way
with
outlook
and
teams.
A
We
we
have
two
different
ways
that
you
communicate
with
the
back
end,
so
we've
had
a
we've
spent
a
long
year
of
progress,
getting
alignment
on
that
and
we're
hoping
to
demo
it
deep
dive
into
it
and
then
on
board
some
folks
who
would
be
interested.
So
if
you
are
interested
in
that,
please
email
me
and
I
can
dana-
I
don't
know
if
you're
able
to
quickly
put
my
mail
or
something
but
just
reach
out
at
matt.heidinger
microsoft.com
we'll
do
our
best
to
accommodate.
A
We
may
do
more
of
these
there's.
Also
the
microsoft
ignite
march
spring.
Whatever
we're
calling
it,
a
conference
was
announced
so
we'll
there
will
be
plenty
more
of
opportunities
to
engage
with
us,
but
this
is
finally
coming
to
fruition,
just
making
it
much
more
streamlined
to
build
cards
with
teams
and
outlook.
With
a
consistent
back
end-
and
I
did
see
a
quick
question
in
the
chat
about
what
yeah.
A
Yeah,
it's
not
even
really
a
program.
It's
like
a
meeting
that
we
were.
It
was
originally
kind
of
like
a
focus
group.
We
were
gonna,
do
and
to
learn
how
people
were
currently
working
on
stuff,
but
then
we
kind
of
shifted
it
to.
Let's
just
do
a
deep
dive
give
people
an
update
on
how
our
unified
approach
for
building
cards
that
show
up
in
teams
and
outlook
and
communicate
with
a
consistent
back
end.
So
quick
details.
When
you
build
a
card
in
outlook,
we
have
an
action,
type
called
action.http
that
lets.
A
You
make
an
arbitrary
http
request
to
your
backend
that
you
can
format
a
certain
way
and
if
you
write
a
bot
for
microsoft
teams,
you
use
action.submit
and
that
has
a
different
way
of
communicating
with
the
back
end.
So
it's
a
little
tricky
right
now,
a
little
cumbersome
if
you
are
building
adaptive
cards
for
both
teams
and
outlook.
A
So
what
we've
been
working
on
is
a
new
unified
model.
We
call
it
the
universal
action
model
to
deliver
cards
and
outlook
once
they've
been
delivered
and
then
handle
the
actions.
So
this
is
going
to
be
a
very
informal
meeting.
It's
not
like
a
full
event:
it's
going
to
be
a
one-hour
thing
where
we
do
a
deep
dive
into
that
and
again
expect
this
is
kind
of
the
first
one
expect
more
of
this
topic
on.
The
community
call
expect
more
of
this
topic
at
future.
A
Microsoft
events,
but
we
just
finally
are
at
a
place
where
we
can
start
engaging
with
partners
and
it'll
be
in
a
functioning
place
so
that
we
can
review
the
docs
and
basically
get
early
feedback
on
on
this
before
we
kind
of
widen
the
net
out.
So
I
can
also
explain
all
that
in
email.
This
isn't
you
signing
up
for
anything.
So
if
you
are
interested
at
all
just
drop
me
an
email,
I
can
give
you
more
details
and
provide
whatever
information
you
need
on
that.
B
A
Cool,
thank
you
so
much
yeah.
I,
like
the
informality
of
this,
that
I
even
met
I
messaged
dana.
Like
minutes
ago,
I
was
like
hey
heads
up.
I
added
a
slide
I
want
to.
I
want
to
talk
to
some
people
from
our
from
our
community,
so
cool
with
that.
Thank
you
for
for
your
engagement
in
that
and
let
me
hand
it
over
to
mick
and
joe
from
atbot
and
they're,
going
to
show
us
some
pretty
cool
stuff.
So
why
don't
you
guys
take
it
away?
A
C
Hi
everybody,
my
name
is
joe
harris.
Nick
harris
is
also
on
the
line.
We
are
brothers.
We
founded
h3
solutions
whoa,
how
many
years
ago,
15
16
years
ago,
2006
15.
15
years
ago
and
at
bot
is
our
latest
product.
C
It's
a
software
as
a
service
for
no
code,
low
code,
bot,
building
built
on
the
microsoft
cloud,
and
what
we're
going
to
do
is
we're
going
to
go
through
a
quick
level
set
of
what
app
bot
is
and
how
we
integrate
with
adaptive
cards
in
the
adapter
card
designer,
and
then
I'm
going
to
be
showing
something
that's
brand
new
that
we're
supporting
in
teams
which
is
called
teens
calling
and
how
we
integrate
adaptive
cards
there
and
then
mick,
I'm
going
to
hand
it
over
to
mick
to
dive
into
some
code
as
to
how
we
actually
do
that
using
the
adaptive
card,
libraries
for
c-sharp,
so
to
start
off.
C
What
is
that?
But
I
know
everybody
on
the
call
is
asking
themselves
this,
because
you've
never
heard
of
it
before
so
at
bot
is
a
what
we
call
a
bot
as
a
service
or
it's
a
software
as
a
service
platform
for
the
microsoft
cloud
for
building
bots.
It
allows
you
to
build
and
release
bots
in
in
a
matter
of
hours.
It's
very,
very
simple:
we
have
a
built-in
card
designer
the
card
designer
is
something
that
you're
probably
very
familiar
with
it's
it's
the
card
designer
that
matt
and
his
team
built.
C
C
We
have
native
integration
with
q,
a
maker
which
is
the
microsoft
cognitive
service
for
questions
and
answers.
It's
basically
like
an
excel
spreadsheet,
with
question
questions
and
answers
on
it
that
you're
able
to
integrate
with
your
bot
and
your
data,
integration
and
and
skills.
What
we
call
them
in
in
adbot
are
actually
built
in
power,
automate
or
logic
apps.
C
So,
and-
and
all
of
this
can
be
built
without
code,
so
you
can
build
your
bots
design,
your
your
adaptive
cards
and
everything
and
tie
it
all
together
without
having
to
write
a
single
out
of
code
unless
you
want
to
get
fancy.
So
the
extensibility
story
for
appot
is
the
exact
same
extensibility
story
for
power,
automate
or
logic.
Apps
just
build
an
azure
function.
C
So
a
quick
rundown
if
the
previous
slide
didn't
make
sense.
Hopefully
this
one
makes
a
little
bit
more
sense
to
you.
The
architecture
so
at
bot
sits
between
just
just
behind
the
the
bot
framework,
so
your
box
in
adbot
are
are
in
fact
bot
channel
registrations
within
the
bot
framework.
We
are
just
the
endpoint
that
you
use.
C
So
with
that,
I'm
going
to
get
into
a
demo-
and
one
thing
to
note
is
you
can
go
to
adbot.io
if
you
have
an
office
365
subscription
and
an
azure
subscription
you
log
in
using
oauth,
and
you
can
try
app
spot
for
free.
C
So
this
this
quick
demo,
it's
it's
mostly
focused
around
adaptive
cards
and
and
how
we
integrate
with
adaptive
cards
if
you're
interested
in
everything
else
that
we
do
feel
free
to
reach
out
to
hello
at
bot.io,
and
we
can
set
something
more
up.
So
this
is
my
bot.
This
is
my
ask
it
it
services
bot,
which
is
integrated
with
servicenow,
and
I'm
going
to
go
ahead
and
ask
this
bot
for
a
software
installation
that
I
need
to
have
done.
So
I
need
vizio
installed
on
my
laptop.
C
So
this
shows
our
integration
with
luis
to
understand
the
intent
they
want
to
have
software
installed.
It's
also
pulling
out
the
entity
of
vizio
to
know
that
that
is
a
piece
of
software.
That
is
the
piece
of
software
that
they
want
installed,
and
then
you
can
see
here.
This
is
the
adaptive
card
that
gets
sent
down
to
the
user,
so
this
was
built
using
the
adaptive
card
designer
I'll
get
into
the
back
end
and
show
that
in
just
a
second
after
I
show
the
demo
so
I'll
go
ahead
and
fill
out
this.
C
C
Get
what
the
status
of
my
ticket
is.
This
is
really
cool
feature
of
luis,
the
regular
expression
entity
recognition
so
we're
using
that
to
recognize
ticket
numbers
when
people
ask
about
the
the
status,
and
so
it
recognizes
that
I
want
to
get
the
status
of
a
ticket,
and
it
knows
what
the
ticket
number
is
and
goes
to
servicenow
finds
it
and
then
renders
another
adaptive
card
here,
and
I
can
click
this
to
go
to
the
self
service
portal.
C
So,
on
the
back
end,
the
way
these
cards
are
designed
is
in
our
at
bot
admin
portal.
So
this
is
the
portal
that
you
gain
access
to
once
you
sign
up
for
appbot,
it's
where
you
can
build
your
bots
register
them
with
bot
framework.
Well,
actually,
you
register
them
in
azure,
and
then
you
take
the
keys
and
bits
and
pieces
and
put
them
over
here
into
into
this
portal.
But
what
we're
going
to
focus
on
again
is
our
adaptive
card
integration.
C
So
this
here
is
the
software
request
that
you
saw
and
we
can
go
ahead
and
open
up
the
card
editor.
This
is
the
adaptive
card
designer
embedded
from
npm.
Is
that
right,
npm?
I
think
so,
and
so
the
way
we
do
our
our
dynamic
data.
The
way
we
allow
you
to
to
integrate
these
with
your
bot
is
any
field,
including
display
fields,
but
in
this
case
this
is
a
form
type
of
adaptive
card.
C
What
fields
are
what
we
call
dynamic
properties
from
an
appbot
standpoint
and
then
so
so
again.
This
is
where
you
kind
of
build
that
those
building
blocks,
so
the
the
adaptive
card
building
blocks
for
your
bot
and
then
down
here
you
can
see
we
have
our
louis
portions
of
it.
So
you
build
your
luis
app
and
then
you
connect
your
lewis
app
in
here
under
ai
integrations,
you
build
your
adaptive
card
templates
and
then
it
all
gets
tied
together
in
either
power,
automate
or
logic
apps.
C
So
this
flow,
if
we
dive
into
it,
we'll
see
that
it
starts
with
a
trigger
that
is
a
lewis
intent
which
is
install
software.
This
connector
this
is
the
atbot
connector
in
either
power,
automate
or
logic.
Apps.
It's
a
standard
connector
in
power,
automate
logic,
apps,
doesn't
matter
whether
you
have
standard
or
not,
and
we
have
a
number
of
conversational
actions
within
this
connector.
So
this
here
is
just
a
send
reply.
This
is
a
courtesy
reply
to
the
user
to
let
them
know
that
you
know
I
got
your
request
just
a
second.
C
This
here
is
a
get
adaptive
card
response
from
user.
So
this
is
how
we
send
the
card
to
the
user
and
wait
for
the
response.
So
you
can
see
here
in
this
drop
down.
This
is
where
all
the
adaptive
card
form
cards
are
listed
for
you
to
get
and
then
so
on
and
so
forth,
and
we
create
the
record
and
service
now
etc.
C
So
that's
kind
of
the
the
very
very
quick.
What
at
bot
is
how
we
work
with
adaptive
cards
and
how
you
can
quickly
build
build
a
skill
that
includes
adaptive
cards
without
any
code.
So
what
I'm
going
to
show
next
is
we
have
a
brand
new
feature
in
adbot?
If
I
take
a
quick
look
here,
I'm
going
to
open
one
that
doesn't
this
guy
here
we
have
this
team's
call
settings.
C
So
teams
is
it's
in
preview
right
now
you
have
to
be
using
the
developer
version
of
the
team's
client
to
use
this,
but
you
can
create
bots
that
you
can
talk
to.
You
can
call
them
and
talk
to
them,
and
in
here
you
can
see
if
we
enable
this
there's
a
whole
bunch
of
settings.
You
have
to
have
an
azure
speech
service.
You
get
to
choose
the
voice,
you
want
to
use,
there's
a
wake
word
and
all
that
kind
of
stuff.
C
So
anyway,
what
we're
doing
is
we're
allowing
you
to
build
bots
without
any
code
that
you
can
call
and
talk
to
in
teams
now
what's
really
exciting
about
this
is
where
we're
integrating
adaptive
cards
for
this.
So
what
I'm
going
to
do
is
I'm
going
to
bring
up
a
video
and
I'm
going
to
make
sure
I
have
I'm
sharing
my
audio.
C
The
reason
I
have
to
use
a
video
is
because
this
is
a
team's
call
and
I
can't
have
two
teams
calls
going
on.
At
the
same
time,
okay,
what
this
video
is
this
demo
is
mick
is
on
a
conference
call
with
two
other
people
and
he's
going
to
add
a
bot
to
the
conference,
call
that
they
can
use
awake
word
to
talk
to
that
bot
and
the
bot
will
be
able
to
to
do
some
actions
while
they're
on
the
call
together.
C
C
So
what
you're,
seeing
there,
what
just
happened
is
okay,
larry
is
a
wake
word
that
you
were
able
to
to
create
and
put
into
the
into
the
bot
and
then
let's
take
a
look
at
upcoming
bookings
was
a
lewis
intent
that
kicked
off
a
skill
and
then
in
the
flow
in
power
automate.
This
is
an
adaptive
card,
so
in
the
adaptive
card,
you're
able
to
select
that
this
is
to
be
shared
as
a
screen
share
by
the
bot,
rather
than
just
posting
it
into
the
chat
channel.
C
D
C
C
So
this
this
demo
was
put
together
in
about
an
hour
and
a
half,
because
we
didn't
have
a
whole
lot
of
time
to
to
put
it
together
and
the
cards
are
they
leave
a
little
bit
something
to
be
desired
from
a
design
standpoint,
but
I
think
the
the
idea
comes
across
here
right.
All
this
data
could
be
coming
from.
You
know,
backend
data
sources.
It
could
be.
You
know
whatever
it's
just
a
it's
a
flow
or
a
logic,
app
that
you're
able
to
talk
to
and
and
the
bot
will
display
it
on
screen.
A
Yeah,
whatever
works,
that's
pretty
cool.
I
quick
question
I
add
is
so
is
the
intention
here
that
or
from
the
scenarios
you're
trying
to
enable
that
the
cards
that
I
have
already
created
would
be
reused
for
this
like
it?
Do
you
see
these
scenarios
as
like
a
new
modality
to
existing
chat,
based
flows,
or
do
you
anticipate
that
kind
of
these
voice
enabled
bots
are
targeting
different
scenarios
and
they
would
be
built
specifically
for
for
voice.
C
I
believe
that
they
are
more
purpose-built
for
voice,
but
I'll.
Let
mick
elaborate
on
his
ideas,
so
I
think,
first
and
foremost
they
are
when
you,
when
you
build
these,
they
are
built
the
same
way
as
if
you
were
gonna
use
them
for
chat
or
voice.
So
this
same
skill
could
be
used
in
a
chat
window.
It
could
be
a
group
chat
with
the
same
folks
or
it
could
be
a
one-on-one
with
bot
those
kind
of
things,
so
the
skill
itself
there
isn't
anything
you're
doing
to
it.
That
makes
it
voice
only
video.
C
Only
like
this
it'll
work
in
either
one
honestly.
The
only
difference
would
be
the
scheme,
the
color
scheme
right.
So
the
white
background.
If
I'm
on
the
dark
theme
right
now
in
teams,
I
have
to
play
with
that
a
little
bit
more,
whereas
I'm
basically
committed
to
quote
quote
dark
theme
in
voice,
because
there
is
no
other
background.
It's
always
going
to
be
black
on
the
sides
like
that.
C
C
You'll
note
when
the
status
went
from
pending,
to
confirmed
what's
really
happening
there
from
a
power
automate
logic
apps
perspective
is
a
different
card,
is
being
sent
and
shown
and
because
it's
screen
sharing,
because
it's
screen
sharing
only
one
card
shows
at
a
time.
So
what
it
effectively
does
is
it
replaces
the
previous
card,
a
logic
app
could
be
built
for
a
meeting.
That's
just
constantly
checking
information
and
constantly
updating
whatever
card
is
being
shown
so
depending
on
you
know
what
comes
to
mind.
C
Is
operations
type
scenarios,
maybe
you're
on
a
bridge
for
an
outage
or
an
issue,
or
maybe
there's
just
something
going
on
that
you
just
have
to
constantly
collaborate
with,
and
it's
just
a
meeting
that
folks
can
join
and
leave
as
they
see
fit
depending
on
the
business
case.
A
bot
could
be
an
automated
way
to
just
keep
the
latest
and
greatest
type
of
information
on
the
screen
for
that
purpose.
C
B
C
C
I
think,
what's
what's
really
great
for
us
in
this
type
of
implementation,
you
know,
for
the
reason
we
did
it
is
is
is
because
we
can
right
so
teams
opened
up
some
apis
that
allow
bots
to
share
a
screen,
we're
a
no
code
bot
platform.
How
what?
How
can
we
take
advantage
of
that?
What
can
we
do
to
to
provide
value
there,
and
we
already
have
the
the
you
know
pretty
pretty
deep
integration
with
adaptive
cards.
C
It
just
made
sense
right
to
use
that
as
what
the
bot
can
do
to
share
its
screen,
because
really
a
bot
sharing
its
screen
means.
I
want
the
bot
to
show
me
data
and
adaptive
cards
are
a
really
great
way
to
do
that.
So
that's
kind
of
how
we
came
to
this.
How
we
came
to
this
conclusion
awesome
cool,
so
it
looks
like
we
don't
have
any
questions,
I'm
going
to
go
ahead
and
turn
it
over
to
mick
just
to
talk
quickly
about
the
implementation,
great
and
I'll,
go
ahead
and
share
my
screen.
Okay.
C
So
this
is
a
snippet
of
code.
I
extracted
from
our
our
core
code.
That's
around
the
creation!
You
know!
Conversion
of
the
adaptive
card
to
an
image
this.
This
comprises
the
use
of
the
adaptive
cards
nuget
package
for
both
the
parsing
of
adaptive
card
json
and
then
the
rendering
of
that
adaptive
card
object
into
an
image.
C
This
is
the
json
that
represents
the
card
itself,
so
coming
into
this
method,
some
key
things:
I'm
working
with
images
when
I'm
rendering
as
an
image
using
those
built-in
elaborate
calls
we'll
talk
about
in
a
second.
So
that's
gonna,
be
a
big
part
of
this
is
that's
my
my
true
output
render
width
is
a
key
piece
when
rendering
to
an
image,
you
don't
actually
specify
height,
you
only
specify
width
and
it
just
maintains
the
aspect.
Ratio
of
the
card
itself,
some
key
pieces
to
just
get
started.
Is
you
create
this
adaptive
card
object?
C
I'm
I'm
specifying
the
schema
that
I'm
working
against
and
then
you
create
an
adaptive
card
object
from
the
json
and
I'm
grabbing
the
card
object.
Now
what
I'm
not
doing
here,
it's
worth
mentioning
if
folks
are
just
getting
into
this.
This
process
is
a
parse.
It's
parsing,
this
json
for
you.
It
does
also
give
you
output
or
results
as
far
as
the
quality
of
the
syntax
of
the
json.
So
if
there's
any
warnings,
actually,
if
there's
any
errors,
all
those
things
you're
going
to
get
that,
so
it's
actually
a
tuple
you
get
out
of
this.
C
It's
a
it's!
A
it's
called
a
parts
result
object.
It's
really
got
two
parts
to
it:
the
card
itself,
plus
any
messages
about
any
warnings,
any
issues
with
what
was
parsed
those
kinds
of
things.
Once
I've
got
my
card
object
going
forward.
What
I'm
doing
here
is
I'm
going
to
render
it
as
an
image
I'm
going
to
circle
back
after
I
talk
about
that
and
talk
about
what
else
I
could
do
with
this
card
object,
because
this
is
kind.
D
C
A
starting
point-
and
we
actually
touched
on
that
earlier,
but
we
use
this
same
technique
in
a
very
different
way
in
the
in
the
ui
that
joe
showed,
where
you're
actually
building
the
cards
that
preview
display.
We
have
there.
So
at
that
point
I'm
starting
to
get
into
the
rendering
components
of
this.
The
first
thing
is:
I
establish
that
I
do
not
want
interactivity
when
I
render
the
card
since
I'm
rendering
as
an
image,
it's
not
going
to
have
buttons.
C
It
can't,
and
so
what
I
wanted
to
do
is
basically
not
show
buttons
if
I
had
buttons
on
the
card.
If
I
was
rendering
this
in
teams
I'd
want
the
buttons
to
show.
So
this
is
one
of
those
things
where,
because
I
know
I'm
rendering
an
image
I
can
take
the
buttons
out.
I
create
my
renderer
object
again.
This
is
inside
of
that
renderer.wpf
namespace.
There
is
a
render
object.
This
uses
the
host
config.
I
established
right
here
and
then
I'm
calling
an
async
method
to
render
the
image
I
send
it.
C
The
card
object,
not
the
json,
but
the
card
object.
I'm
running
this
from
a
server
again.
This
is
a
snippet
from
our
server
code
that
runs
as
a
microservice
in
a
service
fabric
cluster
in
azure,
and
I'm
sending
my
card
render
width
and,
of
course,
the
cancellation
token,
since
it's
async
at
this
point,
I
get
a
result,
object
that
includes
a
stream
to
my
image
bits.
So
I
grab
that
stream
and
I
generate
an
image
object
and
again.
C
C
What
we
use
it
for
at
this
point
is
when
we're
sharing
our
screen
in
teams,
that
is
a
15
frames
per
second
video
stream,
and
this
is
a
frame,
so
we
are
doing
this
15
times
a
second,
and
you
know,
of
course,
we're
we're
optimizing,
so
we're
not
necessarily
doing
the
same
thing
more
than
we
need
to,
but,
generally
speaking,
that's
what
I'm
using
it
for
at
that
point.
So
an
example
of
how
I
could
then
manipulate
that
image
if
I
wanted
to
is
a
stretch
to
fit
technique.
C
So
again,
this
is
now
your
standard
system,
drawing
2d
techniques
of
resizing
the
image
to
fit
whatever
aspect
ratio
you
need
now.
This
could
squish
or
squash
or
stretch
your
image
depending
on
the
original
aspect
ratio.
So
it
really
depends
on.
You
know
how
to
meet
the
need
that
you
have.
But
the
point
is:
is
that
by
using
this
going
through
this
process,
starting
with
adaptive
card
json
by
the
end
of
it,
I've
got
an
image
I
can
do
just
about
anything.
C
I
want
with
it
now
circling
back
real,
quick
on
kind
of
the
flexibility
of
having
this
as
our
foundation.
This
same
adaptive
card
object.
I
could
render
html
with
it.
I
don't
need
to
render
an
image.
I
could
actually
generate
html,
markup,
embed
it
and
then
have
that
be
served
and
and
that's
what
shows
up
in
a
website
and
that's
exactly
what
joe
showed
earlier
in
our
admin
ui
where
you're
authoring
these
adaptive
cards,
and
we
give
you
a
preview
of
what
it
looks
like
that's
using
that
same
technique,
those
same
libraries.
C
C
A
component
of
that
whole
screen
sharing
mechanism
and
in
a
very
similar
way,
but
just
different
things.
That's
also
how
we
just
render
the
adaptive
cards
in
teams
chat
as
well,
so
we're
using
these
same
libraries.
You
know
things
like
jude
mentioned:
we
templatize
our
adaptive
cards
and
those
kinds
of
things
that's
happening
here.
It's
actually
happening
before
this
is
we've
already
pre-filled
out
the
templatized
components,
and
so
the
final
result
that
gets
to
this
code
is
the
final
product
that
then
gets
rendered
as
an
image.
C
But
these
same
adaptive
card
libraries
allow
you
to
manipulate
all
the
controls
within
your
card.
Technically,
you
can
dynamically
add
elements
to
your
card.
You
don't
necessarily
have
to
feed
it
json
and
that's
all
you
can
work
with.
So
it's
a
very
robust
mechanism
and
so
lots
of
flexibility
there
and
you
know.
D
C
For
a
lot
of
creative
juices
going
forward
and
see
what
else
we
can
do
with
this
stuff,
what
I
got
for
this
go
ahead,
joe
sorry,
so,
there's
a
there's,
a
question.
The
that
async
method
that
you
call
render
card
to
image
is
he's
asking.
Is
that
a
service?
C
What
what
exactly
is
it?
So?
No,
it's
I
believe
it's
built
into
the
libraries
themselves.
It's
not
making
any
sort
of
network
calls
it's
probably
more
around
the
idea
of
being
able
to
not
necessarily
lock
up
process
resources
so
doing
it
like
this
will
allow
you
to
when,
when
you
have
the
potential
of
doing
thousands
of
these
a
second,
it
allows
the
operating
system
to
optimize
how
resources
are
used
as
that
card
is
being
rendered.
So
it's
not
necessarily
that
entire
thread
and
that
that
executable
is
only
rendering
one
card
at
a
time.
C
It
allows
for
the
the
parallel
processing
that
we
need
there's
and
there's
a
couple
different
ways
if
you're,
if
you're
not
used
to
the
async
calls
or
if
you're
used
to
thinking
of
async
calls
as
network
calls,
you
could
also
think
of
this
as
a
way
to
batch.
So
if
you
knew
you
needed
to
render
a
hundred
cards
at
once,
you
don't
necessarily
need
to
render
them
serially
awaiting
each
one.
You
could
render
all
of
them
all
at
once
and
then
those
would
generate
what
are
called
task
objects
instead
of
doing
an
await.
C
I
won't
go
into
it,
but
basically
this
gives
you
the
opportunity
to
run
parallel
or
card
rendering
at
a
much
higher
parallelism.
If
the
need
arose
right
because
there's
a
lot
of
different
uses
for
generating
images
of
adaptive
cards,
it
doesn't
have
to
be
screen
sharing
in
teams.
It
could
be
a
lot
of
things,
that's
how
we
use
it,
but
the
async
nature
of
this
allows
you
to
run
these
in
parallel.
C
If
you
needed
to,
and
no
it's
not
making
a
network
call
just
to
reiterate
that
it's
all
internal,
as
far
as
I
know,
cool
matt,
it
looks
like
some
of
those.
Some
of
those
questions
are
a
little
bit
more
generic
around
adaptive
cards
and
teams.
So
I'll,
let
you
answer.
A
A
I
I
really
like
the
potential
of
what
you
guys
are
are
doing
here.
I
we
always
the
the
bummer
with
the
render
to
image
concept,
which,
which
is
what
the
bot
framework
actually
does
as
well
for
non-adaptive
card
channels.
A
So
if
you
write
a
bot
on
bot
framework
and
want
to
make
it
available
to
facebook,
messenger
or
telegram,
or
something
that
can't
natively
render
adaptive
cards,
they
have
a
service
that
will
render
those
to
images
they
do
what
you're
seeing
here
they
say,
supports
interactivity
to
false
and
that
reduces
the
useful
fidelity
of
cards,
potentially
by
quite
a
bit
depending
on
the
scenario
of
the
card.
Buttons
get
dropped,
inputs
get
dropped.
A
So
what
I,
what
I
was
thinking
about,
as
you
were
doing
in
this
demo,
is
you
you,
since
you
actually
have
like
you
know
you
have
a
wake
word
where
you
can
interact
with
it?
Have
you
guys
thought
about
how
you
could
surface
up
the
actions
that
the
bot
can
take,
whereas
a
button
is
the
the
the
ux
way
where
I'm
like?
Oh
okay,
I
can
do
this.
I
see
a
button
on
the
screen
since
you're
only
able
to
render
an
image.
What
are
some
metaphors?
A
You
could
do
to
help
people
kind
of
learn
like
you,
you
guys
confirmed
the
date
in
in
the
demo,
confirmed
the
shipping
date,
but
it's
not
immediately
obvious
to
me,
or
at
least
in
the
demo
like
what
are
the
operations
I
could
take,
and
normally
you
know
if
you
had
ui,
you
would
present
those
as
buttons
and
that's
the
user's
hint
that
these
are
some
of
the
actions
you
can
do.
I'm
just
curious.
If
you
thought
about
how
can
you
expose
some
of
those
actions?
A
C
C
You
know,
you
add
those
commands,
you
add
those
options,
maybe
below
the
card
or
something
like
that
or
you.
You
use
like
the
the
multi-column
display
in
adaptive
cards
and
just
establish
a
set
of
commands
on
the
right
or
something
like
that.
Here's
all
the
things
you
could
say
yeah,
you
know
those
kinds
of
things
I
think
a
more
elegant
version
of
that
is.
I
am
giving
some
thoughts
that
I
can't
give
a
lot
of
details
right
now,
but
I
do
have.
A
C
D
A
A
You
can
be
interacting
it
with
on
on
what
we
were
calling
headless
at
the
time,
which
is
what
the
voice
and
and
you
guys
are
kind
of
working
on
this
kind
of
hybrid,
where
you
can
interact
with
the
bot
via
voice,
but
the
sharing
you
know,
I
think
it's
a
really
you're,
definitely
at
the
forefront
of
some
of
this
kind
of
it's
like
a
small
evolution
towards
like
the
just
human
computer
interaction,
and
I
will
follow
it
closely.
As
you
guys
run
some
experiments,
there
sounds
good
cool.
A
There
were
a
couple,
others
just
suggestions,
so
holton
mentioned
you've
got
a
lot
of
real
estate,
which
is
cool.
That's
the
nice
thing
about
sharing
the
this
full
screen,
so
yeah,
there's,
there's
you're
not
limited
to
the
length
of
the
you
know
the
meeting
chat
window,
which
which
does
give
you
some
some
cool
real
estate
to
play
with.
A
A
C
And
hilton,
your
question
around
injecting
text
into
the
text
stream.
Yes,
you
could
do
that
the
bot
can
share
its
screen
as
well
as
post
to
the
the
chat,
so
the
the
bot
could
potentially
share
a
screen
and
then
say
you
know,
select
the
options
in
chat
that
you
wish
to
do
or
save
them.
Something
like
that.
So
yeah
there's
a
lot
of
flexibility,
a
lot
of
things
that
you
can
do.
C
A
Yeah
cool
well,
so,
where
can
folks
find
you
do
you
have
how
how
can
people
kind
of
engage
if,
if
they
want
to
learn
more
about
this.
C
Sure
so,
if
you
want
to
learn
more
go
to
go
to
adbot.io,
that
is
the
the
website
you
can.
You
can
try
the
the
free
teams
at
bot
from
the
teams
app
store
which
allows
you
to
build
some
skills
in
in
power
automate
and
try
it
out
for
free,
and
you
can
move
up
to
the
premium
version.
We
give
you
a
25
credit
to
try
that
out
and
that's
also
signed
up
from
app.io
and
then,
if
you
have
any
questions
at
all,
feel
free
to
reach
out
to
hello
at
bot.io.
C
A
Thanks
so
much
you
guys,
I
love
the
partnership.
We've
had,
I
think,
we're
pushing
some
some
fun
ground
together,
so
it's
cool.
Hopefully
we
can
keep
supporting
each
other
along
this
way.
So
thanks
so
much
for
jumping
on.
I
just
have
a
quick
couple,
closing
things
and
then
we
can
kind
of
wrap
up
and
if
you
guys
want
to
help
me
kind
of
collaborate
on
many
blog
posts,
we
can
do
that.
A
But
since
if
people
joined
late
shoot
me
an
email,
matt.heidenger
microsoft.com,
if
you
are
interested
in
a
partner,
onboarding
meeting
very
low
friction
we're
just
looking
for
folks
who
are
currently
building
cards
with
teams,
ideally
teams
and
outlook.
So
we
can
talk
about
some
functionality,
we're
working
on
to
make
it
easier
to
build
cards
for
those
experiences,
so
it'll
be
about
an
hour
long
meeting
on
february,
and
if
we
get
a
lot
of
interest,
we'll
just
do
a
separate
one
but
but
reach
out
to
me.
If
you'd
be
interested
in
that
and
lots
of
resources.
A
This
slide,
you
see
it
all
the
time.
Adaptive
cards
that
I
owe
the
roadmap
still
shows
the
stuff
we're
going
to
be
working
on
throughout
this
quarter
and
the
first
half
of
this
year,
a
bunch
of
other,
really
great
microsoft,
365
developer
community
calls
are
going
on.
So
if
you've
got
some
extra
time
join
some
of
these
as
well,
I
think
we
did
q
a
so.
I
will
just
kind
of
show
this
again
ak
dot.
Ms
m365
dev
youtube
is
where
all
of
these
videos
go
and
there
is
the
adaptive
card
playlist.
A
So
if
anyone
any
general
questions
for
either
the
atbot
friends
or
just
in
general
adaptive
card
stuff-
and
I
saw
a
couple-
can
we
use
the
third-party
fonts
on
the
adaptive
card
without
installing
these
fonts
to
client
machines?
That's
a
really
interesting
question
on
fonts.
We
shoot
me
an
email,
I'd
like
to
understand
the
font
stuff
usage.
A
That
said,
if
you
do
not
own
the
client
machine,
as
in
you
want
to
send
a
card
to
teams
or
to
outlook
that
is
not
possible,
you
can
only
use
the
fonts
that
that
those
apps
have
provided,
but
if
you're
rendering
cards
doing
what
you
know,
the
code
that
mick
showed
by
using
our
rendering
sdks,
you
have
a
lot
more
flexibility
there.
So
I
can
explain
that
in
more
detail,
if,
indeed,
you
are
rendering
cards
yourselves,
you
could
also
file
an
issue
on
our
github,
actually
github.com,
microsoft,
such
adaptive
cards.
A
B
A
Yeah
and
about
the
kind
of
fancier
font
and
stuff
we
we
have
considered
that
we
we
have
the
potential
to
introduce
more
fonts
with
the
previous
release.
1.2
we
added
mono
space.
A
I
know
things
like
bootstrap
have
you
know
headers
or
like
jumbotrons,
or
things
like
that,
where
you
can
kind
of
opt
into
a
much
larger
kind
of
artsier
font,
artsy
being
the
technical
term
and
yeah
we,
we
have
the
potential
to
add
that
so
things
like
that
suggestions,
like
that
the
best
place
for
suggestions
is
going
to
be
ak
dot.
Ms
slash
ac
roadmap
and
totally
can
add
suggestions
for
either
vote
on
things.
That's
where
you're
going
to
get
our
roadmap,
I
normally
show
it
every
month,
but
I
have
it
in
the
last
little
bit.
A
That's
where
you
can
see
things
that
are
upcoming,
things
that
are
planned
and
you
can
kind
of
submit
and
tell
us
what
is
most
interesting
to
you
very
low.
Friction.
You
don't
have
to
create
an
account.
You
just
have
to
put
an
email
address
and
then
describe.
You
know
why
you
think
this
is
or
really
help
us
understand
why
this
is
valuable
and
then
tried
the
new
take
png
to
car
my
first
ride
in
any
documentation
on
what
sizing
everything
needs
to
be
set.
A
A
A
Haritas,
do
you
know
anything
offhand
on
that,
so
he's
so
just
so
everyone's
aware,
this
is
actually
a
really
cool
feature
that
we
need
to
start
advertising
a
little
better
on
adaptivecards.io,
and
if
you
go
to
the
designer
you
click
new
card,
there
is
a
create
from
image
feature
that
that
we
demoed,
I
think
in
november,
and
it's
now
available
on
adaptive
cards
and
we're
they're
rolling
out
fixes
that
was
built
by
our
community.
A
company
from
imagineer
who,
like
adpot,
has
been
great
partners
with
adaptive
cards
and
yeah.
A
You
can
create
these
images
like
in
illustrator
or
whatever,
and
turn
them
into
adaptive
cards.
It
possibly
you
know
it's
still
a
work
in
progress
and
they're.
Sending
me
updates
so
we'll
we'll
get
a
roll
out
on
the
update,
but
yeah
hari
decided
to
see
if
you're
still
on
the
call.
If
you
know
anything
yes,
hi.
A
Yeah
craig,
do
you
wanna
is,
is
it
if
it's
just
like
it
didn't
work
at
all?
Let
us
know
if
it
didn't
really
render,
as
you
expected
the
best
way
to
submit
that
feedback
is
in
github
and
if
you
can
provide
as
much
context
as
you
can
like
here
is
the
illustrator
here's,
the
png
I
use,
you
know
hear
what
you
were
expecting.
I
think
that's
haritas.
Is
that
really
the
best
way
to.
F
Get
that
to
you
yeah
right
now:
github
issues
the
right
way
since
we
didn't
put
any
trackers
or
anything
in
the
service.
So
nothing
is
there
at
the
back
end
yeah
with
any
sample
that
you
tried
out
so
that
we
can
reproduce
and
see
what
went
wrong
or
something.
E
Okay,
yeah
it
it
it
went
in
it
just
didn't
render
like
it
was.
Some
things
were
really
big
and
it
didn't
pull
everything
in.
So
it
was
kind
of
like
it
captured
some
of
the
things
from
the
png,
but
not
all
the
things.
A
A
I
I'm
going
to
make
a
note
here
to
add
a
new
issue
template
on
github,
that
is
for
picard
stuff
to
hopefully
make
that
easier
on
folks
and
potentially
just
to
read
us.
I
know
we
talked
about
it
before
I
don't
know
if
we
want
to
explore
ways
to
make
a
link
within
pictocard
itself
to
file
feedback.
If
we
want
to
explore
that
just
to
try
and
increase
the
amount
of
you
know,
data
we
get
to
try
and
refine
it
over
time.
F
Yeah,
I
think
we
were
planning
on
the
road
maps
in
future,
but
yeah.
A
Yeah
thanks
for
trying
that
craig.
E
Yeah
well,
what
I'll
do
is
I'll
go
over
to
my
developer
account
and
get
it
there,
because
where
I
tested
out
is
with
the
company,
that
is
my
client
right
now,
and
so
I
can't
like
send
you
guys
anything
from
the
client
but
I'll
flip
it
over
to
my
developer,
account
and
send
you
what
I
can
there.
A
A
couple
of
questions
so
can
we
set
the
fill
background
color
on
input
controls
again
it
depends
on
if
you're
rendering
cards
then
yes
like.
If
you
are
literally
rendering
the
cards,
if
you're
just
sending
cards
to
teams
or
outlook,
we
don't
have
the
ability
to
customize
the
inputs
again
in
kind
of
the
name
of
consistency.
That
teams
wants
the
cards
to
look
consistent.
There
are
things
like
container
styles,
so
you
can
set
the
background
on
containers
and
things
like
that,
but
the
inputs
themselves
no
falls
into
this.
A
If
that's
a
suggestion
you'd
like-
and
you
can
give
us
some
more
understanding
about
your
scenario-
that
aka.ms
ac
roadmap
link
is
going
to
be
the
best
way
to
kind
of
submit
those
ideas.
We
go
through
all
that
feedback
and
prioritize,
and
then
is
there
a
resource
we
can
connect
on
questions
on
building
on
a
custom
version
of
the
designer.
You
can
talk
to
me
and
I
think
david
close
on
the
call
he's
the
main
maintainer
of
the
adaptive
card
designer
or
he
might
not
be
on
it
anymore.
But,
oh
okay,
sorry
yeah.
A
I
think
we're
gonna
be
the
the
folks
that
be
the
best
to
talk
to
or
again
on.
Github
is
also
just
an
easy
way
if
you
want
to
have
a
discussion
there
or
how
to
hook
in
it,
yeah
yeah
does
that
work
for
you,
yeah
just
go
ahead
and
yeah,
we'll
we'll
monitor
the
github
there
and
the
docs.
The
npm
docs
do
go
into
a
lot
of
advanced
functionalities.
So
take
a
look
there
as
well,
but
we'll.
D
A
D
A
To
try
and
help
you
cool,
thank
you
so
much
sure
and
then
yeah
so
okay
shalini
had
called
mentioned
some
of
the
the
the
github
issues
yeah,
not
to
make
a
complete
excuse,
but
microsoft.
One
of
the
things
I
really
enjoy
about
working
here
is
they
really
encourage
people
to
disconnect
over
the
holiday
season
and
the
place
is
a
ghost
town
in
the
second
couple
weeks
of
december.
So
we
are
just
kind
of
getting
back
in
the
swing
of
things
that
probably
accounts
for
some
of
the
delays.
A
But
that
said,
we
are
working
on
establishing
and
maintaining
and
tracking
our
slas
for
issues
and
things
one
pr.
You
would
find
a
lot
of
microsoft.
Repos
are
gonna
start
having
a
support.md
file
similar
to
our
privacy.md
and
our
security.md,
and-
and
this
is
going
to
describe
the
level
of
support
you
can
expect
from
the
various
things
which
I
think
is
a
great
initiative
to
start.
A
Adding
ours
will
be
coming
in
in
within
the
next
week,
describing
the
level
of
support
for
different
things
and
over
time,
we'll
do
a
better
job
at
kind
of
tracking
our
slas
going
from
first
response,
and
that
is
definitely
top
of
mind.
So
we
appreciate
your
patience
and
also
just
kind
of
raising
the
importance
that
that
is
to
or
has
to,
okay
cool
yeah.
We
can
talk
about
the
designer
stuff
offline
or
in
the
github
issue.
A
Frankly,
whatever
you
guys
prefer
or
if
you
want
to
do
it
now,
I'd
be
fine
with
that
too,
but
I
did
want
to
just
kind
of
close
the
call
officially
thanks
everyone
for
joining
happy
two
weeks
into
2021.,
we'll
see
you
in
february,
in
just
a
couple
weeks,
hopefully
you'll
be
able
to
join
us.
I
do
want
to
also
anyone
who's
still
here,
thanks
again
adbot
and
previously
our
friends
from
neo
helden.
If
people
want
to
participate
on
these
calls
drop
me
a
mail
on
that
too.