Design Approach: Modularize Approval Processes / Enable Approval Through Emails
Here is a review/approval workflow design approach to share with the Archer Community. This modularized design approach will significantly simplify the overall Archer development effort, improve the reviewers’ user experience, and enable features such like “review and approval through email using only one click” developed by Archer Scripts LLC. This article is to share and discuss the idea and a high level “algorithm”.
Traditional vs. Modularized Approach
The traditional implementation for the review workflow is usually to have all the review stages (e.g., reviewer, management reviewer, CISO) built into different sections within the same layout (Default Layout, prior to v6, v6 Advanced Workflow will also be discussed), and use field level permissions and/or Data Driven Events (DDEs) to control the access to these sections.
The new proposed design approach is to separate out the review workflow processes (e.g., approval related fields such as Manager Review Status, Dates, Comments and etc.) into their own application records. In other words, modularize the review processes (using one Questionnaire (only), and automate the process using a data feed).
See the example in the screenshot below, there are 3 levels of approvals (L1, L2, L3). Instead of having them built into 3 sections with all those review related fields (e.g., review status, dates, comments), each review stage has its own record in the “Approvals” questionnaire (no ODA license is required). Within each of these records, you can see the stage (e.g., L1, L2, L3), the reviewer, the review decision (status), dates, and comments in a clean table (grid) format.
Benefit of this Approach
Significantly reduce the development efforts
In the traditional way mentioned above, creating multiple tracks / levels of review can be very complicated and time consuming. This is primarily because of the number of DDEs required for the different review stages/sections. For example, you might want to dynamically display the review sections one by one depending on where you are at the review process; you might need to set up the different read / edit access for different groups of reviewers; and the DDEs might conflict with your DDEs that are used to control the other none review areas. You might run into many edge cases / special scenarios and have to go through many defect fixes until you get to the final release. With the new way of implementing, you no longer need to worry about any conflicts, or any DDEs that help you control all the separate sections dynamically. Because now every “section” resides in its own record, so you only need one set of DDEs and some record permissions, and you are all set!
Simplify the overall complexity and provide ease of supporting/maintenance
Similar to the benefit above, with the simplified structure and a much smaller number of DDEs, for any developers taking over the support and maintenance, it would be much easier to learn how things work and to develop on top of it for any future enhancements.
Enable the approval through Email feature
With the review for each reviewer having its own separate record, using some creativities you can come up with ways to completely automate and simplify the review down to one click of a button. Below is a live demo created by Archer Scripts LLC using Archer’s basic functionalities (e.g., DDEs, calculation and etc.), this is just to one of the many possibilities that are enabled by this design approach.
Now that each reviewer has its own review record, you can make the form much more user friendlier. Reviewers will no longer get confused and lost trying to locate their section to enter the approve (like they do in the traditional way). You can design the form to have the reviewer’s section right at the top of the screen, and only show them what they need to see.
Simplify Advanced Workflow (Multiple Layouts)
Yes, the point above is similar to the Advanced Workflow (AWF) multiple layout. But the proposed implementation will save you so much time comparing to creating a layout for each review stage in Advanced Workflow. Also, if you have some experience dealing with AWF, you will know that you want to reduce the complexity of the AWF, keep as lean as possible.
Having the record controlled by record permission is much more secure than using DDEs to hide a section. If you don’t have access, the sections are not even rendered in the page, as opposed to hiding them using DDEs.
Provide a nice and clean view
Using the same image in the previous section. See how clean the approval section is.
If you are sold and want to know a few more technical details about how to implement this, here is a high-level overview. This is not intended to be a technical tutorial.
- Data feed with custom transform code to break your approval related fields to separated records per review stage (e.g., manager, CISO).
- You can design your feed report nicely and run the feed minutely or every a few minutes, so it feels like real time but doesn’t consume much system resources. Design your feed well enough so it handles the review workflow for you stage by stage, automatically.
- The different review statuses can be calculated fields in your main records.
You can set up notifications with all the request details to be reviewed and send it to the reviewers. With some calculation / DDE tricks, you can achieve approving the record through one click in a hyperlink in the email, see screenshots below. Demo video again, https://youtu.be/jIntG6WYxjQ
Getting details in email notification, click the Approve link and the approval screen will show up automatically.
Archer Scripts LLC