Staff
Three jobs, one owner, and a schedule that says no.
An agency roster is not a permissions matrix — it is a handful of people with genuinely different jobs, and one recurring disaster where two departures turn out to need the same manager on the same week. Triprant models the first and refuses the second.
Roles
The office and the field are different jobs.
Not three rungs of the same ladder. A coordinator running the applications inbox and a manager standing in a car park at 6am need different screens, and giving them the same one with things greyed out serves neither.
- Admin — one, always
- The owner of the agency. Holds billing and the agency’s own details, and appoints everybody else. There can be exactly one, enforced by a unique index rather than a convention, so ownership is never ambiguous and never accidentally shared.
- Coordinator — the office
- Posts departures, assigns a manager to each, works the applications inbox, handles deposits, waivers and the roster. The job that happens at a desk before and after the trip.
- Trip manager — the field
- The person actually on the departure. Holds the trips assigned to them, keeps the private trip log, and is who the schedule is protecting from being in two places at once.
The schedule
The double booking is refused, not reported.
- One manager, one departure at a time. Assigning a trip manager to dates that overlap a departure they already hold is refused, not flagged. The guard sits on the write, so there is no window in which the double booking exists and somebody has to notice it.
- Commitments that are not Triprant trips still block. A manager can be marked unavailable for a range — leave, a personal booking, work elsewhere — and the same refusal applies. A calendar that only knows about trips on this platform would be a calendar you still could not trust.
- It is race-proof, not merely checked. Two coordinators assigning the same manager at the same moment cannot both succeed. The guard takes a lock covering both the trips and the commitments, so the second write loses rather than slipping through the gap between a check and an insert.
- What an outside commitment IS stays private. Another agency sees only that the manager is unavailable for those dates. The label lives with the agency that wrote it and is not disclosed across that boundary.
- Unassigned and undated work does not vanish. A departure with no manager or no dates cannot appear on a calendar, which is exactly how it gets forgotten. It stays visible as work waiting for somebody rather than as a blank square.
Working together
Somewhere to talk that travellers cannot read.
- A staff channel that is always there
- One agency-wide thread every staff member is in automatically — nobody invites anybody. Separate from anything a traveller can read.
- A channel per departure, staffed by hand
- Each trip can have its own staff thread, started by whoever needs it and grown by adding the colleagues it concerns — rather than dropping the whole office into every trip.
- Leaving closes the doors
- When somebody stops working at the agency, their access to those internal threads goes with the role. It is part of removing them, not a follow-up task.
- Seats, not headcount tiers
- The base fee includes an admin, a coordinator and a trip manager. Coordinators and managers past that draw on one shared pool, so an office of three coordinators and one manager costs the same as one coordinator and three managers.
Put the roster somewhere it can argue back.
Set your agency up, add the people who work there, and let the schedule catch the clash before a traveller does.
An agency is created from an ordinary Triprant account, and reviewed before it goes live.