Request client approval
Who does this: Payroll Executive · Payroll Lead · Platform Admin When: The auto-approval-request didn't fire after Generate export, or you need to redirect approval to a different approver Result: A new approval round is opened on the cycle and an approval-request email goes out to the chosen client approver.
WARNING
Out of date (noted 26 Oct 2026). Since September the client approves the figures before the Infotech export: staff draft and send the approval request from the month's page, and the export follows the client's approval and the Payroll Lead's final approval. The steps below still describe the older order (request after Generate export). The section When the client does not answer below is current.
The platform sends approval requests automatically when you click Generate export, picking the first active contact with Can approve ticked, alphabetical by name. You only run this manual flow when:
- The client had no active approver at the moment you generated the export, so the auto-request silently skipped.
- You added the right approver afterwards and now need to send the request.
- The auto-request went to the wrong approver (e.g. the previously-default contact has handed over their portfolio) and you need to redirect.
- The first approver bounced the email or sat on the link, and a different approver is now decision-ready.
NOTE
The Request approval button only appears on the cycle detail page when cycle status ∈ {EXPORTED, OUTPUT_IMPORTED} and no approval round has been opened yet. If a round is already open and you need a different approver to act, the path is to wait for the current link to expire / be declined, or contact the relationship manager about the approver swap. Don't open a parallel round — that's where audit gets messy.
Before you start
- [ ] The cycle is in
EXPORTEDorOUTPUT_IMPORTEDstatus. - [ ] No approval round exists on the cycle yet (the Approvals tab shows "No approval rounds").
- [ ] The client has at least one active contact with Can approve ticked. If not, add one first — and verify the email address before sending.
- [ ] (Recommended) The Infotech output has been uploaded and parsed. If not, you'll see an amber warning that the approval report will go out with blank CPF / SDL figures.
Steps
- Open Cycles in the staff dashboard sidebar and click into the cycle.
- In the page header, click Request approval.
- In the dialog:
- Approver — pick from the dropdown of active contacts with Can approve. The list is alphabetical; if a previous attempt picked the wrong person, choose the right one here.
- If you see an amber No payroll output uploaded yet banner, decide: continue with intake-only figures, or close the dialog and upload the output first.
- Click Send approval request.
The dialog closes with a "Approval request sent" toast. The Approvals tab now shows a new row, Round #1 (or the next round number on a re-do), decision Pending.
How to know it worked
- The Approvals tab on the cycle shows the new round, decision Pending, Requested stamp matching the click time.
- The Outbox shows a new row, template
approval-request, Recipient set to the contact you picked, status Dispatched within ~30 seconds. - The Activity log records
approval.requestedattributed to you.
If the Outbox row is Pending for more than 5 minutes, see Outbox stuck runbook. If it's Failed or Bounced, verify the email and confirm the contact's address.
What the client sees
The approver receives an email:
- Subject: Payroll approval required for {YYYY-MM} — Round {N}
- From: the firm's no-reply sender on BreezyCorp
- Body: A short note plus a Review & approve button. The button opens the secure portal where they see the full BreezyCorp approval report with payslips, net pay, CPF and SDL — and either click Approve or Request revision with a note.
The link inside the email expires in 48 hours. While the round is still pending, an approval reminder goes every 2 days until the pay-by date (from 10:00 in the company's own time), each with a fresh link and the date we need approval by ("We need it by {date} to pay salaries on time.") — see timing.
Common situations
| If you see… | It means… | What to do |
|---|---|---|
| Request approval button is not visible | A round already exists, or cycle is past OUTPUT_IMPORTED | Open the Approvals tab — if a round is pending, wait for the client; if APPROVED / REVISION_REQUESTED, follow the appropriate runbook |
| Dialog dropdown shows "No active approvers — add one in client admin" | Client has no contact with Can approve ticked | Add or edit a contact, then come back |
| Amber banner "No payroll output uploaded yet" | You skipped the output round-trip | Either upload the output first, or accept that the report goes out with blank CPF / SDL columns |
| Toast: "Approval request sent" but the Outbox shows nothing after a minute | Outbox dispatcher stuck | Outbox stuck runbook |
| Client says "I never got the link" but Outbox says Dispatched | Email landed in spam, or wrong address on the contact record | Verify the email was sent; confirm the contact's address with the client by phone |
| Auto-request didn't fire after Generate Export and you're not sure why | Usually no active approver at export-time | Approval request didn't auto-fire |
Before a request can go to the client (G2)
Send, Re-issue approval request and the automatic redraft all make the same three checks Confirm review makes (28 Oct 2026): no open blocking issue, no change still awaiting approve/reject, and no due salary increment awaiting confirmation. While any stands, Send answers This approval request can't be sent yet: …, Re-issue approval request is greyed out with the reason, and the month's page says what blocks it.
An approver with no email, on a company with a payroll link. The request then carries the company's payroll link, and signing in and the approval code both need an email. Send is refused (Kavya Iyer has no email on file …) and the approver cannot be reached task asks you to add their email on the People tab or choose another approver. Without a live link, the one-off link can still go to their own chat as before.
When the payroll changes after the request or the approval
- The request is out, or drafted. A new document, a correction, a change rejected, a rejection undone, or a change the client withdraws on the link: if what goes to Infotech changed, the request is withdrawn (its link stops working) and the approver is told. The month is checked again and the new request is drafted for you to review and send only once nothing blocks it: usually the new change must be approved or rejected first. Until then the reissue needed task names what blocks it; approving or rejecting the last change drafts it by itself, otherwise clear the rest and use Re-issue approval request.
- The client already approved. A figure they approved that moved withdraws their approval at once: that request is marked replaced (it can never become the live approval again), the month goes back to Client review, and the same rule drafts the new, labelled request (figures updated since prior request). The client's link says Your approval of request 1 was withdrawn because the figures changed after it. An updated request is coming. A change that moves no figure re-runs the checks and keeps their approval.
When the client does not answer: approve without the client
Pay day must not wait forever on a silent client. A Payroll Lead can approve the month as the Lead's own decision (24 Oct 2026). It is never recorded as the client's approval.
- On the month's page, once the approval request has been sent, the approval card offers Approve without the client…. Only Payroll Leads see the button; anyone else reads A Payroll Lead can approve it without them. Admins and Platform Admins cannot make this decision (26 Oct 2026).
- Fill Why the month goes ahead without them (required), and optionally What the client said or sent, if anything.
- Confirm. History, the approval report and the audit trail say Approved by the Payroll Lead without the client's approval, with your name and reason. The client is told and can object.
- Someone else gives the final approval. While any other Payroll Lead, Admin or Platform Admin is active, you cannot give it yourself, whatever your role; the month's page names who can. With nobody else, you may, and the record says one person did both.
- The client's link shows Approved by our Payroll Lead without your approval, on 27 Oct 2026 (request 1).
You cannot use this if you changed this company's contacts, or linked a chat to one of them, during the month or in the last 30 days: another Lead decides.
Related runbooks
- Approval request didn't auto-fire after Generate Export — diagnose why the auto-request was skipped
- Add or edit client contacts — to add the missing approver
- Verify an email was sent
- The magic link expired before the client opened it
- Handle a revision request — what to do when the approver clicks Request revision
- Notifications catalog — exact subject lines and reminder cadence