Workforce & Dispatch
Staff scheduling, attendance and time-off — with auto-generated rosters — plus the dispatch board for seeing who's available and triaging the day.
👥 Workforce
Plan and publish per person/location. Status: draft → published → completed (or cancelled / swap pending).
Clock in/out & breaks; each record graded on time, late, absent or incomplete, with a correction-request flow.
Requests by type (vacation sick unpaid personal emergency), full or half-day, approved or rejected.
Assign & auto-schedule
- Assign an employee to a branch/warehouse + role, with working days and standard hours.
- Auto-schedule — generate shifts across a date range from each person's working days & hours (or the location's hours), automatically skipping leave and existing shifts.
- Temporary reassignment — send someone to another location for a period without changing their home base.
- Time-off on behalf — managers can add time off for an employee and approve/decline requests.
Shift swaps have their own request/decision flow, and copy-week + bulk tools make repeating rosters fast.
🗓 Dispatch board
A week/month grid of who's available across your whole team — the operational view for triaging the day and seeing coverage at a glance.
- Roles filter — show exactly the people you need (managers, sales, support, drivers, installers…); multi-select to combine.
- Click a person for their schedule, or a day cell to triage what's happening that day.
- Coverage & map views help you spot gaps and locate field staff.
Available to tenant owners and admins, managers, support staff, service staff, executives, and the dedicated dispatch role (or anyone holding dispatch.read/dispatch.write). Dispatch can read orders/customers/installs and assign, reschedule & complete deliveries, but can't edit inventory or installations — see Roles.
🧾 Field reference
Shift
| Field | Meaning |
|---|---|
| Staff | The employee assigned to the shift. |
| Location | Branch or warehouse the shift is at. |
| Role | What the person is rostered as (sales, warehouse, driver, installer…). |
| Start / End | The window; auto-schedule fills these from the location's open hours. |
| Status | draft → published → completed · plus cancelled · swap pending. |
| Swap | Request/decision flow for swapping shifts with another person. |
Attendance
| Field | Meaning |
|---|---|
| Clock in / out | The recorded punches against the shift. |
| Breaks | Break start/end pairs; total break time is rolled up. |
| Status grade | on_time · late · absent · incomplete · corrected. |
| Correction | Employee or manager request to fix a punch; pending → approved/rejected. |
Time-off
| Field | Meaning |
|---|---|
| Request type | vacation · sick · unpaid · personal · emergency · schedule_block. |
| Partial | full day · half_am · half_pm · time_block (custom window). |
| Status | pending → approved / rejected / cancelled. |
| Balance | Remaining vacation/sick days; managers can see everyone's. |
🔑 Who can do what
| Action | Roles |
|---|---|
| View staff & schedules | Manager, owner, admin (own schedule visible to each employee). |
| Assign & auto-schedule shifts | Manager, owner, admin. |
| Approve time-off / corrections | Manager, owner, admin. |
| Add time-off on behalf of an employee | Manager, owner, admin. |
| Open the Dispatch board | Manager, support/service, dispatch, executive, owner, admin. |
❓ FAQ
Auto-schedule didn't create a shift for someone — why?
It skips a day if the person has approved leave then, or already has a shift on that day. Confirm both, then re-run.
An employee's clock-in is wrong.
Raise a correction from their attendance record. A manager approves and the entry is updated; the original is kept in history.
Can I send someone to another branch temporarily without changing their home?
Yes — use Temporary reassignment: set the target location and a date range; their home base stays as-is.