Manager digest
Sends one consolidated daily email to each manager listing the timesheets that need their attention.
How it works
Instead of one notification per submitted timesheet, managers receive a single roll-up per day:
- Finds non-empty inboxes — every approvals inbox row that contains at least one pending timesheet item
- Splits items into two sections — timesheets awaiting approval, and timesheets where the employee has not yet submitted (missing-submission rows)
- Builds one notification per manager — with the count, the employee names, the period of each item, and a single call-to-action linking to
- Deduplicates per day — the deduplication key is
(manager, run date), so re-running the job on the same day produces no extra emails
In-app notifications still fire in real time on each submission — the digest is on top of that, not a replacement for it.
When it runs
The job runs automatically and only triggers on workspaces where at least one inbox contains a timesheet item. Inboxes containing only time-off items do not produce a digest (out of scope for v1).
Parameters
This job has no parameters.
Job results
| Metric | Description |
|---|---|
sent | Number of digest notifications created |
skipped | Managers whose inbox had no timesheet items, or who have no linked user account |
duplicates | Same-day re-runs (dedup hit, expected) |
errors | Failures during processing |
Troubleshooting
| Issue | Solution |
|---|---|
| Manager not receiving a digest | Confirm the manager has a linked user account and that their approvals inbox actually contains pending timesheet items (check ) |
| Same employee appears twice | The digest lists one row per period awaiting action. If both the previous and current periods are pending for one employee, two rows is expected |
| Digest missing right after a rebuild | The approvals inbox is rebuilt from events. If lifecycle events for a period are missing target IDs, the inbox row will not materialise. Re-run Timesheet statement reminder to re-emit them |