How can I leverage Comala to build an approval workflow for Release & Deployment plan in Wiki?

starryeyes April 2, 2020

I am trying to streamline my team's release & deployment plans. Major issues found:

- Tracking required sign-offs to approve release and deployment plan

- Sending escalation when approval is not received by specific parties

- Restricting editing during certain approval phases

- Allowing editing for specific users at specified phases (i.e. Operations team can upload documents and change request tickets at the Ops Review phase)

- Reusing the approval template for new R&D plans without creating a new workflow

At the moment, my team currently tracks approvals via email. We would want to move away from using email as form of tracking approvals on release and deployment plan. Our release and deployment is maintained on the team's Wiki Confluence site. However, we are trying to find ways to 

(1) Identify data that needs to be provided at specified time (i.e. Draft phase the following fields are required prior to submission)

(2) Identify users that must supply specific information at specified phase (i.e. If specific group has a release, the leads must enter data in specific fields)

(3) Restrict users from editing during specific phases (i..e. Prod Ops can only enter data during Prod Review which does not return the content to draft)

(4) System send escalation to specified persons when approval is not received at a specific timeframe (i.e. PM fails to provide feedback an email is sent to senior management)

 

Confluence has Comala workflow as an existing plug-in feature. I tried testing out this feature but I noticed there some limitations using the workflow builder. Does anyone know whether Confluence/Comala can be leverage to build a robust in-house application described above?

3 answers

2 votes
Jorge Merino
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
April 6, 2020

Hi @starryeyes

All the document control functionalities that you describe are often configured in Comala Document Management. I have created the following workflow trying to adapt your requirements. I can explain better any specific question, however, I recommend you start with this workflow. You'll need to copy the following workflow to a test space. Then, configure the parameters at Space Tools -> Document Management -> Parameters. Finally,  create a  new page using the label "planned". 

{workflow:name=Release and Deploy|label=planned}
{description}
The Release and Deploy has four states.
You can define the Reviewers and Prod Ops and Senior Management in the Space Admin Workflow Configuration.
{description}
{workflowparameter:Reviewers|description=Reviewers group|type=group}
confluence-users
{workflowparameter}
{workflowparameter:Prod Ops|type=group}
confluence-users
{workflowparameter}
{workflowparameter:Senior Management|description=Escalate notification|type=group|edit=true}
confluence-users
{workflowparameter}
{workflowparameter:pagefield1|description=Something related to the project|edit=true}

{workflowparameter}
{workflowparameter:pagefield2|description=More things related to the project|edit=true}

