Almost all the Microsoft Approval scenarios/examples focus on the 'ideal world' where everyone Approves their emailed Approval requests immediately. No examples include approvers pressing the 'Reject' button or ignoring the request etc. What is lacking is a way of managing typical exception scenarios such as:
Approval is sent to a person who is on vacation/ill/left the company so will not respond for days/weeks/never
An Approval is 'Rejected'
'Everyone has to approve' but someone doesn't for whatever reason so the process gets stuck until a timeout is triggered
Currently all we can do is parse the 'approvalSummary' string which is formatted to include in an email body:
"responseSummary": "Approver: John Doe, firstname.lastname@example.org\r\nResponse: Approve\r\nRequest Date: Monday, October 1, 2018 10:12:26 AM\r\nResponse Date: Monday, October 1, 2018 10:18:11 AM\r\n\r\nApprover: Jane Doe, email@example.com\r\nResponse: Approve\r\nRequest Date: Monday, October 1, 2018 10:12:26 AM\r\nResponse Date: Monday, October 1, 2018 10:13:38 AM"
Obviously there is not much we can do with this. My suggestion is that all the 'Approve/Reject/timeout' approver responses are read into an array which can then be parsed in the usual way to find out the status for each of the Approval tasks and action accordingly. For example:
No response after 3 working days - resend approval task to approver and approver %Manager
Two out of three approvers Approve and one rejects. Resend approval task to rejector only
The ability to monitor approver status in a process is a standard feature in Nintex, K2, Skelta, e-work and Tibco. Exception handling where something other than 'Approve' happens must be more easily monitored so actions can be triggered.