Automation & Background Jobs
One principle governs everything here: automation recommends; humans decide. No job opens a live case, applies a sanction, or advances a file on its own.
Attendance auto-triggers (weekly, Monday morning)
The trigger scans the last 7 days of attendance per company:
| Pattern | Draft raised |
|---|---|
| 3+ Reported Late days | ATT-01 Persistent lateness |
| Any Absent Without Notice day | ATT-02 Absence without permission |
Each hit creates a case in Draft — not Reported — with the attendance rows pre-attached as system evidence (source: Attendance, record reference kept). Drafts sit in the case list under the Draft (auto-raised) filter until a manager reviews the evidence and either Advances or Dismisses them. Duplicate protection: an employee with an open draft/report for the same offence doesn't get a second one.
Process-review suppression
If more than the configured threshold (default 40%) of tracked staff breach in the same week, the triggers stand down for that company and the situation is flagged for process review instead. Sixty warnings for one broken clock-in form makes the ERP the villain — when most people "breach", the process is the problem, not the people. Manual case creation stays available throughout.
Nightly jobs (2:30 am)
Record expiry. Sanctions whose validity has elapsed are marked Spent — kept on the trail forever, excluded from occurrence and escalation counts. Closure starts the clock; this job runs it. (Controlled by the Auto-expire spent records parameter.)
SLA watch. Open queries are checked against their response deadline: Due soon the day before, Breached after — surfaced on the case list, the dashboard, and (per the matrix) notified to the line manager.
Deadline arithmetic
Every deadline in the module — query response, appeal window, hearing notice — is computed in working days: weekends and the public-holiday calendar are skipped. A 3-day query issued Thursday before a Monday holiday is due Wednesday, and the case shows that date; nobody does calendar maths.
Notifications
Driven entirely by the notification matrix (Setup → Notifications): event × recipient × channels. Wired events: query issued, hearing scheduled, sanction issued, response overdue, suspension applied, appeal lodged/decided, case closed. Recipients resolve to real people — respondent, complainant, line manager (the respondent's supervisor), or holders of a management role. Rules marked suppress on restricted stay silent for restricted/HR-only cases. Delivery is asynchronous and never blocks or fails the business action; email is the wired channel today, with in-app/SMS riding the same matrix when enabled.
Escalation engine
Runs at triage, after the offence ladder: rules in priority order, first match wins, producing a recommendation (a stronger sanction, or a reclassification). Counting is conservative by design — upheld findings only, spent records excluded, counselling notes counted only where the rule says so. The full rule reference is in Setup — Tab 5.
What is deliberately NOT automated
- Opening a live case (drafts only, and only from attendance)
- Applying or suggesting suspension (a human applies; offences can prompt)
- Applying any sanction
- Determining appeals
- Closing cases
