Request more info from a client mid-cycle
Who does this: Payroll Executive · Payroll Lead When: A submitted cycle is in
ACTION_REQUIREDand one or more open issues need the client to upload a document or clarify something Result: A targeted email goes out to a chosen client contact with a fresh 48-hour magic link straight into the part of the portal where they can act. When they upload, validation re-runs and the issues auto-resolve.
This is the standard way to ask the client for missing pieces after they've already submitted. It's better than emailing them out-of-band because the request is scoped (you pick exactly which issues and missing documents to surface), the link drops them into the right place in the portal, and the platform tracks fulfilment automatically.
If the cycle hasn't been submitted yet, this isn't the right runbook — the cycle-request and reminder emails are still doing their job. If the issue genuinely doesn't apply to this cycle, see Override a blocking issue instead.
Before you start
- [ ] The cycle is in ACTION_REQUIRED status.
- [ ] At least one open BLOCKING issue or missing-document violation exists on the cycle. (The Request info from client button is hidden otherwise.)
- [ ] You know which client contact should receive the request. By default the platform picks the original submitter; you can change this in the dialog.
Steps
Open the cycle in the staff dashboard.
Look at the cycle header for the Request info from client button (top-right). If a previous request hasn't been fulfilled yet, the button reads Resend request to client instead — same flow, fresh token.
Click it. The dialog opens with three sections:
- Recipient — defaults to the first active contact who can submit. Change via the dropdown if a different person on the client's team owns this.
- Items to include — every open issue and every missing-document violation, pre-checked. Untick any item that's already been resolved offline.
- Note to client (optional but recommended) — short context. The client sees this as a quoted block in the email above the item list. Keep it conversational; "Hi Jamie, just need the IR21 acknowledgement for Tan Wei Ming and a fresh attendance sheet — thanks!" lands better than a system-style notice.
Review what the client will see — the item list in the dialog mirrors what gets rendered in the email body.
Click Send request.
The dialog closes with a success toast. Within ~30 seconds the email is dispatched.
How to know it worked
- The cycle's Activity log records a
cycle.action_requestedevent with your name, the recipient contact, the included issues / missing docs, and your note text. - Your Outbox page shows a row with template
client-action-request, recipient = the contact you picked, and Dispatched status within ~30 seconds. - The cycle's header now shows a Resend request to client button until the client acts (the request stays "unfulfilled" until they upload something that resolves at least one issue).
- When the client uploads through the portal, validation auto-re-runs. The cycle's open-issue count drops; if it hits zero, the cycle moves out of
ACTION_REQUIREDon its own.
What the client sees
The client gets an email:
- Subject: Action needed for {cycle month} payroll — {N} items(N = total of issues + missing docs you ticked.)
- From: your tenant's "from" address.
- Body: a short greeting, your note (if you wrote one) as a quoted block, then bullet lists titled Missing documents and Open items showing each ticked entry.
- CTA button: Open the portal — single primary button.
The link expires in 48 hours. If they click it after expiry, the platform shows a "link expired" page; the client requests a fresh link there and you'll see a new outbound client-action-request row in the Outbox once they do.
The link drops them into the cycle's intake wizard scoped to the open items — they don't need to navigate to the right submission row themselves.
Common situations
| If you see… | It means… | What to do |
|---|---|---|
| Request info from client button is missing | Either the cycle isn't in ACTION_REQUIRED, or there are no open issues to surface | Confirm cycle status from the badge; check the Issues tab is non-empty |
| Recipient dropdown is empty / says no active contacts | The client has no active contacts marked Can submit intake | Open client → Contacts and add or reactivate one. See Add or edit client contacts |
| Outbox shows the email Failed | Provider rejected the send (bad email, rate-limited, auth failure) | Read the row's error; fix the contact's email if needed; resend |
| Outbox shows Dispatched but the client says they didn't receive it | Provider accepted; almost always a spam-folder issue | See Verify an email was sent and The client says they didn't receive the email |
| Client clicks the link but says it's expired | Past the 48-hour TTL | Click Resend request to client on the cycle — fresh token, fresh email |
| Client uploaded the document but issues still open | Validation re-runs on upload, but the upload's classification may not match the rule's expected document type | Open the file in the cycle's Files tab, confirm the document type is correct; if wrong, fix and re-validate |
| You sent the request to the wrong person | The action is logged but not undoable | Send a fresh request to the right contact — the original token stays alive but the right person now has their own copy |
Related runbooks
- Resolve a blocking validation issue — what to do once the client uploads
- Override a blocking issue — when the rule shouldn't apply at all
- Verify an email was sent — confirm the client got it
- The client says they didn't receive the email
- Add or edit client contacts — fix recipient routing
- Notifications catalog — full email reference