Approval
Every request in PeopleNest - a leave, an overtime, an attendance correction, a loan, a salary revision - goes to somebody for a signature. This screen is where you say who that somebody is, in what order the signatures are collected, and how much each one counts. Without a chain set up here, a request has nobody to go to.
What it is for
An approval chain is an ordered list of signatures. You build it once per screen, and from then on every document saved on that screen starts walking it.
The chain is made of stages, and a stage is made of people. All the lines you give the same Sequence number form one stage. Stage one goes out first, and only when stage one is complete does stage two receive anything at all. Within one stage, everybody named gets the request at the same time.
How a stage actually clears
This is the part that surprises people, so it is worth stating plainly.
A stage does not clear because somebody approved it. A stage clears when the total weightage of the approvals received reaches one hundred. The term is in the glossary if you need to hand a client a one line definition.
Weightage is a number you put on each line of the stage. If one person carries 100, their single approval completes the stage and it behaves like the simple case everyone expects. If two people carry 50 each, the stage needs both of them: the first approval is recorded, the stage stays open, and only the second one moves the document on. If three directors carry 34, 33 and 33, any two of them together reach 67 and the stage still waits.
So the shape of the stage is a decision you are making about the company, not a formality. One approver with 100 means one signature. Two approvers with 50 each mean both must sign. Two approvers with 100 each mean either of them alone can sign it off - which is the correct way to configure "the manager or his deputy, whoever is available".
The screen enforces the arithmetic for you. A stage with more than one person must total at least 100, or the save is refused naming the sequence - otherwise that stage could never complete and the document would sit for ever. A stage with a single person cannot carry more than 100.
What happens to a document that is waiting
When a document is saved, the first stage becomes active and everybody in it receives it in their inbox. Everyone else in the chain is marked as pending and sees nothing yet.
From there, four things can happen to it:
- Someone approves. Their weightage is added to the stage's running total. If the total has reached one hundred, the stage is closed, everybody else still holding it in that stage has it withdrawn and is recorded as having given no response, and the next stage is opened and sent out. If there is no next stage, the document is approved and finished. If the total has not reached one hundred, that person drops out and the rest of the stage keeps waiting.
- Someone puts it on hold. The stage does not advance, even if the weightage has already reached one hundred. A hold freezes the stage until it is lifted. This is deliberate: hold means "I have a question", and it outranks the arithmetic.
- Someone rejects. The whole chain stops at once. Every outstanding signature anywhere in the document is withdrawn, everybody still waiting is recorded as having given no response, and the document is rejected. One rejection ends it, no matter which stage it came from and no matter how much weightage had already been collected.
- Nobody does anything. It stays in the inbox of the stage that is active. Nothing escalates on its own.
Naming the approver, or working it out
Each line of a stage either names a user or ticks Reporting To.
A line that names a user always goes to that user. A line with Reporting To ticked goes instead to whoever is above the person who raised the request, worked out at the moment the document is saved by walking up that person's reporting line. This is how you build "my manager, then his manager" without writing a chain per department.
If the reporting line is shorter than the chain asks for, the chain goes to the highest person it could reach rather than failing. If an approver cannot be worked out at all, the save is refused and tells you which stage the problem is in, rather than quietly dropping that stage and letting the document through unapproved.
A user who has set a delegate standing in for them on the day has the request go to the delegate instead.
Every field, in plain words
Header
| Field | What it means | What to put in it | Notes |
|---|---|---|---|
| Approval | The short code for this chain. | AP-LEAVE | Required. Must be unique, the screen refuses a repeat. |
| Name | What the chain is. | Leave Request Approval | Required. |
| Process Code | Which screen this chain approves. | Employee Request Leave | Required. Pick it from the list of screens. One chain serves one screen. |
| Inbox Template | The wording of the item that appears in the approver's inbox. | Leave Request Inbox | Pick it from the list of ready message templates. Leave blank for the standard wording. |
| Hide Sensitive Information From Sender | The person who raised the request cannot see who is approving it or what they said. | Leave clear | Tick it on a salary or disciplinary chain. |
Administration
| Field | What it means | What to put in it | Notes |
|---|---|---|---|
| Create | The chain applies when the document is first created. | Ticked | This is the usual case. |
| Edit | The chain applies again when the document is changed. | Ticked | Leave clear if a correction should not restart the chain. |
| Delete | The chain applies when somebody tries to delete the document. | Leave clear | Tick it where a deletion needs a signature, for example on a released leave. |
| Reverse | The chain applies when the document is reversed. | Leave clear | |
| Approved Message Notification | The message sent out when the document is fully approved. | Leave Approved | Pick it from the list of ready message templates. |
| Request Message Notification | The message sent to an approver when the document arrives. | Leave Pending With You | Pick it from the list of ready message templates. |
| Required Sender Comments | The person raising the request must type a reason before saving. | Ticked | |
| Required Comments on Approved | An approver must type something when approving. | Leave clear | Tick it where the company wants a record of why. |
| Required Comments on Hold | An approver must say why they are holding it. | Ticked | Worth ticking, a hold with no reason is the main cause of a stuck document. |
| Required Comments on Reject | An approver must say why they rejected it. | Ticked | Tick this one on every chain. |
Approval - the chain itself
One line per approver. Lines sharing a Sequence number form one stage.
| Field | What it means | What to put in it | Notes |
|---|---|---|---|
| Line # | The line number in the grid. | Fills itself | |
| Index | The position of the line within the chain. | Fills itself from the line number. Leave it. | |
| Sequence | Which stage this approver belongs to. | 1 | Required. Everybody on 1 is approached first, everybody on 2 only after stage 1 has completed. |
| User Name | The approver, named directly. | asad.mahmood | Required unless Reporting To is ticked. The screen refuses a line that has neither. |
| Reporting To | Work the approver out from the requester's reporting line instead of naming one. | Ticked on a general leave chain | With this ticked, leave User Name blank. |
| Weightage | How much this person's approval is worth out of one hundred. | 100 | Required. See the rules below the table. |
| Calendar | The working calendar used to measure the response time on this line. | CL2026 | Pick it from the list of calendars that are ready. |
| Time Zone | The time zone the response time is measured in. | Asia/Karachi | Pick it from the list. |
| Time In Minutes | How long this approver is expected to take. | 480 | A measure of the expected response, in minutes. |
| Shifting Index | Where the request moves to if this line is shifted on. | 3 | Enter the Index of the line it should go to. Leave blank unless you are building that behaviour. |
| Auto Approve | This line approves itself without the person being asked. | Leave clear | Useful to keep a line in the chain for the record without making it a real gate. |
| Is Delegate | This line is a stand-in for another line rather than an approver in their own right. | Leave clear | |
| Delegate Index | Which line this one is standing in for. | 2 | Only used with Is Delegate. |
| Allow Delegate | This approver may hand the request to a delegate of their own. | Ticked | |
| User Role | Restricts the line to a role rather than one person. | HR Manager | Pick it from the list of roles. |
| Hide Sensitive Information | This approver sees the document without the sensitive columns. | Ticked for a line manager on a salary chain |
The weightage rules, in one place:
- A stage with one person: weightage of
100. It may not be more than 100. - A stage with several people who must all sign: split 100 between them, for example
50and50, or34/33/33. - A stage with several people where any one of them is enough: give each of them
100. - A stage with several people must total at least 100 or the save is refused.
Trigger Condition - when the chain applies at all
Leave this tab empty and the chain applies to every document on that screen. Add lines and the chain applies only to documents that match them. This is how a company gets "leave of three days or less needs the supervisor, longer needs the department head": two chains on the same screen, each with its own condition.
| Field | What it means | What to put in it | Notes |
|---|---|---|---|
| Line # | The line number. | Fills itself | |
| Trigger Rule | How this line joins the line above it. | When on the first line | Values: When to open the set of conditions, And to require this line as well as the one above, OR to accept either. |
| Object No | Which field on the document is being tested. | Number of Days | Required in practice. The screen refuses a condition line with no field named. |
| Condition | The comparison. | greater than | Values below. Which comparisons appear depends on the kind of field you picked. |
| Value | What it is compared against. | 3 | For a between comparison, enter the range the screen asks for. |
The comparisons available on a number, amount, quantity, percentage, price or date field:
=equal to,!=not equal togreater than,greater than or equal to,less than,less than or equal tobetween,not betweenis empty,is not empty
On a text field:
is,isn'tcontains,doesn't containstarts with,ends withis empty,is not empty
Do not put two is conditions on the same field joined by And. A field cannot be two values at once, so nothing would ever match and the document would sail through with no approver at all. The screen refuses that combination and tells you to use OR if you meant either value.
Authentication Control
| Field | What it means | What to put in it | Notes |
|---|---|---|---|
| Authentication Apply | An approver must re-enter their password before the approval is accepted. | Ticked on a payroll chain | |
| Authentication By | Who the password belongs to. | Logged-in User | Values: Logged-in User - the person approving signs with their own password. Fixed User - a named account's password is required, which you then enter below. If you tick Authentication Apply and leave this blank, it is set to Logged-in User for you. |
| User Name | The account whose password is required. | payroll.officer | Only used with Fixed User. |
| Name | The full name of that account. | Fills itself from the account you pick |
How to configure it
- Make sure the approvers have user accounts, and that the reporting line is set on Employee Organization Assignment if you plan to use Reporting To.
- Open Approval. Enter the code and name, for example
AP-LEAVEandLeave Request Approval. - Pick the Process Code - the screen this chain approves, for example Employee Request Leave.
- Go to the Administration tab and tick Create. Tick Edit as well if a change to the request should go round again. Tick Required Comments on Reject, always.
- Go to the Approval tab. Add the first stage: Sequence
1, tick Reporting To, Weightage100. That is the requester's own manager, whoever he is. - Add the second stage: Sequence
2, User Nameasad.mahmoodthe HR manager, Weightage100. - If a stage needs two signatures, put both people on the same Sequence and give each
50. If either of two people is enough, put both on the same Sequence and give each100. - Fill Calendar and Time Zone on each line if the company measures how long approvals take.
- If the chain should only apply in some cases, go to the Trigger Condition tab and add a line: Trigger Rule
When, the field, the comparison and the value. Build a second Approval record with the opposite condition for the other case. - Save. The screen checks the weightage of every stage at this point and will name the stage if it does not add up.
- Raise one test request and watch it reach the first approver before telling anybody the screen is live.
Scenarios
Leave goes to the line manager, then to HR
Two stages, one person each, weightage 100 on both. Stage one has Reporting To ticked so it follows each employee's own manager. Stage two names the HR manager. Four hundred employees, one chain.
Both the department head and the finance manager must sign a loan
One stage, two lines, both Sequence 1, weightage 50 each. The first signature is recorded and the document stays where it is. The second one releases it. If instead you gave them 100 each, whichever of them got there first would release it alone.
Any one of three directors can approve a salary revision
One stage, three lines, all Sequence 1, weightage 100 each. The first director to act clears the stage, and the request disappears from the other two inboxes, recorded as no response.
Short leave needs the supervisor, long leave needs the head of department
Two Approval records against the same screen.
| Short leave | Long leave | |
|---|---|---|
| Trigger Condition | Number of Days, less than or equal to, 3 | Number of Days, greater than, 3 |
| Stage 1 | Reporting To, 100 | Reporting To, 100 |
| Stage 2 | - | Head of Department, 100 |
A request is stuck and nobody can move it
Somebody in the active stage has put it on hold. A hold holds, even when the rest of the stage has already added up to one hundred. Find the hold and clear it. Ticking Required Comments on Hold means the next one will at least say why.
The approver is on leave for two weeks
The approver sets a delegate for the period. Any request that resolves to them goes to the delegate instead for as long as the delegation is in force. You do not edit the chain.
Something got approved with nobody approving it
Check the Trigger Condition tab. A condition set that cannot match anything - most often two is conditions on the same field joined by And - leaves the document with no chain and no approver. The screen now refuses that particular mistake, but any condition narrow enough to match nothing has the same effect.
What it is connected to
- The approvers must have user accounts before they can be named.
- Reporting To reads the reporting line held on Employee Organization Assignment. A broken reporting line breaks every Reporting To stage under it.
- The Calendar on each line is a Calendar record, used to measure the expected response time.
- Every request screen in Time Management and Payroll is approved through here, among them Employee Request Leave, Overtime Request, Employee Attendance Request, Exemption Request, On Duty Request, Shift Change Request, Employee Loan Request and Request for Salary Hold.
- Changing a chain does not change documents already walking the old one. Finish or cancel what is in flight before rebuilding a chain.
If something looks wrong
- "It will not save, it says the total weightage of a sequence must not be less than one hundred" - that stage could never complete. Raise the numbers until they total at least one hundred.
- "It will not save, it says the weightage of a single user cannot be more than one hundred" - a stage with one person in it carries exactly one hundred.
- "It will not save, it says a username cannot be empty" - a line names nobody and does not have Reporting To ticked. Do one or the other.
- "It will not save, it says an object cannot be empty" - a Trigger Condition line has a comparison but no field to compare.
- "The request is sitting with one person although two were supposed to approve" - they are on different Sequence numbers, so it is a chain of two stages, not one stage of two. Put them on the same Sequence.
- "One man approved and it went straight through, but we wanted both signatures" - both carry one hundred. Split it fifty and fifty.
- "Nothing happens when the second approver approves" - the first approver has it on hold. A hold blocks the stage regardless of weightage.
- "The document was rejected but we only wanted it sent back" - a rejection ends the chain outright, everywhere in it. Use hold for a question, reject for a refusal.
- "Requests from the factory have no approver" - those employees have no reporting line, so a Reporting To stage has nobody to resolve to. Fix the reporting line on their organization assignment.