LeaveFlow: Admin guide
Admin guide for LeaveFlow: company settings, users, employees, CSV import, departments, locations, absence types, leave balances, holidays, blackout periods, statistics, API tokens.
LeaveFlow: Admin guide
Admins reach all functions through the Admin menu in the header (groups Organisation, Leave & absence, System). After signing in, admins land on the statistics dashboard. Sign-in methods and integrations are on the page Sign-in and integrations, cron jobs on the page Operations.
Setup in the right order
After the setup wizard only the company and the admin account exist. Proceed like this:
- Review the Company settings (company profile, retention period, escalation threshold).
- Create Locations, because every employee needs one.
- Create Absence types: there are no predefined absence types. The seven types of the demo data (Urlaub, Resturlaub, Krankheit, Überstundenabbau, Sonderurlaub, Fortbildung, Berufsschule) only come from
make fixtures, which deletes all data. - Create Departments (optional, required for approval by team leads).
- Create Employees or import them by CSV.
- Create Users and link them to the employees.
- Create Leave balances for the current year. Without a leave balance for the year, LeaveFlow rejects requests that deduct from leave.
Company settings
Under Company settings (/admin/company/settings) you maintain the company profile.
| Field | Description |
|---|---|
| Company name | Shown in the interface and in the PDF export |
| Address, Tax ID / VAT ID, Commercial register | Appear in the letterhead of the PDF export |
| Logo (PNG/JPG/SVG, max 1 MB) | Shown in the company settings, on the login page and in the PDF export, Remove logo deletes it |
| GDPR retention period (months) | Default 36, allowed 1 to 360; see Privacy |
| Approval escalation threshold (days) | Default 3, allowed 1 to 90: after this many days a pending request is reported to all active admins |
| Default: Remaining leave on employee exit | Preset for the exit dialog |
Below are the blocks for Google, Microsoft Entra ID, LDAP, Slack, Teams and the 2FA requirement, described under Sign-in and integrations.
The "Accent color" field is stored but has no effect in the interface.
Users
Users are the login accounts (/admin/users). The list shows 25 entries per page, can be filtered by status (All, Active only, Deactivated only) and searched by email or employee name.
| Role | Access |
|---|---|
| Employee | Self-service: requests, leave balance, profile |
| Manager | Additionally approvals for their own departments |
| Administrator | Full access |
Creating a user
- Open Create new user.
- Enter email, role and language. There is no name here, the name belongs to the employee record.
- Save. LeaveFlow sends an email with the link "Set password and sign in", valid for one hour.
Further actions in the list: Edit (role, language), Deactivate and Reactivate (inactive users cannot sign in, the history stays), Send reset (new password link) and Reset 2FA (the user sets up 2FA again).
Employees
Under Employees (/admin/employees) you manage the people who have leave. By default the list shows active employees only (filter: Active only, Inactive only, All).
| Field | Description |
|---|---|
| Full name, Employee number | The employee number is unique per company |
| Location | Determines the holiday calendar |
| Department | Optional; without a department approvals go directly to the admin |
| Weekly hours, Working days, Distribution | "Even" splits the hours across the working days, "Manual per day" allows your own hours per weekday (the sum must match the weekly hours) |
| Joined | Start date; for a mid-year start LeaveFlow shows a note about the twelfths rule |
| Probation ends (optional) | During probation only pro-rata earned leave hours are available |
| Left (optional) | Date of leaving |
| Linked user | Optional; only needed if the person should sign in |
Further actions: Exit employee... (exit dialog with date and remaining leave policy), Request history (all requests with hours overview per year) and Export CSV.
CSV import
At /admin/employees/import: Download CSV template, fill it in, upload, check the preview and confirm with "Import … employees". Invalid rows block the import until the file is corrected.
| Column | Required | Format |
|---|---|---|
fullName |
yes | Free text |
employeeNumber |
yes | Unique in the file and the company |
locationName |
yes | Name of an existing location (not the ID) |
weeklyHours |
yes | Number greater than 0, comma or dot |
workingDays |
yes | Comma list of 1 to 7 (Monday = 1), for example "1,2,3,4,5" |
joinedAt |
yes | YYYY-MM-DD or DD.MM.YYYY |
leftAt |
no | Date like joinedAt |
userEmail |
no | Email of an existing user that is not linked yet |
departmentName |
no | Name of an existing department |
The delimiter is the comma. The import creates no users and has no role column, hours are split evenly across the working days.
Departments
Departments (/admin/departments) determine the approval chain.
| Field | Description |
|---|---|
| Name | Display name |
| Team lead | Decides on the department's requests; "No lead (admin approves)" is possible |
| Deputy | May decide as well; must differ from the team lead |
| Active | Inactive departments get no new approvals, requests go directly to the admin |
Team lead and deputy can only decide if their user account has at least the Manager role. No default department is created automatically.
Locations
Locations (/admin/locations) determine the holiday calendar through the federal state. Required fields are Name, Country (two-letter ISO code), Federal state (ISO 3166-2, for example DE-BY) and City. The 16 German federal states are supported, for an unknown federal state the request preview reports "Your location has no supported federal state."
Absence types
Absence types (/admin/absence-types) define what can be requested.
| Field | Description |
|---|---|
| Name | Unique within the company |
| Deducts from leave balance | Whether hours are booked off the leave balance |
| Requires approval | Without approval a request is "Recorded" immediately |
| Color | Color in the team calendar |
| Active | Inactive types cannot be chosen in the request form |
| Bucket binding | Any bucket (FIFO), regular leave only or carryover only |
| Counts toward the 6-week illness threshold | Counts the days for the illness alert after 42 calendar days |
Leave balances
Leave balances (/admin/entitlements) show granted, used and remaining hours per employee, year and type. The default view is the current year, the filter lets you choose another year or "All years".
| Type | Meaning |
|---|---|
| Vacation | Regular annual leave, valid for the whole year |
| Carryover | Carried-over leave with an expiry date; the year is the year of use (carryover 2027 comes from 2026) |
Creating an entitlement
- Open Add leave entitlement.
- Enter employee, year, type and "Granted (hours)".
- For carryover optionally set an expiry date (
DD.MM.YYYY). It must not be before 31 March of the year. If left empty, the entry does not expire. An expiry date is not allowed for regular vacation.
There is exactly one entry per employee, year and type. For a mid-year start the form shows the twelfths rule (BUrlG §5) as a note. LeaveFlow does not calculate the pro-rata value itself, you enter it.
Adjusting
Edit changes the granted hours (not below the hours already used), Adjust expiry changes the expiry date of a carryover. Both require a reason and appear in the change history. Deleting is only possible while no hours are booked.
Year transition
Carryover for the following year is created by the cron job year-transition on 1 January at 01:00 or by the command app:entitlement:year-transition. Details are on the page Operations.
CSV export
Export as CSV returns the displayed balances as CSV (semicolon, UTF-8 with BOM, decimal comma).
Holidays
Under Holidays (/admin/holidays) you see the calculated holidays per year and federal state with the source "Calculated", "Added", "Removed" or "Company". LeaveFlow calculates the public holidays of all 16 federal states, including the movable ones derived from Easter.
- Regional adjustments: per federal state and date you add an "Additional holiday" or mark a holiday as "Does not apply (not a legal holiday)". Optionally you restrict the adjustment to one location.
- Manage company holidays: company-wide days off (bridge days, company shutdown) with date and name that apply to all locations.
Blackout periods
Blackout periods (/admin/blackout-periods) block requests in a period. Only admins manage them. Fields: Start, End, Reason and optionally a department (empty = company-wide). If a request overlaps a blackout period, LeaveFlow rejects it already in the preview and names the reason. In the team calendar blackout periods are shown with a red background.
Leave requests
Under Leave requests (/admin/leave-requests) you see all requests of the company with a status filter. In the detail view Change type changes the absence type of an already approved request. You enter the new type and a mandatory reason, LeaveFlow rebooks the hours and notifies the employee. You approve requests under Approvals.
Statistics
The statistics dashboard (/admin/statistics) is the admins' start page and can be filtered by year.
- Action items: "Expiry risk" (carryover expiring within the next 90 days) and "Overdue requests" (open for more than 5 days)
- Currently away: who is away today, with a link to the team calendar
- KPIs: Leave utilization, Illness rate, Open requests, Avg. unused leave
- Charts: "Leave distribution across the year" and "Utilization by team"
- Department details: table; departments with fewer than 3 employees stay hidden
Export as PDF creates an A4 report with a letterhead from the company data. The CSV export of leave balances is on the leave balances page.
API tokens
Under API Access Tokens (/admin/api-tokens) you create tokens for the REST API. Create token asks for a name and optionally an expiry date in the future. The plain-text token appears exactly once. The list shows Created, Last used, Expires and Status (Active, Revoked, Expired). Revoke blocks the token immediately.