Add an approval counter to fast-track an approval
Overview
Content reviews often assign several reviewers. Once assigned, the workflow requires that all the assigned reviewers 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 them.
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 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.
{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:pageapproved|approval=Review|@metadatafield.approval-counter@=3}
{approve-page:Review|comment=Three reviewers have approved the content}
{trigger}
{workflow}
This example can be useful when you have a large number of users who are members of a global Confluence group, which is the assigned reviewer group, 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 |
|
| |
Approval counter |
|
| |
Approve the page |
|
|
An individual reviewer's rejection decision does not impact the metadata approval-counter value, but it does impact the context of an approval transition.
For example
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 contentthe
approval-counter
value is not decreased if a previous user changes their approved decision to rejected
This may mean the approve-page
action 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
By managing a rejection decision, we obviously need to avoid these mixed decisions causing an overall approval.
Manage reviewer rejection of the content
An additional trigger may be useful to initiate a fast-tracked rejection.
{trigger:pagerejected|approval=Review|partial=true}
{set-state:Rejected}
{trigger}
A single rejection decision will transition the content to the Rejected state.
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