Shifts and Absence Requests
Shifts (/shifts/calendar) and Absence Requests (/absence-requests) are a built-in time-tracking module with its own data storage and logic, rather than an example of an entity assembled from generic no-code primitives (unlike most other sections of the platform). Shifts and requests have their own models and API; they use shared directories — users, companies, and org units — but they aren't configurable entities created through the builder.
Shift calendar
Shifts (/shifts/calendar) shows a weekly grid: employees in rows, days in columns. Cells display shifts and (once approved) an employee's absences for that day.
Shift fields
| Field | Required | Description |
|---|---|---|
| Employee | Yes | The user the shift is assigned to |
| Date | Yes | The shift's date |
| Start Time / End Time | Yes | The shift's hours |
| Type | Yes | Work / On-call / Training / Remote |
| Status | No | Scheduled / Confirmed / Completed / Cancelled (defaults to "Scheduled") |
| Note | No | Free text |
The shift's org unit and company are filled in automatically from the selected employee's current data, rather than being set manually.
Creating a single shift
- Open Shifts
- Click an empty calendar cell at the intersection of the employee and date you need (or click the "+" in the cell)
- Fill in the time, type, and a note if needed
- Save
Bulk shift creation
To assign a recurring schedule to several employees at once, use the separate bulk-add mode:
- Open Shifts
- Click the bulk-add button
- Select employees (you can select all, clear the selection, or select all employees in a chosen org unit)
- Specify the date range and the days of the week to schedule the shift on
- Specify the start/end time and type (a quick "Full Day" preset is available, Mon–Fri 09:00–18:00)
- Run the creation
The system creates shifts for each selected date for each selected employee, skipping exact duplicates (same employee, date, start time, and end time), and reports how many shifts were created and how many were skipped.
Filtering by org unit
The calendar's top panel lets you filter the display by org unit — the same filter is also used when bulk-selecting employees "by org unit."
Absence requests
Absence Requests (/absence-requests) track vacation, sick leave, and other absences with manager approval.
Request fields
| Field | Required | Description |
|---|---|---|
| Type | Yes | Day Off / Sick Leave / Vacation / Unpaid Leave / Business Trip |
| Start Date | Yes | |
| End Date | No | If not specified, the request is for a single day |
| Comment | No | Free text |
The manager (the Manager field on the user's card) is filled in automatically on the request and used for approval.
Request lifecycle
Draft ──→ Submitted ──┬──→ Approved ──→ Cancelled
↑ └──→ Rejected ──→ Draft
└────────────────────────────── Cancelled| Status | Description |
|---|---|
| Draft | The request has been created but not submitted to the manager; can be edited and deleted |
| Submitted | Awaiting the manager's decision |
| Approved | Confirmed by the manager; shown in the shift calendar as an absence |
| Rejected | The manager rejected the request, optionally with a reason; the request can be returned to draft |
| Cancelled | The request has been withdrawn |
Transitions between statuses are restricted — the system won't allow an invalid transition (for example, from "Cancelled" to "Approved").
Creating and submitting a request
- Open Absence Requests
- Click the add button
- Specify the absence type, dates, and a comment
- Save as a draft
- When the request is ready, click Submit to send it to the manager for approval
Approving a request
The manager sees their reports' requests on the "Pending Approval" tab and can:
- Approve the request;
- Reject it — with a reason;
- the requester can cancel a draft or an already-approved request at any time.
Viewing requests
The request list has a view-scope switch:
| Tab | What it shows |
|---|---|
| My Requests | The current user's requests |
| Pending Approval | Requests where the current user is listed as the manager and the status is "Submitted" |
| All Requests | Available to administrators — every request in the system |
Approved requests automatically appear as absences in the shift calendar on the corresponding dates.