►
Description
This community call demo is taken from the SharePoint General Development Special Interest Group recording on 7th of March 2019. In this video Chaks (Microsoft) shows how you can customizer modern page approval wofklow using Microsoft Flow.
Presenter - Chakkaradeep (Chaks) Chinnakonda Chandran (Microsoft) - @chakkaradeep
Full details on the community call from https://developer.microsoft.com/en-us/sharepoint/blogs/sharepoint-dev-community-pnp-general-sp-dev-sig-recording-7th-of-march-2019
More details on the SharePoint dev community calls from http://aka.ms/sppnp.
A
Lots
of
flow
demos,
I
thought
I,
would
just
focus
today
on
the
modern
page
of
rules
and
I.
Think
many
folks
would
like
to
see
what
they
can
do
on
top
of
the
default
bottom
page
of
the
workflow
that
gets
created
on
the
side,
so
I'm
not
going
to
go,
create
the
flow
because
I
think
the
create
the
flow
just
takes
time.
So,
basically,
you
start
with
your
pages
library
icons.
A
You
got
a
page
approval
flow
under
the
flow
menu,
and
then
you
get
the
create
flow
button
where
you
can
create
the
page
of
the
words
flow,
so
that
by
default
gives
you
a
really
simple
approval
flow,
no
different
than
any
approval
that
you
would
see
in
the
flow
service
right.
So
what
I'm
going
to
do
today
is
I'm
going
to
kind
of
like
now
show
you
what,
if
you
want
to
have
multiple
workflows
and
then
how
do
you
handle
news
post?
A
And
how
do
you,
you
know,
sort
of
approach,
author
of
who
pages
as
one
example
scenario
and
then
look
at
federal
approvals
as
well.
So,
let's
jump
in
so
this
over
here
allows
you
to
create
different
approval
flows,
so
you
are
not
entitled
with
just
one,
but
you
can
have
multiple
approvals
flow,
so
this
is
really
useful,
because
once
you
basically
want
to
have
different
workflows
for
different
type
of
content,
we
don't
have
to
complicate
by
putting
all
of
the
logic
into
one
flow.
A
You
can
basically
put
you
know,
have
multiple
workflows
and
basically
ask
users
depending
on
the
content.
Can
you
select
the
right
workflow
so
here
is,
for
example,
I
have
submit
page
for
approval
and
summit
news
for
right.
So
now,
I
created
a
page
I
did
not
create
a
new
post,
so
I
could
choose.
As
an
author.
I
know
that
I'm
supposed
to
choose
submit
page
for
approval,
but
you'll
get
the
options
here,
and
this
is
really
I
think
I
would
recommend,
rather
than
putting
all
of
the
logic
in
one
big
bucket.
A
That
is
one
big
flow,
so
that's
the
associating
multiple
workflows
just
getting
started
with
using
you
know
different
workflows
for
different
content
areas.
The
next
one
is
doing
some
conditions
right.
So
this
is
great.
This
is
not
a
page,
though.
So
what
happens
if
I
actually
use
submit
news
for
approval,
and
you
know,
go
through
the
flow
to
give
some
message
and
send
it
to
you
know
up
Lewis,
we
leave
you
and
let
me
know,
and
I
kind
of
submit
this
page
right.
A
So
this
is
not
a
news
post
now
I
did
submit
it
for
the
news.
For
so
what
should
happen?
Basically
it
should
the
flow
should
be.
You
know,
smart
enough
to
kind
of
say,
hey
sorry,
it
is
not
a
news
post,
so
you
cannot
use
this
flow
right
now,
that's
exactly
the
email.
I
got
news.
Approval
only
works
with
news
post.
You
know,
please
create
a
news
for
since
I
made
that
far
upriver
instead
of
submitting
a
page
for
up
the
world
really
cool
right.
So
how
do
we
do
this?
A
So
if
I
go
to
my
flow,
submit
news
for
a
fool:
I
have
modified
the
default
flow
to
use
something
that
I
first
initially
check.
If
it's
a
news
post
now,
if
you
have
all
of
these
actions,
get
file
properties
get
files
metadata
and
then,
when
you
build
a
condition
now
you
can
actually
see
in
the
gate
file
properties.
You
got
a
bunch
of
properties
that
pages
itself
uses
in
the
pages
library
for
you
to
be
using
it
in
your
flow
as
well.
A
Now
one
of
the
things
I
would
suggest
here
is
consider
these
columns
that
you
get
out
of
the
boxes,
read-only
columns,
they
can
be
manipulated
today
and
you
can
edit
them
and
update
them
in
the
flow,
but
I
would
expect
that
would
lead
to
different
problems.
So,
let's
make
sure
that
you
know
these
property
is
something
that
you
consider
them
read-only,
because
you
didn't
create
the
system
created
it
for
you.
A
So
one
of
those
properties
is
promoter
state
and
that
promoter
state
has
basically
zero
or
one,
and
one
is
basically
a
news
post
and
zero
is
a
page
so
I'm
checking
if
promoter
state
is
one.
That
means
we'll
tell
me
this
is
a
news
post.
If
yes,
I'm
going
to
go
and
basically
send
for
approval,
if
not
I'm,
going
to
basically
reject
that
approval
and
send
the
email
that
just
saw
what
I
received
my
inbox.
A
B
A
Look
at
Auto
approvals
right,
so
I'm
here
I'm
going
to
create
a
news
post
and
I'm
gonna
put
this
news-post
demo.
You
know
I'm
a
I'm,
a
manager
here.
So
I
expect
this.
This
thing
just
gets
published.
I
don't
want
to
be
going
through
approval
process
because
I'm,
a
manager
now
I
have
some
powers
in
the
organization.
Let's
go
to
the
submitted
news
for
approval.
A
Our
manager
can
submit
this
and
I'm.
This
is
really
out
of
food,
so
I'm
going
to
go
to
court
like
any
approvals
and
and
basically
go
through
those
steps.
So,
let's
see
what
happens
in
a
minute,
I
should
get
an
email
there.
You
go,
I
got
an
email
and
the
email
says
your
page
was
out
of
published,
wait.
So
now,
as
a
manager,
I
don't
have
to
go
through
this.
You
know
approval
thing,
but
if
I
go
as
a
normal
user
and
say
news
post
and
say
this.
B
A
Now
this
should
take
me
through
the
approval
process.
Within
a
few
seconds,
I
should
receive
an
email
here,
I'm
saying
that
that
user-submitted
theorem
actually
submitted
this
page
for
approval.
Hopefully
it's
quicker
there.
This
this
use,
use
this
post
approval
for
publishing.
So
this
is
how
I
can
easily
now
differentiate,
right
and
I
can
put
those
conditions.
Every
organization
has
different
processes
and
different
guidance
on.
You
know
how
auto
approval
should
work,
but
here
is
our
my
order
of
words.
So
I
use
the
get
direct
reports
action
available
in
flow
under.
A
Somebody
is
trying
to
connect
interesting
anyway,
looks
like
my
home
is
ready
for
prime
hacking,
but
anyway
so
get
direct
reports
for
the
user
email.
So
this
user
email.
If
you
look
at
in
the
dynamic
content,
it
says
that
the
address
of
the
user
to
trigger
the
flow
right
so
if
its
meaning
that
it's
me
of
Karam,
it's
Karen
and
then
I
check.
If
this
manager
has
direct
reports
right,
so
the
length
I'm
just
doing
length
of
the
value
right.
A
So
the
value
will
give
me
all
of
the
direct,
of
course,
if
that
is
greater
than
zero,
if
the
array
is
greater
than
zero,
then
yes,
this
person
is
a
manager,
so
order
approve
the
page,
if
not
I,
go
to
the
normal
approval
process
and
and
complete
the
ask
you
or
reject
based
on
whatever
I
leave
you
the
page.
So
it's
really
simple
right.
So
that's
the
kind
of
what
we've
seen
we
saw
the
associating
multiple
approval
workflows.
We
saw
how
we
can
handle
you
suppose.
A
We
also
saw
a
scenario
where
I
can
identify
someone
as
a
manager,
and
you
know
order
approve
pages
for
the
manager.
Let's
look
at
some
complex
scenario,
parallel
approvals,
so
if
what
if
you
want
to
track
the
approval
at
every
stage
and
and
also
have
a
way
where
you
locked
certain
things,
you
can
audit
certain
things
and
you
get
the
flexibility
of
how
each
of
you
will
face.
You
know
goes
through
so,
for
example,
if
it's
charged
the
approval
might
be
different.
A
A
Flow
I'm
going
to
submit
so
this
one.
The
approval
goes
to
two
people.
It
comes
to
me,
the
user
that
I'm
currently
using,
and
then
it
goes
to
another
user
over
here
as
well.
So
you
should
see
emails
coming
through
very
soon
on
this
approval,
though
I
got
my
approval
right,
so
I
can
do
everything
from
here
or
I
can
also
basically
go
to
the
page
review
of
rules.
I'm
going
to
see
the
approval
over
here.
B
A
A
A
Emm
and
I'm
going
to
reject
this
right.
So
imagine
the
scenario
right
now:
somebody
approved
it,
but
still
that
should
didn't
be
approved
because
the
other
person
in
the
parallel
would
throw
actually
is
now
going
to
reject
it.
So
what's
going
to
happen
now,
the
ideal
scenario
should
be
that
my
approval
page
should
be
rejected.
There
you
go
it
immediately
refreshed
so
I
should
get
an
email
now
saying
what
happened
so,
who
say?
The
pages
are
cooled
by
caramel
to
sit
back
to
Brad
and
here's
the
comment
that
carrom
actually
put
in
phone.
A
You
know
both
if
both
users,
you
know,
reject
the
page.
You
see
the
pages
are
approved
by
kerim
and
chats
right.
So
and
and
then
you
have
both
the
comments
here.
So
how
do
we
do
this
thing?
So,
let's
go
back
to
the
other
flow
submit
page
where
we
will
so
this
one
has
gone
through
several
modifications
and
then
the
key
modification
here
is
using
a
parallel
branch
right.
A
So
as
soon
as
you,
you
create
a
scope,
scope
needs
an
action
to
start
paddler
branch
and
the
action
that
we
can
use
is
the
one
that
you
said
comes
in
pending
and
from
there.
You
start
to
approvals.
Is
we
have
fire
approvals?
You
can
have
five
lateral
branches
right
and
the
scope
allows
you
to
basically
come
down
to
a
single
point
of
execution
after
that
branch
are
on,
after
all,
of
those
fabulous
get
executed.
So
here
in
start
and
approval,
nothing
really
fancy
going
on
is
the
same
approval
in
the
conditions.
A
However,
what
I'm
going
to
do
is
I'm
incrementing
the
approved
count,
so
I'm
tracking
how
many
people
are
approving
this
particular
request.
This
whole
work
was
right.
This
is
the
page
and
then
I'm
also
basically
getting
hold
off
the
comments
that
this
user
would
put
in
this
approval.
Rejection
area
right
so
here
this
is
for
the
approval
comments.
Similarly,
for
up
who
was
rejected
because
I
don't
know
who
could
reject
this
I'm
going
to
track
if,
at
all,
this
person
rejected
I'm
going
to
put
that
person's
name
into
an
array.
A
Are
you
variable,
and
similarly
the
rejected
comments
as
well,
so
now
I
get
a
like
enough,
hey
what
happened
in
approve
and
what
happened
in
rejected
right.
So,
similarly,
the
same
goes
for
the
other
person
as
well,
and
I
do
the
same,
and
by
this
time,
if
both
are
proved,
the
approve
will
be
true
and
by
the
time
both
of
food
will
have
their
comments
in
here.
If
somebody
rejected
right,
they
approved
will
be
just
one,
because
only
one
approved
it
and
one
projected
and
then
it
both
rejected
this.
A
Basically,
you
won't
move
at
all
will
be
in
zero
and
same
thing
for
rejected
comments
as
well.
And
finally,
what
now
makes
me
check
for
if
the
request
has
been
approved
or
not,
is
shaking
the
variable
right,
the
variable
that
I
incremented
every
time
somebody
approved
if
that
is
equal
to
2,
then
both
approved
it.
So
that
is
the
condition
that
everyone
must
approve
and
if
they
approved
it,
then
I
check
the
I
set
the
content
approval
to
approved,
and
then
email
notification
sent
that
everything
is
good.
A
If
not
I
reject
the
page
and
I
send
the
email
notification.
So
one
of
the
cool
tricks
you
can
do
here
since
you
are
all
using
array
variables
so
I'm
using
all
of
the
collections
here
as
an
after
the
approvers
rejected
and
and
even
the
I
don't
use
their
addictive
string
now.
But
you
can
see
I'm
using
array.
Power
like
who
are
the
approvers
are
rejected
them.
A
What
are
the
comments
for
approved
and
rejected
so
that
now
you
can
use
the
join
expression
for
when
you
do
the
rejecter
sorry
I'm
going
for
and
also
approval
is
easy.
You
know
that
both
approved,
so
you
can
get
the
names
of
the
approval.
You
can
get
the
names
of
comments.
The
rejection
is
pretty
complex
way
because
you
have
to
know
who
rejected
it
either
of
one
detective
and
what
are
the
comments
either
of
one
gear?
A
So
for
that
you
can
simply
use
a
really
cool
expression
called
join,
and
then,
if
you
see
my
join,
all
I
do
is
join
variables,
approvers
rejected.
So
that's
the
array.
It
goes,
who
are
the
approvers
rejected,
and
if
there
is
more
than
one
it
will
concatenate
that
with
the
Amberson
right
really
really
simple,
there's
no.
This
is
like
this
is
a
straightforward:
I,
have
an
array
I
combined
them
with
Amberson.
If
you
get
two,
you
get
Amberson
included
in
the
middle.
If
not
you
just
get
one.
A
Similarly,
you
do
for
join
right
and
I
only
have
the
rejected
comments
in
the
array.
Variable
I
use
that
and
now
I
use
a
instead
of
Amazon
just
indicate
that
a
there
are
two
comments
here
and
there
are
the
comments
now
you
can
take
this
further
complex
and
say
that
this
person
did
this
comment.
This
person
did
that
comment,
if
you
basically
do
a
multi
dimension
array
and
stuff
like
that,
so,
but
this
is
a
really
simple
way
to
kind
of
like
bring
an
array
and
and
make
them
a
string
in
flow.
A
So
this
is
how
this
flow
works
and
it
has
panel
approvals
and
actually
it
makes
total
sense.
If
you
want
to
track
this
now,
you
can
audit
everything
along
the
way
to
understand
what
happens.
You
can
even
put
it
back
into
the
SharePoint
list
and
and
add
a
column
in
your
pages
library
that
references
that
to
show
all
of
the
comments.
So
this
is,
you
have
endless
possibilities
now
that
you
can
go
start
doing
these
things,
so
so
that
was
my
demos
that
I
wanted
to
share
today
with
you
all
so
I.
C
You
Chuck's,
really
awesome
stuff,
really
great
to
see
these
things
and
how
it
what's
possible
with
with
the
flow
one
and
SharePoint
integration,
and
there
was
one
question
which
I
wanted
to
just
double
check
checks.
We
don't
have
to
actually
explicitly
well
anyway,
so
there's
external
users
for
power
apps.
Is
there
a
any
any
information
from
your
site
related
on
supporting
power,
apps
for
the
external
users
and
SharePoint
Online
I?
Think
it
was
I
can't
remember
who
asked
the
question,
but
it's
it's
understandable
request.
C
A
And
custom
farms
is
coming
yeah
we're
working
on
that
I,
don't
know
the
plans
of
how
external
users
in
standalone.
Perhaps
that's
something
I
think
we
should
understand
how
power
up
steam
is
going
to
work
on
that,
but
they're
working
on
that
as
well,
because
both
are
kind
of
like
tight
together
but
yeah.
It's
coming
really
soon
so
external
users
when
they
go
to
a
list
and
see
open
a
form
that
is
a
custom
form
they'll,
be
able
to
use
it
yep.