Skip to main content
People manages employees, organizational structure, schedules, and employee attributes. An employee record defines company membership and work assignments. Login methods, roles, and access grants are managed through permissions. Alforse represents a person across three tables. user is the global login identity. employee represents membership in one company. employeeJob stores the person’s title, location, department, shift, and manager. The records share an ID and are company-scoped, so one user can have different employment details in multiple companies.

Employees

The Employees directory (under Manage) lists everyone in the company. Each row shows first and last name, email, employee type, location, and a Status of “Active”, “Invited”, or “Inactive” — derived from the employee record and any pending invite, not stored as a field. Open a person to see their Profile, Job, Abilities, and Notes, plus a tab per attribute category and a Timecards tab when time cards are enabled. When the company requires two-factor authentication, the list also carries a Two-Factor column showing whether each person has an authenticator set up, and the row menu offers “Reset Two-Factor Auth” for anyone who has lost their device. Both are covered in two-factor authentication. The Job section is the employee master data you edit here: Adding and removing people (invites, deactivation) is part of the identity and access flow, not this master data. Deactivating a person tears down their membership — it removes them from the company, deletes their job placement, and revokes their access — so treat it as an access action, not an edit here.

Departments

A department is an organizational unit. Each has a name and an optional , so departments form a hierarchy you can roll headcount up through. Employees attach to a department via their job placement. Departments are configuration, so they live under Configure. Deleting a department is a hard delete — check that no one is assigned to it first, since removing it leaves those job placements without a department.

Shifts

A shift is a named work schedule tied to a location: a start time, an end time, and the days of the week it runs. You assign a shift to an employee through their Job section. Shift membership answers who’s scheduled today, and it is a real scheduling input: the engine intersects each person’s shift hours with a machine’s operating hours to decide when ability-gated work can run, so editing a shift or a person’s shift assignment queues a replan of the affected schedules. Deleting a shift marks it inactive instead of removing it, preserving historical assignments.

Holidays

A holiday is a company non-working day: a name and a date. The year is derived from the date automatically, and the list groups by year so you can review one calendar year at a time.

Attributes

Attributes are custom fields you track against people — things Alforse doesn’t model natively, like a certification expiry, a badge number, or a t-shirt size. They’re organized in two layers: an attribute category groups related fields, and each attribute inside it is one field with a data type. A category carries a name, an emoji, and a toggle that controls whether its attributes show on a person’s public profile or stay admin-only. Each attribute defines: The comes from a fixed set: “Text”, “Numeric”, “Yes/No”, “Date”, “List”, and “User” (the same list also powers customer and supplier custom fields, which add “Customer”, “Supplier”, and “File”). A “List” attribute pulls its choices from its . The “Link” type is offered on custom fields only, not on attributes.

Time cards

A time card is a clock-in / clock-out record for an employee. Time tracking is off by default and turns on per company with the Timecards switch (marked Beta) under Settings → People; once on, the Timecards tab appears on each person and a company-wide list shows up under Manage. Each entry captures the employee, a clock-in time, an optional clock-out time, and a note. An entry with no clock-out is still open — Alforse derives its Status from that:
Status is computed, not a stored field, and there is no approval step — a completed time card is final, not pending sign-off. Duration is calculated from clock-in to clock-out (or to now while still active), and weekly hours roll up from the current week’s entries. You can also add, edit, or delete entries directly, so a missed punch can be corrected after the fact.