Parts of the Process
Onboarding provides a few different places to use approvals. The most common is an overall approval to the entire request before the individual new employee requirements (hardware, etc) are ordered or assigned. In keeping with the most common approach, we will also assign the approval to the manager identified on the submission.
In reality, your approval could be looked up by site or function or just sent to HR for someone on a team to pickup. If you have time during the activity, change up how you get the approver.
It is also important to make sure that the approver has all the information they need for a decision. Since we are using kinops as the training environment, we're using Queue for our approvals.
Depending on how you have defined your process, you may also need approvals if the new employee needs specific (expensive, licensed, etc) hardware or software. If you've created your approval process as a routine, you just need to "plug it in" to your tree where needed and make sure it gets fed the correct information.
Basic Approval Tree
Lets go back to the original tree for the onboarding process. It shows where a basic approval should take place.
While there are tasks to look up approver information and a spot for the approval routine, we don't have any branch to deal with submissions that are not approved.
We also need checks on connectors to signal which branch should process based on the decision from the approver.
Adding the Approval Routine
Here is an example of the individual approval routine used by kinops.
This approval routine sends a notification to the designated approver and waits for the approvers answer. It continues the tree and passes the approvers answer back to the tree.
Description of Nodes
Verify Assignment (Routine) - Checks for the approvers information.
Approval (Defer) - pause the routine while approval submission is created.
Create Approval - creates a submission record in Request CE using information from previous nodes. See more details below.
Approver Notifications (Activity, Observers, Assignment) - this is a standard kinops/Queue process. Your own process can be substituted here.
Retrieve Approval Answers - used to both get the approvers decision, and any extra details from the approval submission to pass back to the parent tree.
Close Approval - sets the State of the approval to Closed, and sets a Status to Approval decision (Approved/Denied).
Return - passes information back to the parent process for notifications or process.
Activity Record Updates are used to display information to the submitter in the portal.
Inputs to the Approval Routine
The current Approval Routine needs the following inputs (optional unless marked):
Space Slug, Kapp Slug, Approval Form Slug (required) - used to both define the approval form, and get information on the environment
Approver Id (required) - pass in the key to lookup information on the approver
Summary (required) - short description for the approver in case you don't want to use a review link
Details (required) - longer description for the approver
Days Due - Number of days for the approval to be completed
Originating System - Used to determine some lookups
Originating ID - Id of the parent (I would consider this one required)
Review URL - url used for the review of the originating submission
System Input - type of System
Outputs from the Approval Routine
These are the values passed back to the parent tree:
Decision - response from the approver
Notes for Customers - Additional comments
Approver ID - ID of the approver (sometimes this changes)
Denial Reason - often a reason is required for denials
Fields JSON - A JSON map of questions that were answered on the approval record
Approval ID - submission ID of the approval
Create Approval Node (Submission Create Handler)
Space Slug - can be set from input - or leave blank if the same
Kapp Slug - identifies the Kapp that holds the approval template
Form Slug - slug of the approval template
Values - set answers on the approval template - set as a json map
Current Page Name, Current page Navigation - normally blank based on a one page template
Origin ID, Submission ID - ID of the parent submission (these are Kapp fields)
Creating the Approval Submission Branch
While the Approval Node will create an approval record, once the approval is complete you are responsible for creating a trigger that prompts the original tree to complete the approval node and continue processing.
A typical Approval Tree is just the node that creates a trigger based on the deferral token from the Create approval node.
There is a wrap up activity to create a service item and the approval.