Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Next challenges

Recent achievements

  • Global
  • Personal

Recognition

  • Give kudos
  • Received
  • Given

Leaderboard

  • Global

Trophy case

Kudos (beta program)

Kudos logo

You've been invited into the Kudos (beta program) private group. Chat with others in the program, or give feedback to Atlassian.

View group

It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

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

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

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

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

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. 

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

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?

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 Udjin likes this

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?

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 

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

Hi @Udjin

 

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

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

Thank you @James Conway _Comalatech_ for the response. 

Like Asier Gomez likes this

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

Suggest an answer

Log in or Sign up to answer
TAGS
Community showcase
Posted in Jira Core

How to manage many similar workflows?

I have multiple projects that use variations of the same base workflow. The variations depend on the requirements of the project or issue type. The variations mostly come in the form of new statuses ...

4,248 views 12 5
Join discussion

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you