Handle a revision request (round 2+)
Who does this: Payroll Executive · Payroll Lead · Platform Admin When: The client clicked Request revision on the approval portal instead of approving Result: The client's concern is either resolved through an updated submission + fresh export + new approval round, overridden as not-actionable, or escalated for more info.
When a client opens the approval report and spots something they want changed — "Lim's bonus should have been $2,000 not $1,500", "please add the LOP for Wong from 12 Apr to 15 Apr", "the new joiner Tan started on the 20th not the 15th" — they click Request revision and leave a note. The cycle moves to REVISION_REQUESTED and lands back in your queue.
Your job from here is to triage the note, do the right action on the underlying data, regenerate, and request approval again. Round numbers bump automatically — the next approval request goes out as Round #2.
Before you start
- [ ] The cycle is in
REVISION_REQUESTEDstatus. - [ ] You've opened the cycle and read the Approvals tab — the latest round shows decision
REVISION_REQUESTEDand the client's note in the round detail. - [ ] You're a Payroll Executive or higher.
Steps
1 — Read the note and decide
Open the cycle, click into the Approvals tab, and find the round with decision Revision requested. The client's note is in the round detail panel. Triage into one of three buckets:
| If the note says… | It's bucket… | Go to step… |
|---|---|---|
| "Add / change / remove this employee record", "the figure should be X" | Data change — the submission needs to be updated | Step 2a |
| "This is wrong but actually no, I see it now", "can you confirm the calculation" | Misunderstanding — answer the client, no data change needed | Step 2c |
| "Why is the CPF rate different to last month", "I need to check this with my finance lead" | More info needed from the client before you can act | Step 2b |
2a — Re-do the submission and re-export
For data changes, the cycle has to walk back through intake → export → approval.
- From the cycle page, the platform has already moved you to
REVISION_REQUESTED. The submission items table is now editable again. - Either: edit the impacted item directly via the Submission Items tab (if you have the data and authority), or send a fresh portal invitation — the Send invitation button is back on the page header — so the client can re-do the affected item themselves.
- Once the new data is in, the cycle moves to
INTAKE_IN_PROGRESS(if the client is editing) or stays atREVISION_REQUESTED(if you edited directly). - When you're satisfied, click Generate Export again. This re-runs validation, builds a fresh export workbook (
v2), and — if the client has an active approver — auto-fires Round #2 of the approval request. - Re-run the Infotech round-trip: download the new export, run it through Infotech, upload the new output when ready.
2b — Ask the client for more info
Use the same client-action-request flow as during intake:
- From the cycle page, click Request info from client. (Only available while there are open issues or missing-doc violations — for a free-form question that doesn't fit, escalate to the relationship manager off-platform and log the conversation in step 3.)
- Fill in the prompt explaining what you need.
- The client receives an email and responds via the portal, exactly as during intake. See Request info from a client.
2c — Override and re-request approval
When the client's concern is, on review, not a data change — for example they read CPF as "missing" when it's actually correctly zero for that employee — your path is to re-approve without changing anything:
- Add a note on the cycle (Activity log → free-form note) explaining your reasoning. This is the audit trail. Don't skip it.
- Click Generate Export again to produce a fresh workbook against the unchanged submission. (Yes, even when nothing changed — this generates a new round and the new export version is what the client signs against.)
- The auto-request fires Round #2, this time with a brief note in the email reminding the client of your finding.
WARNING
Do not "approve on the client's behalf" or short-circuit the round number. Every approval round must come from an authenticated client approver clicking Approve in the portal. The audit log differentiates staff-triggered re-export from client-driven approval; conflating the two during an audit is painful.
3 — Log every change
Whatever path you took, leave a brief note on the cycle explaining what the client asked for, what you did, and why. The relationship manager will thank you next month.
How to know it worked
- The Approvals tab now shows two rounds: round 1 with decision
REVISION_REQUESTED(frozen for audit), round 2 with decision Pending. - The cycle status flipped back through
INTAKE_IN_PROGRESS→SUBMITTED→READY_FOR_EXPORT→EXPORTED(or directly viaSUBMITTEDif you edited inline) →OUTPUT_IMPORTED→CLIENT_REVIEW. - The Outbox has a fresh
approval-requestrow with Round 2 in the subject. - The Activity log has a chain:
approval.declined(round 1), data edits,export.generated(v2),approval.requested(round 2).
What the client sees
After Round #2 fires, the same approver gets a new approval-request email — subject Payroll approval required for {YYYY-MM} — Round 2. The previous link is invalidated; only the new link works. The body is identical in structure to round 1.
Common situations
| If you see… | It means… | What to do |
|---|---|---|
Cycle stuck in REVISION_REQUESTED after you edit submission items | The cycle hasn't moved to SUBMITTED yet because you didn't re-validate | Click Generate Export — it re-runs validation as the first step |
| Client's note in the approval round is empty | The portal accepted "Request revision" with no note (we don't enforce a non-empty note in MVP) | Reach out to the client off-platform — phone or email — and capture the substance in a cycle note before acting |
| Round #2 fires automatically when you only wanted to push back | Auto-request runs whenever the export hits EXPORTED with an active approver | Expected. The client sees the new request; if your push-back belongs in a note rather than a fresh export, use option 2c + an email to the client off-platform first |
| You edited an item but Generate Export is still greyed out | Cycle is not in a state where export is allowed, or there's a fresh blocking issue | See Generate Export button is greyed out |
| The relationship manager wants the previous approval round reverted | Approval rounds are immutable | They cannot be reverted. The audit log preserves both rounds; the active state is whichever is most recent |
Related runbooks
- Request info from a client
- Generate the Infotech export
- Upload the Infotech output
- Request client approval — manual fallback when auto-request didn't fire
- Handle a client query — for off-platform questions that aren't strictly revision requests
- Payroll cycle status machine — confirms the
REVISION_REQUESTED → INTAKE_IN_PROGRESSand→ SUBMITTEDtransitions