Absence registration

Registers a daily entry for each ongoing open-ended absence so that yesterday’s day is recorded against the right activity.

How it works

When an employee starts an open-ended absence (for example, ongoing sickness with no fixed return date), the absence stays “active” until the employee returns. This job runs daily and registers an entry for yesterday against the activity linked to the absence:

  1. Finds active periods — employees whose time-off projection contains at least one open-ended absence in progress
  2. Registers yesterday — for each active period that started before yesterday, a registration event is created for yesterday’s date
  3. Idempotent — events use a deterministic ID based on employee, activity, and date, so re-running the job on the same day is a no-op

Registering yesterday (rather than today) gives the employee a window to come back to work and interrupt the absence before the day is consumed. The first day of the absence is handled by the request itself, and the closing handler covers the full range as a final safety net.

When it runs

The job runs automatically and only triggers on workspaces that have at least one active open-ended absence.

Parameters

This job has no parameters.

Job results

MetricDescription
entries_registeredNumber of yesterday’s days that were newly registered
errorsNumber of failures during registration

Troubleshooting

IssueSolution
Days missing on an open absenceRun the job manually with the run date set to the day after the missing one — the deterministic IDs make catch-up runs safe
Active period without an activityThe period skips registration. Verify the time-off policy attached to that absence has an activity configured