{workflowparameter}
{workflowparameter:expiry|description=Mail to Management|type=duration|edit=true}
P7D
{workflowparameter}
{state:Draft|submit=Reviewed}
{state}
{state:Reviewed|approved=Prod Review|rejected=Draft|colour=#ffab00|requiredparams=pagefield1,pagefield2}
{approval:Team approval|assignable=true|group=@Reviewers@|exclude=@creator@}
{state}
{state:Prod Review|approved=Released|rejected=Reviewed|taskable=true|duedate=@expiry@|changeduedate=true}
{approval:Operations|user=@Prod Ops@}
{approval:Management|user=@Senior Management@}
{state}
{state:Released|final=true|rejected=Prod Review|updated=Reviewed|hideselection=true}
{state}
{trigger:statechanged|state=Draft}
{set-message}
Instructions of the workflow here
{set-message}
{trigger}
{trigger:statechanged|state=Reviewed}
{set-message:style=note|duration=1m}
Please assign the approval to a team member
{set-message}
{trigger}
{trigger:statechanged|state=Prod Review}
{set-message}
Page Restricted only users with edit permissions can view this version of the page!
{set-message}
{set-restrictions:type=Edit|group=@Prod Ops@, @Senior Management@|user=@creator@}
{set-restrictions:type=View|group=@Prod Ops@, @Senior Management@|user=@creator@}
{trigger}
{trigger:statechanged|state=Released}
{set-message}{set-message}
{remove-restriction:type=Edit}
{remove-restriction:type=View}
{trigger}
{trigger:pageapproved|approval=Team approval}
{send-email:user=@Prod Ops@,@Management@|subject=Page ready for final approval}
The page @page@ has been approved by [~@user@] and is waiting for your final approval.
{pageactivity}
{send-email}
{trigger}
{trigger:pagerejected|approval=Team approval}
{send-email:user=@creator@|subject=Document rejected}
Your assigned reviewer has reviewed and rejected @page@
Comment: @approvalcomment@
{send-email}
{trigger}
{trigger:pagerejected|approval=Management|partial=true}
{set-state:Reviewed|comment=Page rejected by @user@. Comment: @approvalcomment@}
{trigger}
{trigger:stateexpired|state=Prod Review}
{set-label:delayed}
{set-state-expiry:duedate=@expiry@}
{send-email:user=@Operations>pendingusers@|subject=Reminder}
Operations approvers, please review and respond at your earliest convenience.
Please approve Approval X on @page@
{send-email}
{send-email:user=@Senior Management@|subject=Approval delayed}
Management team, please review and respond at your earliest convenience.
Please approve Approval X on @page@
{send-email}
{trigger}
{workflow}

Please, find here the Workflow Authoring Guide. If you have any question or you do not understand any part of the Markup please let me know it. 

Best regards,
Jorge

starryeyes April 7, 2020

Thank you Jorge for providing the detail template to start with. The Space Configuration is that only available at the Administration level?

starryeyes April 7, 2020

Is possible to configure the approval to detect missing information on the wiki page? For instance before submission for review, a test plan must be added or linked to the document. At production operations review phase, they must provide specific details on the document etc. 

Jorge Merino
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
April 13, 2020

Hi @starryeyes,

By default, only the administrators of the space will be able to access the configuration menu of Comala Document Management via Space Tools -> Document Management.
You can find more info about it here.

Regarding your second question, I would recommend adding detailed information of the steps that the user should perform before submitting the page at each state using the set-message macro that you can see in the example of my previous message. 
Another possibility could be using "requiredparams", this functionality forces the user to insert the value of a field before transitioning to the next state. You'll find an example in my previous message too, the parameters pagefield1 and pagefield2 are required before transitioning to the state Reviewed. 

More info about the required parameters here.

 

Best regards,
Jorge

Evgeniy
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
August 26, 2020

Jorge, hi

Thanks for valuable workflow.

Is it possible to add trigger to send escalation emails to approvers?

For example, we have a document with duedate 20.08.20 + P7D (27.08.20). Approvers assigned. Letters to approvers sent.

I want comala to send escalation letters when only 1 day is left to due date (26.08.20).

Is it possible?

 

And another question - can I send due date in email to Approver, with send-email macro?

Daryl Karan
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
August 26, 2020

Hi Udjin, 

Thanks so much for your comment. Let me try to help you send an escalation notification to your assigned approvers. 

You can set another due date (which will be the escalation or reminder) and have that set to expire 1 day before the actual due date. The other nice thing about this is that you can use the send-email macro to send the reminder to only those users that have not approved/reviewed yet. 

Here's an example using the stateexpired trigger: 
{trigger:stateexpired|state=Pending Approval}
{set-state-expiry:duedate=P1D}
{send-email:user=@Owner Review>pendingusers@|subject=Reminder @pagetitle@ is pending approval}
This is a reminder that page @page@ has been assigned to you and is awaiting your approval.
@pageactivity@@
{send-email}
{trigger}

If you have questions or need any additional information on this (or anything else) just let us know. Alternatively feel free to open a ticket at support@comalatech.com

Best Regards, 
Daryl 

Like Evgeniy likes this
Evgeniy
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
August 26, 2020

Daryl, thanks. 

It's a very interesting workaround, I'll test it. 

And what about sending due date in email to Approver, with send-email macro? Is it possible?

Daryl Karan
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
August 26, 2020

Udjin, 

Thanks for your reply. 

With regards to the due date included into the send-email macro, yes, you can use @duedate@ or @expirydate@, which will display the due date for the current workflow state, if defined. Here's an example using the stateexpried trigger: 
{trigger:stateexpired|state=Approved}
{send-email:user=@creator@|subject=@pagetitle@ has expired}
The page that you created;
@pagelatest@@
has expired @duedate@.

Please update the page to activate this page once again.

Thank you for your help
{send-email}
{trigger}

Please let us know if you have any further questions on this. 

Regards, 

Daryl 

Evgeniy
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
August 30, 2020

Hi, @Daryl Karan 

Can't make it work..

I wrote next code:

{workflow:name=TEST|key=11141499|content=pages}
{state:Draft|submit=In Progress|colour=#ffab00}
{state}
{state:In Progress|approved=Approved|description=InApprovalProcess|duedate=P7D|changeduedate=true}
{approval:Review|assignable=true}
{state}
{state:Approved|final=true|updated=Draft|hideselection=true}
{state}
{trigger:pageapprovalassigned|approval=Review}
{send-email:user=@assignee@|subject=Approval of document "@pagetitle@"}
Please, review "@title@" before @duedate@.
Page to be reviewed: @pagelatest@
{send-email}
{trigger}

But when user receives letter, that he is assigned to task, there is no duedate.

Screenshot_7.jpg

Jorge Merino
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
September 8, 2020

Hi @Evgeniy

 

This is because the value reference due date is not available in the pageapprovalassigned trigger. You would need to store the duedate value in the statechanged trigger like this:

{trigger:statechanged|state=In Progress}
{set-metadata:nextduedate}
@duedate@
{set-metadata}
{trigger}

{trigger:stateexpiryupdated|state=In Progress}
{set-metadata:nextduedate}
@duedate@
{set-metadata}
{trigger}

As you can see I added a second trigger to store the new duedate when the user changes it.

Then, you would need to modify your current send-email macro to use the value nextduedate:

{trigger:pageapprovalassigned|approval=Review}
{send-email:user=@assignee@|subject=Approval of document "@pagetitle@"}
Please, review "@title@" before @nextduedate@.
Page to be reviewed: @pagelatest@
{send-email}
{trigger}

 You can find more information about the available value references in each event here.

 

Cheers!
Jorge

0 votes
James Conway
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
April 3, 2020

Hi @starryeyes 

Really interesting use case, I'm going to ask our support team to take a look at this and evaluate how a workflow could be created to solve it. I'll post back here next week.

Kind regards

James
Senior Product Manager

0 votes
James Conway
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
April 3, 2020

Hi @starryeyes 

Really interesting use case, I'm going to ask our support team to take a look at this and evaluate how a workflow could be created to solve it. I'll post back here next week.

Kind regards

James
Senior Product Manager

starryeyes April 5, 2020

Thank you @James Conway for the response. 

Like Asier Gomez likes this

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events