Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

Table of Contents
maxLevel2
minLevel2
absoluteUrltrue
typeflat
separatorpipe
Excerpt
hiddentrue

For a content review with multiple assigned reviewers, increment a metadata value each time a reviewer approves the content and set a trigger to approve the page when a set number of reviewers have approved the page

Overview

Content reviews will often assign several reviewers. Once assigned, the workflow requires that all the assigned reviewers agree – either Approve or Reject – before the workflow transitions agree - either Approve or Reject - before transitioning to another state.

...

Rather than waiting for all the assigned reviewers to approve the content, the workflow author may want to transition the workflow after receiving approvals from a set number of the assigned reviewersthem.

We can do this using a metadata item as a counter and incrementing the counter using the {increment-metadata} macro.

Set and increment the approval counter to action the approval

The workflow uses the following trigger actions:

  • initialize a counter value using

    {

    set-metadata

    }

     macro

  • increment the counter value using

    the {

    the increment-metadata

    }

    macro

  • action the approved transition using the

    {

    approve-page

    }

    macro when the counter value reaches a specified number

In the simple increment metadata example, the content is approved when three of the five assigned reviewers have approved the content.

Code Block
theme
languagetextRDark
{workflow:name=Increment Metadata Counter for an approval}
    {description}
        A simple approval workflow with use of increment-metadata macro to set the number 
        of assigned reviewer approval decisions to trigger the approval transition.
    {description}
    {state:Review|approved=Approved|Rejected=Rejected|taskable=true}
        {approval:Review|user=&suni,adam,elle,matilde,milo}
    {state}
	{state:Rejected|submit=Review|taskable=true}
	{state}
    {state:Approved|final=true|updated=Review|hideselection=true}
    {state}
	{trigger:statechanged|state=Review}
    	{set-metadata:approval-counter}0{set-metadata}
	{trigger}
	{trigger:pageapproved|approval=Review|partial=true}
    	{increment-metadata:approval-counter}
	{trigger}
	{trigger:pageparameterupdatepageapproved|parameterapproval=@approval-counter@|@approvalReview|@metadatafield.approval-counter@=3}
    	{approve-page:Review|comment=Three reviewers have approved the content}
	{trigger}
{workflow}

This example may can be useful when you have a large number of users who are members of a global Confluence group that , which is the assigned the assigned reviewer group but , and your approval practice does not require all assigned users to undertake the content review.

Here's how each trigger action works

Trigger

Event

Action macro

Notes

Initialize the metadata

statechanged

{

set-metadata

  • sets the metadata as approval-counter

  • initializes (or resets) the metadata approval-counter value to zero on the state change event

to 
  • to the Review state

Approval counter

pageapproved

{

increment-metadata

}

  • increments the approval-counter value by 1 each time a reviewer approves the content

  • condition partial=true  means that the trigger listens for each individual approval decision

Approve the page

pageparameterupdate

{

approve-page

}

  • approves the content when the parameter value is updated of the approval-counter is incremented to a value of 3 (trigger event condition is 

@approval
  • @metadatafiled.approval-counter@=3)

An individual reviewer's rejection decision on its own does not impact the metadata approval-counter value but be aware there is an impact on , but it does impact the context of an approval transition.

For example

  • the {

    the approve-page

    }

     macro is triggered when the approval-counter value is 3, even if one or more of the assigned reviewers have rejected the content

  • the approval-counter value is not decreased if a previous user changes their approved decision to rejected

    .

This may mean the approve-page action may can occur if

  • an assigned approver has rejected the content, but three other assignees have approved the content

  • a single assignee approves and rejects the content two times and then undertakes a third approval decision without any other assignee approving the content

We By managing a rejection decision, we obviously need to avoid these mixed decisions causing an overall approval by managing a rejection decision.

Manage reviewer rejection of the content

An additional trigger may be useful to initiate a fast-tracked rejection.

Code Block
languagetextthemeRDark
{trigger:pagerejected|approval=Review|partial=true}
      {set-state:Rejected}
{trigger}

...

The addition of the fast-tracked rejection trigger to this workflow can be used to manage: 

  • when a single reviewer rejects the content

  • when a reviewer changes their content review decision before any transition occurs