Rota

Rota setup

Prerequisites, permissions, first board, templates, and policy before you publish a live week.

Settings routes

From Launchpad → Rota, or the administrator section of the Rota menu.

  • /admin/rota-settings
  • /admin/rota-rotas
  • /admin/rota-templates
  • /admin/rota-patterns
  • /admin/rota-compliance
  • /admin/rota-approvals
  • /help — interactive from-scratch guide for planners and staff

Prerequisites

  1. Enable the Rota app on the tenant Launchpad (rota.Rota).
  2. Create HCM employees with user accounts for anyone who must open My Schedule.
  3. Place those employees in system.Group records that match how you plan (ward, store, crew).
  4. Confirm departments, units, locations, job roles, and holidays if templates or compliance will use them.
  5. If Attendance will honour the roster, decide which templates map to an attendance.Shift policy window. The default office window is 09:00–18:00 when no rota assignment applies.
  6. Decide the planning week start, whether swaps and claims need approval, and whether publish should email staff.

Without groups on a board, the scheduler has no rows. Without templates, planners have nothing to drag. Without a published range, staff see an empty My Schedule.

Permissions to plan

AudienceTypical rulesNotes
Staffrota.Rota:retrieve plus self-service menus (*:* on My Schedule, Open Shifts, Swaps, Availability, Help)They should not need template or settings write access.
Plannerrota.Rota:*, rota.RotaShift and rota.RotaAssignment write via controller intentsEnough to open the Scheduler, assign, and publish.
Administratorrota.ShiftTemplate:*, rota.RotaPattern:*, rota.RotaComplianceRule:*, rota.RotaSettings:update, rota.ShiftSwapRequest:*Owns catalogue, policy, and approval queues.
Reportingrota.Rota:retrieveReports and dashboard only.

Protect publish, approve, and settings behind trusted roles. Review JQL and API keys against /reference/rota before an integration can write assignments.

  1. Open Launchpad → Rota and confirm the shell loads for an administrator.
  2. Open Help and follow the planner track once — it is the same sequence as this page.
  3. Create or confirm groups and HCM employees for a single pilot team.
  4. Create one board on /admin/rota-rotas and attach those groups. Status will be draft.
  5. Create two or three shift templates on /admin/rota-templates with real times, colours, and headcount. Link an attendance shift only if the window should drive expected clock-in.
  6. Open /admin/rota-settings. Set week start, swap/claim approval, notifyOnPublish, and syncAttendanceExpectations.
  7. Open /scheduler?rotaId=<id>. Drag a template onto a person and a day. Assign until headcount is filled, or leave a slot in the open row on purpose.
  8. Review conflicts (double-booking, rest, weekly hours). Resolve or accept them consciously.
  9. Publish a short range (a few days, not a quarter). Confirm My Schedule, publish mail, and Attendance expected names.
  10. As a restricted employee, claim an open shift and request a swap. Approve from /admin/rota-approvals.
  11. Confirm Attendance On shift and the dashboard “expected but not clocked in” list match the published roster.
  12. Document who owns the board, who approves claims, and who reconciles presence.

Validation before go-live

  • A planner can create shifts and assign only on boards they should see.
  • A staff user sees only their own My Schedule and cannot edit templates.
  • An approver can accept or reject a claim without gaining settings access.
  • Publishing a draft week makes those shifts visible to staff and, when enabled, to Attendance expectations.
  • Login never marks someone live. A biometric punch or an administrator manualCheckIn does.
  • Overnight templates that cross midnight display as a single shift spanning two calendar mornings, not as 00:00–00:00.
  • Open-row drag fills one remaining slot, then closes the pool when the shift is full.
  • The Help menu is visible to every authenticated Rota user.

Implementation notes

  • Backend records: src/rota/models.py. Board payload and publish: src/rota/controllers.py and src/rota/services.py.
  • Frontend: packages/antly-app-rota. The in-app guide is /help.
  • Rota.groups is the staff source. The form copy is explicit: boards take their staff from the groups you attach.
  • ShiftTemplate.attendance_shift is a policy window, not a scheduled instance.
  • RotaSettings.sync_attendance_expectations defaults to true.
  • Presence payload on getBoard / getMySchedule is computed from attendance records overlapping the duty window.

Ongoing administration

  • Review group membership whenever someone joins, leaves, or moves team — the board updates from groups, not from a frozen snapshot.
  • Review templates when operating hours change; prefer editing the template to rewriting every historic week.
  • Review compliance limits after the first live month.
  • Review unfilled published slots daily; they remain visible on Open Shifts and on Attendance as expected names.
  • Review API keys and workflow listeners whenever you add a new publish or approval automation.