This guide covers: running payroll across multiple clients in a single batch, reading the account-wide alerts feed, and responding to filing deadlines that surface there.
Run payroll across multiple clients
What it does: Creates a payroll run for every client you pick, in one shot. Used on common pay-cycle days (e.g. every other Friday across all biweekly clients).
Where: Dashboard → Bulk Payroll.
Steps:
- Open
/bulk-payroll. - Check the Needs attention zone at the top first. Draft or partially-approved batches from a prior session surface here as cards (server-driven, so they survive a refresh), each with Review, Approve all, and Cancel. Finish or clear these before starting a new batch.
- Pick a Payroll Type: Regular (scheduled run on each client's cadence), Bonus, Off-cycle, Correction, or Termination.
- (Optional) Give the batch a Label like "Friday Aug 9 biweekly".
- Filter the Client Readiness table to the run you're about to do. The Ready · Warning · Blocked chips above the table double as the status filter — click one to show only those clients (the count is on each chip). Also filter by name search, Cadence (the client's pay frequency), and Next pay date; click Clear filters to reset.
- The Pay method column shows how each client's run will disburse — Direct deposit, Paper check, or DD + check (split). Paper check is a disbursement method, not a problem — it no longer flags a client as a warning.
- Tick the checkbox on every client to include. Click Select all ready in view to select every ready client in the current filter. Blocked clients can't be selected.
- (Optional) Click Save current selection to remember the list. Saved lists appear in the Saved selections dropdown so you can reuse them next cycle. Pick a saved selection there and click Delete to remove it.
- Click Run payroll for N clients. A confirm modal lists the clients and cadence you're about to run — net pay isn't shown yet because it's calculated when the drafts are created. Confirm to fire the batch.
- The batch result panel opens — each client shows Created (blue) or Skipped / Error with the reason, plus the batch net total. Click the View run → link on a row to open that run.
Who: Accountants only. Managers can launch batches limited to assigned clients; Viewers can't launch batches.
Status chips in the readiness table:
- Ready — green. Run-payroll preflight passed: client has employees, onboarding done, pay schedule set, and a Moov account to collect from.
- Warning — amber. The run can fire but something is worth a look (e.g. a state SUTA rate still at its default, no work locations set). Employees paid by paper check no longer count as a warning — that's just a pay method.
- Blocked — red. Missing Moov account (collection would fail), no employees, unsigned onboarding packet, or no pay frequency. Blocked rows can't be checked.
Notes: Bulk payroll only creates the runs — it still stops short of pushing money. You can Approve all or Cancel a batch from the Needs-attention cards, or open each run from the result panel to preview, edit hours, and approve individually. Processing (the actual money movement) stays a per-client decision on each run.
View account-wide alerts
What it does: Surfaces everything across every client that needs your attention — payment failures, missing config, unsigned onboarding, tax notices, SUI voluntary-contribution deadlines, pending payrolls, overdue final paychecks, SUI claim packets, garnishment disbursements.
Where: Dashboard → Alerts.
Steps:
- Open
/alerts. The table loads with every active alert across every client. - Filter by category using the chip strip at the top: All · Payments · Final Paychecks · SUI Claims · Tax Notices · Garnishments · SUI VC · Onboarding · Pending Payrolls · Missing Config · Other. The category set is hard-coded from the backend — anything the backend emits that isn't in this list goes in Other so nothing gets silently dropped.
- Each row shows: a severity icon (red = error, amber = warning, blue = info), the client name, the alert text, a colored category chip, and an action button on the right.
- Click the action button — Fix Now (missing config), View (pending payroll), Open (notice / onboarding / final paycheck / SUI claim), or Remit (garnishment) — to deep-link to the page that resolves it.
- Use Refresh (top right) to re-poll for new alerts after you fix one. Use Previous / Next to page (20 per page).
Who: Accountants only. Manager and Viewer only see alerts for their assigned clients.
Notes: Alerts you resolve clear automatically next time the alert generator runs — you don't have to dismiss them by hand. Payment failure alerts only fire on client-bank money-movement failures (funding debit returned, DD returned, client_debit voucher rejected) — they don't fire on filing rejects or wallet pushes; those go through other channels.
Respond to filing deadlines
What it does: Tax notices, SUI voluntary-contribution deadlines, and pending tax-filing windows all surface in alerts so you don't have to remember per-client deadlines.
Where: Dashboard → Alerts, filtered to the relevant category.
Steps:
- From
/alerts, click the Tax Notices chip to filter to that category, or SUI VC for unemployment voluntary contributions. - Each row shows the deadline in the alert text. Click Open to jump to the response page.
- For tax notices: the deep-link opens
/clients/[clientId]/tax-notices/[noticeId], where you can upload your response document, log the dollar amount paid, and mark the notice resolved. - For SUI VC: the deep-link opens the client's SUI rates page so you can compare current rate vs. voluntary-payment scenarios.
- For pending payrolls: the deep-link opens
/clients/[clientId]/payroll/[payrollId]to preview and approve.
Who: Accountants only.
Notes: Tax-notice deadline reminders also fire as separate Celery tasks at T-7, T-3, T-1, and daily once overdue. Those land in your email inbox and in this alerts feed simultaneously — you only need to act on one channel.
Related: Dashboard & client list · Team & permissions · How Payrollix files your taxes · How tax payments work.