Hello Workfront Community!
My teammates & I have been searching through Experience League and experimenting on how to best handle task approval reporting since the options available out-of-the-box are not comprehensive. We generally need to report on data for all rounds that have occurred, not just the most recent. With that, this post consolidates information found on Experience League and some additions on it so that others with similar uses in the future can utilize. As a reference point too, we mostly use task approvals for Marketing Operations teams where document and proof approvals won't fit.
Ability to Edit Custom Form while Task is Pending Approval (Global Setting) - Original Post Link
This setting would have to be turned on globally (across the entire system) but there is a button to allow custom form editing while a task is pending approval. This helps if there is a QA checklist on a task that needs to be filled out while it is being reviewed. (Setup > Approvals > Wheel Icon at the Top > "Allow Editing the Custom Form...")
Reporting on Task Approval SLAs / Task Approval Durations - Original Post Link
One of our requirements is that we need to see the task SLA or duration for each round that has happened, out-of-the-box there is only the ability to do the most current round. We built on the original post above to build these calculations for 3 rounds. The calculated fields below first derive the start and end dates for each round and then that information is used to calculate the weekday difference between the two.
Note: The fields below only work going forward, it won't work to capture past data. Additionally, you might need to build out more than 3 rounds if you expect to go past that number
Calculated Field Disclaimer: We set our approval loop to be one stage and it starts when the task status is set to Complete; if rejected it goes back to Awaiting Feedback. The below text mode will need to be edited if you are using different task statuses
Calculated Field (Date/ Time Format): Approval Start Date - Round 1
IF({status}='CPL:A',IF(ISBLANK({DE:Approval Start Date - Round 1}),$$NOW,{DE:Approval Start Date - Round 1}),{DE:Approval Start Date - Round 1})
Calculated Field (Date/ Time Format): Approval Completion Date - Round 1
IF(IN({status},'CPL','AWF'),IF(ISBLANK({DE:Approval Completion Date - Round 1}),$$NOW,{DE:Approval Completion Date - Round 1}),{DE:Approval Completion Date - Round 1})
Calculated Field (Number Format): Approval Duration - Round 1
IF({DE:Approval Completion Date - Round 1} > DATE("01/01/1900"),WEEKDAYDIFF({DE:Approval Start Date - Round 1},{DE:Approval Completion Date - Round 1}),"")
Calculated Field (Date/ Time Format): Approval Start Date - Round 2
IF({status}='CPL:A' && {DE:Approval Completion Date - Round 1} > DATE("01/01/1900"),IF(ISBLANK({DE:Approval Start Date - Round 2}),$$NOW,{DE:Approval Start Date - Round 2}),{DE:Approval Start Date - Round 2})
Calculated Field (Date/ Time Format): Approval Completion Date - Round 2
IF(IN({status},'CPL','AWF') && {DE:Approval Start Date - Round 2} > DATE("01/01/1900"),IF(ISBLANK({DE:Approval Completion Date - Round 2}),$$NOW,{DE:Approval Completion Date - Round 2}),{DE:Approval Completion Date - Round 2})
Calculated Field (Number Format): Approval Duration - Round 2
IF({DE:Approval Completion Date - Round 2} > DATE("01/01/1900"),WEEKDAYDIFF({DE:Approval Start Date - Round 2},{DE:Approval Completion Date - Round 2}),"")
Calculated Field (Date/ Time Format): Approval Start Date - Round 3
IF({status}='CPL:A' && {DE:Approval Completion Date - Round 2} > DATE("01/01/1900"),IF(ISBLANK({DE:Approval Start Date - Round 3}),$$NOW,{DE:Approval Start Date - Round 3}),{DE:Approval Start Date - Round 3})
Calculated Field (Date/ Time Format): Approval Completion Date - Round 3
IF(IN({status},'CPL','AWF') && {DE:Approval Start Date - Round 3} > DATE("01/01/1900"),IF(ISBLANK({DE:Approval Completion Date - Round 3}),$$NOW,{DE:Approval Completion Date - Round 3}),{DE:Approval Completion Date - Round 3})
Calculated Field (Number Format): Approval Duration - Round 3
IF({DE:Approval Completion Date - Round 3} > DATE("01/01/1900"),WEEKDAYDIFF({DE:Approval Start Date - Round 3},{DE:Approval Completion Date - Round 3}),"")
Reporting on Task Approval Rounds / Task Number of Reviews
An additional requirement we had was that we needed to see how many rounds a task took to approve. We used the above calculations to derive that information with the calculated field below.
Note: You might need to build out more than 3 rounds if you expect to go past that number
Calculated Field (Number Format): Review Rounds
IF({DE:Approval Completion Date - Round 3} > DATE("01/01/1900"),3,
IF({DE:Approval Completion Date - Round 2} > DATE("01/01/1900"),2,
IF ({DE:Approval Completion Date - Round 1} > DATE("01/01/1900"),1,0)))
Hope this helps anyone else out there using task approvals!