PLATFORM
Every part of the operation, in the order it happens.
Onvoro is one record that starts when a client accepts a quote and ends when an invoice is issued against the hours somebody actually worked. Nothing in the middle gets re-keyed.
Quotes and contracts
It starts with what you offered, not with a timesheet.
A quote goes out as a document the client opens with no account and accepts in the browser. What they accepted is what the roster is then built from.

Accepted, with no login. The version they were sent stays as it went out.
The client needs no login
They read the scope, see your own logo, and accept or decline. The version they were sent stays exactly as it went out.
An accepted quote becomes work
It raises a job at the site, carrying the scope across so the person doing it can read it on a phone.
A contract is what was agreed; a service plan is how it is delivered
One building can sit under a cleaning agreement and a grounds agreement at once. Changing the nightly schedule does not reopen either.
Roster
The roster fills itself, and every row keeps its own clock.
Shifts are generated from the service plan six weeks ahead and topped up through the day, so a plan activated this morning has a roster by lunchtime.

Six weeks ahead, filled from the plan. And topped up through the day.
Each site on its own time
A shift stores the clock it was created in, so relocating head office cannot reinterpret a night already worked.
An open shift is a real state
A plan says two cleaners, never who. Taking somebody off leaves the work still promised and visible.
Filling a shift flags rather than blocks
A casual covering a site they are not assigned to is allowed and reported. Nobody is in two places at once.
Work rights are checked for the day of the shift
One that has run out by then refuses the shift. One not on file yet warns and records the warning, so a new starter mid-onboarding stays rosterable.
Attendance
Attendance is measured, and what it was measured against is kept.
The phone captures where somebody is. Onvoro checks it against the geofence as it stood at that moment, and keeps both.
A verdict and a reason are different things
A reading can be outside the fence, stale and imprecise at once. The status says whether to look; the flags say why.
Nobody is stranded on site
A worker outside the fence gives a reason and signs in. A manager is told rather than the shift being blocked.
A correction is a second fact
The end that moved is marked as settled by a person, with the reason on the audit trail. The original reading stays.
No tracking between events
Location is captured at sign-in and sign-out. There is no trail because nothing collects one.
- Dani OkaforCollins Street Tower380 m from a 150 m fence, reason givenOutside the geofence
- Marco RossiMawson LakesThe fix was 9 minutes old when it arrivedStale location
- Priya NairWaymouth Street OfficesLocation was off, reason givenNo location
Jobs and tasks
Work that is not a shift has its own record.
A shift answers when somebody must be at a site. A job answers what needs completing. A callout is a job with no shift at all.
A tick is not proof
Where a task needs a photo, a completion with none attached still counts as outstanding, on the checklist and on the timesheet.
Completed work can be reopened
A client saying it is not clean the next morning reopens the same job, so the evidence stays on one record.
- Clean affected area
- Sanitise surfaces
- Completion photoNeeds a photo
Field app
Your team’s half of the record, on their phone.
One app for the people doing the work. It shows them where to be and what needs doing, and signing in and out there is what records their hours. On iPhone and iPad today; there is no Android app yet.
Their own work, nobody else’s
Today’s shifts and the jobs given to them in one list, with the site’s address, its arrival notes and who supervises it.
Signed in where the work is
One tap at the site. A reading that does not stand up asks for a reason rather than turning them away.
Proof as they go
Tasks are ticked off on the shift, with a photo where one is asked for, and a problem at the site is reported from the same screen.
Shaped by their role
A cleaner sees their own shifts. A supervisor on the same app sees the sites they look after, and what is late or flagged at them.
Two shifts today, and one job to do.
Your shifts
- Collins Street Tower6:00 to 10:00 amOn site
- Elizabeth Civic Offices6:00 to 9:00 pmScheduled
Your jobs
Timesheets and invoices
Hours become money once, and only forwards.
A timesheet is generated from attendance, reviewed by a person and approved. Approving it snapshots the hours and the rate, and nothing upstream can move them afterwards.
A clean timesheet still waits for a person
Approved means somebody reviewed it, never that nobody objected.
A rate is dated
Putting a price up in March does not change what February is billed at.
An invoice number is a promise
It is allocated when the invoice is issued, never to a draft, so the sequence has no gaps. Voiding gives the work back to be billed again.
Paid by the clock, or by the roster
Choose once whether people are paid for the time they were signed in or the shift they were rostered. Clients are charged the same either way.
Contractors
Subcontracted crews are billed, not put on payroll.
When a contractor sends their own crew, the crew signs in like everyone else. Their approved hours go on the contractor’s bill, at the contractor’s own price, and never on your payroll.
One visit per clean, however many come
Price a contractor per visit, and two cleaners on one clean still count as one visit, at a price you can set for each building. Price them by the hour and the crew’s hours add up.
A statement before the invoice
The contractor gets their bill by email or a link they open with no login: each building, their crew’s hours and the total, so their invoice has something to match.
A login that sees only their crew
A subcontractor can check their own crew’s shifts and hours. They see nobody else, and nothing about your clients or what you charge them.
Into your Xero, and back as paid
If you use Xero, each bill goes there as a draft for you to approve and pay, and shows as paid in Onvoro once you have.
- Maria Santos7h 00m · 2 days
- Ali Hassan3h 20m · 1 day
Roles and scopes
A permission answers “may they?” A scope answers “to what?”
Both are resolved on every request, so revoking something takes effect on the next call rather than when a session expires.

Revoked on the next request. No waiting for a session to run out.
Seeing a site doesn’t mean you can sign in there
To sign in at a site, somebody needs a shift there, an assignment to it or a job underway there.
Make your own roles
Copy one of the seven built-in roles and change it to fit. The built-in ones stay as they are, so there is always a known starting point. On Operations and above.
Every important change is logged
Role changes, attendance edits, approvals, rate changes, geofence moves and invoice changes are recorded with who made them and when.
Xero, from the Operations plan up
If you use Xero, the chain ends there.
Xero still keeps your ledger and runs your pay. Without it, Onvoro takes work to an issued, numbered invoice with a PDF.
- An issued invoice goes to your Xero, under the client’s contact
- The payments recorded there come back, so Onvoro shows what is paid
- Approved hours go to Xero Payroll, a pay period at a time