Module · Work logs
Where to find it in the app
- Use it: Time & pay → Job diary
- Turn it on/off: your business name (top-left) → Settings → Modules → Time & pay → Job diary
Plan: Solo and Business · Module group: Your team · Navigation:
Time & pay → Job diary
1. Overview
Purpose. A record of what your team actually worked on, so you can bill for it, look back at what was done for a customer, and see how much captured work has not been invoiced yet.
This is not a second timesheet, and the distinction is the whole point:
| Timesheets | Work logs | |
|---|---|---|
| The question it answers | "When were you at work?" | "What did you do, and can we charge for it?" |
| What it feeds | Pay, the pay run, payroll export | Invoices and customer history |
| Approval | Manager, plus the optional payroll sign-off | None. A log is a diary entry, not a pay event |
| The money on it | What you pay (private pay rates) | What you charge (charge-out rates) |
Work-log minutes never touch pay, and pay rates never appear anywhere in this module. You can use either tool without the other.
Off by default. A cafe that never bills for time has no use for it, so nothing appears until you switch it on. When it is off the app behaves exactly as it did before, and switching it back on restores everything.
2. Turning it on
Your business name (top-left) → Settings → Modules → Time & pay → Job diary.
Then open Time & pay → Job diary and use the Settings button, top-right, to set it up. Everything there is yours to edit:
- Categories. The kinds of work your team can log. Each one carries its own "chargeable by default" and, if you want, its own hourly rate. Five sensible ones are seeded; rename, reprice, delete or add as you like.
- Default hourly rate. Used when a category has no rate of its own. Leave it blank and chargeable work simply waits for you to price it, rather than going onto an invoice at nothing.
- Rounding. None (the default), or 6, 15 or 30 minutes, to nearest or always up. See section 5.
- Forgotten-timer cap. How long a running timer can go before the app closes it. Default 12 hours.
3. How your team records work
The two cards, and why there are two
On My work a person who gets sent out on jobs sees two cards, and they are a pair rather than a duplicate.
My day faces forwards. It is the run sheet: where you are going, for whom, the address, a number to tap, and the buttons for the day going sideways (Start on arrival, Adjust, Running late, Visit done). It only knows about jobs assigned to you, and it does not appear at all for a business that never assigns anybody.
My work log faces backwards. It is the diary of what your time went on. It is the only place you can run a live timer, fix yesterday's entry, or record work that has no job behind it.
They share one button. Log work on a job in My day and Add work in the diary open the same box; the difference is that My day fills the job in for you. Whichever one you use, the entry appears in both straight away, and each job row in My day says how much you have logged on it, so you can see you are ready before you press Mark done. That figure is your own hours only, never the whole team's.
If somebody genuinely does not want both, Customise at the top of the page hides either one for that person alone.
Staff use the My work log card on My work. Two ways in:
- Start timer. Starts immediately, no questions asked. A running bar shows the time so far; details can be added while it runs or after it stops. Only one timer can run per person at a time, and it lives on the server, so it survives a reload, a locked phone, or moving to another device. Stopping it fills in Started, Finished and How long for you, and all three stay editable, so a timer you remembered to start ten minutes late is two keystrokes to correct. Adding details while it is still running shows the start time and leaves the finish blank: Stop is the only thing that ends a timer.
- Add work. The manual path. Type the time as
1:30,90,1.5hor45m, pick the kind of work, and you are done. A bare number under 12 is read as hours, above that as minutes. - Or give the start and finish times. Under the duration there are
Started and Finished boxes. Fill both, e.g.
12:05pmand1:40pm, and How long works itself out (1h 35m here), so nobody has to do the subtraction. Most people know when they turned up and when they left far more reliably than they know it was ninety-five minutes. A finish earlier than the start is read as running past midnight, so10:00pmto1:00amis three hours. How long is the figure that gets billed, and you can overtype it afterwards, so a rounded-up figure is always yours to set. The two times are kept alongside it, so an entry can say when the work happened and not only how long it took, and they are still there next time you open it.
Then, optionally: a customer, a note saying what was done, and the chargeable tick (which defaults from the kind of work).
The customer box searches names, and it also searches phone numbers and email addresses, so a customer who only ever gave you a number is still findable by typing it. A customer with no name recorded at all is not offered, because a list of rows that all read "Customer" is not a choice and picking the wrong one would put the work on the wrong person's bill. The box says how many are being held back, so a search that finds nothing tells you why rather than looking broken. Give them a name under Customers and they appear straight away.
One visit, several lines
A real service call is rarely one thing. There is the travel, the work itself, maybe a second task, plus whatever parts got fitted. Add another line repeats only the part that changes: the day, who did it, the job and the customer are asked once at the top and shared by every line below.
Each line keeps its own kind of work, its own times, its own note and its own chargeable tick, and each becomes its own entry, so the invoice can say the travel was half an hour and the work was two, instead of one vague line for the lot. Fill in a line's Finished time and the next line starts there, because a day is one span after another.
The job says who pays
Pick a job and the Customer stops being a question: the job already knows who it bills to, so the name appears filled in and the box is closed. That is deliberate. A job belongs to one customer, and work logged against Mary Jones's job has to bill to Mary Jones; to bill somebody else, put the work on their job.
If the job has no customer on it yet, the drawer says so and leaves the box open, because a job can be opened from a booking or a phone call before anyone knows who is paying. Set the customer on the job and its unbilled work follows.
Parts fitted on the visit
Pick a job and a Parts fitted section appears under the lines, whether you are adding an entry or re-opening one you saved earlier, so stopping the timer and adding the tap washer afterwards is one flow. Add what you used and it goes on the same invoice as the time.
The picker offers two things at once, because the person fitting it is thinking "a tap washer", not "is that inventory or a price list":
- Your stock, if you run the Stock module. Recording it takes it off the shelf when the entry saves, not when the invoice goes out.
- Parts you fit often, your own saved shortlist, with the price already in. Nothing comes from stock and nothing moves; it is there so nobody types the same tap washer and the same $8 forty times a year.
Typed a one-off? Tick Remember this one and it joins the saved list, so the list builds itself out of what you actually fit. Managers can tidy it any time in Work logs settings, under Parts you fit often, and it orders itself with the most-used at the top. It starts empty on purpose: a ready-made catalogue of plumbing parts would be no use at all to a salon.
Staff see only their own entries. That is fixed, not a setting. The framing is "your work diary", not "we are watching you".
From a shared tablet. If you run a kiosk, you can add a Log work tile to it (kiosk settings, under the tile list). Whoever is using the tablet identifies themselves exactly as they do to clock on, by tapping their name or typing their personal PIN, whichever you chose, so the stricter setting is not weakened by a second way in. The tile only ever writes: nobody's logged work is shown back on a screen the whole room can see. Kiosk entries are always internal, because a shared device should not be able to put money against a customer's name; a manager can open the entry afterwards and charge it if it should be charged.
Photos on a job
Proof you can point at later: the before and after, the fault you found, the finished work. Open a job and use Take photo, which goes straight to your phone's camera, or Add photos to attach the ones already taken with your phone's own camera app, several at a time. On My work, each of your assigned jobs has a Photos button for the same thing, and the Log work drawer shows the same Photos section whenever a job is picked, so the hours, the parts and the photos of a visit all go on in one place. Photos land on the job the moment they are added; they do not wait for the entry to save.
Who can do what, and when:
- Add: managers on any job, and whoever the job is assigned to while it is open or on hold.
- Remove: you can remove a photo you added yourself while the job is still open, in case the first shot was wrong. Once the job is done, billed or cancelled its photos are part of the record, and only a manager can remove one. Removing is permanent and always asks first.
- A signature attached to a completed sign-off can never be removed, by anyone. It is the evidence behind the sign-off.
Photos are shrunk on the phone before uploading, so they send quickly on one bar of signal, and location data is stripped automatically.
A photo stays on its job until somebody deletes it. It is kept in private storage, so there is no public address for it and nobody outside your team can open it. Each time you view a job, the app builds a fresh one-off address for each photo that stops working an hour later, which you will never notice. That is what protects you if an image address is ever copied out of the page and passed around: it is dead within the hour, and it needed a login to reach in the first place.
Letting the customer see the photos
One tick, and it is off until you tick it. Open a job, and under Photos:
☐ Customers can see these photos We email a private link to dani@example.com. Only they get it, and it is never shown here to copy.
Tick it and their link is emailed straight away. The line changes to name the address, and underneath you get Not opened yet (or Opened Wed) and a Send it again button for the email that bounced or got buried.
It shows the whole job, always. Add three more photos next week and the customer sees those too, without you sending anything again. Delete one and it disappears from their page immediately. There is nothing to keep in step.
Untick it and their link is dead, that second. They get an ordinary not-found page, the same one an address that never existed would get.
Two layers of off
- Your business.
Time & pay → Job diary → Settings → Photos for customers. Until an owner or manager ticks that, none of this exists on any job. - Each job. Off by default, every time, for every job.
Why there is no link to copy
The link goes to the email address on the job's customer, and nowhere else. That is the whole protection: there is no address in the app for anyone to paste into a group chat. If the job has no customer, or the customer has no email address, the tick is not offered and it says why, so you add the address and come back rather than wondering where the feature went.
Be clear-eyed about what this is: anyone your customer forwards that email to can open the photos. It is a private link, not a password, and it is the same trade every business makes when it emails a customer anything. What you keep is the ability to stop it.
What the customer sees, and does not
Your business name, a heading, the photos, and a line saying the link is private and you can stop it at any time. No login, no account, nothing to install.
- 🛑 Signatures are never shared. Only photos go, and a customer's signature on your paperwork stays on your paperwork.
- No prices, no notes, no other job. One job's photos, and nothing that links to anything else.
- Each image gets a fresh one-off address that stops working within the hour, so an image copied out of the page is dead long before the page is.
- The link itself lasts 60 days.
4. The manager view
Time & pay → Job diary shows three figures for the period: hours logged, chargeable %, and the dollar value not yet billed. Beneath that is the list, filterable by period, person and state, with a dot on each row:
- Teal chargeable, not yet billed
- Grey already billed
- Hollow internal work
- Amber stopped automatically, needs checking
Tap any row to edit it. Log work records an entry, including on behalf of someone else (which covers team members who have no login). Export downloads the filtered list as a CSV of raw minutes.
Utilisation
If you use the roster, a quiet Utilisation panel sits below the list: for each person, the chargeable hours they logged as a share of the hours they were rostered, one month at a time. Leave, closures and unpaid breaks are already taken off the rostered side, so a fortnight of annual leave does not read as a collapse.
Someone with no shifts that month shows no roster rather than 0%, because there is nothing to divide by. Rows are listed by name.
There is deliberately no target, no ranking and no red text. This is a figure about the shape of the business, useful for spotting a month where too little of the team's time reached a customer. It is not a scoreboard, and using it as one is the fastest way to stop people logging honestly.
The panel does not appear at all if the roster module is off.
The Jobs board
The Jobs tab is every job on the books. It opens on Open, because those are the ones you can still do something about; a chip for each other status sits beside it, each with its count, and All at the end. A status you have never used gets no chip, so a business that has never cancelled a job never sees a Cancelled chip. The chips are instant: the whole board is already loaded, so nothing waits on the network.
Under Open and On hold the board reads in the order the work happens: anything with a day on it first, soonest first, then the rest newest first. The finished lists stay newest first.
Once there are more than a handful of jobs a find box appears above the list. It matches the job number, the title, the customer, the site and whoever it is assigned to, and it filters as you type. If nothing matches under the chip you are on, it offers to look in All.
Very large boards load the most recent 500 jobs and say so underneath. Older jobs are still on their customer's record and on their invoice.
Recurring maintenance
The strip at the top of the Jobs tab is work you already know is coming: a quarterly filter service, a monthly grease trap. It stays out of the way as one line (how many schedules you have and when the next one is due) and opens to the full list when you tap it.
When something is due it turns amber, says how many, and offers Open them, which raises the real jobs onto the board. You do not have to do that: a nightly run opens them by itself. The button is there for when you want them now.
A schedule opens a real job, and then it is just a job. It does not stay in
the recurring area: it lands on the Jobs board under Open, carrying the
schedule's title, customer, site and notes, marked Recurring so you can see
a schedule opened it rather than a person, and showing Due
It arrives with nobody assigned and no time booked, on purpose: who is free that week is a decision for the week, not for a schedule set up months earlier. That is what open the job early is for.
Each schedule has a cadence, a next-due date, an optional customer and notes for whoever does the work, plus open the job early so a quarterly service can land on the board a week or two before it is due and you have time to book it in. Pause stops a schedule opening new jobs without deleting its history.
Nothing here is sent to the customer, and nothing is invoiced until you bill the job like any other.
The Schedule board
The Schedule tab is where whoever hands out the work plans the day: one column per person against the time of day, with the business's opening hours shaded and, if you roster, each person's shift drawn as a band. Jobs with no upcoming visit wait in To schedule on the right.
Who runs it does not have to be a manager. There is a permission just for this, Open jobs and schedule the team's visits, under Work logs on the roles screen. Give it to whoever answers the phone and they can take the call, press New job right on the board (customer, address, what is wrong), and put it straight into someone's column, all without holding the manager keys that carry charge-out rates and billing. Supervisors get it by default on new businesses.
Someone holding only that permission sees no money at all: their Job diary is the board and nothing else. No Work log or Jobs tabs, no rate card, no Ready to bill, no billing figures anywhere. They still hear everything a coordinator needs to hear: when a team member adjusts a visit or reports running late, whoever holds the scheduling permission is notified, not just managers.
To put a job in someone's day, press Pick a time on it, then tap the gap in that person's column. A small sheet opens with the person and start time filled in: set how long you expect it to take (that is the estimate the team member sees, for example "8:00am to 9:30am"), add a note like "bring the long ladder", and save. Schedule… on the row does the same without the tap, and a job can have as many visits as it needs, including different people on different days.
With a mouse, just drag. Drag a job from the tray onto a column and the sheet opens at that time. Drag a visit up or down to move its time, drag it into another column to hand it to that person, or drag its bottom edge to change how long it runs. Every drop snaps to the quarter hour, saves straight away and tells you what happened, warnings included. On a tablet the tap path does all the same things.
The visit moves the moment you let go, rather than sitting back where it started while the save goes through. If the save is refused the visit goes straight back and the board says why, and until it is settled the visit is faintly greyed. The confirmation line only appears once it is actually saved, so what you read is never ahead of what happened.
Day or week. The Week switch shows seven days at a glance, starting on your own week start, with each visit carrying its person's name and closed days shaded. Tap any day's heading to open it on the day board. A person picker and a Hide done tick narrow either view, and Print run sheets prints the day as paper, one page per person with times, jobs, customers and notes, ready to hand out or pin up.
The week drags too. Drag a visit from one day onto another and it moves there, keeping the person and the time: a week column is a whole day, so nothing about the time is guessed. Drag a job in from To schedule and the sheet opens on that day with no set time, for you to fill in. Both work by tap as well: press Pick a time on a tray job, then tap the day you want. The day you are over lights up so the target is never in doubt, a day that has already been is refused with a reason, and a visit already marked done keeps its day, because that is a record now rather than a plan. Anything the new day should make you think twice about (a closure, leave, a public holiday) appears right after the move, so a drop is never held up waiting for a check.
Someone called in sick? Press Hand day… on their column heading, pick who takes it, and every remaining scheduled visit of theirs that day moves in one action, keeping its times. Anything already done, or that they are already on site for, stays put, and the sheet says so before you confirm. Both people are told once, and so is whoever runs the schedule. Nobody emails the customers, because their booked times have not changed.
The morning email knows the schedule. Anyone who gets the daily email and has visits that day sees Your run today at the top of it, times and jobs in order. Whoever holds a scheduling or work-logs management permission also sees how many jobs are waiting with no visit planned.
One diary with your bookings
When a team member is linked to a bookable staff resource (the Staff, spaces and equipment screen, linked through the resource's Team member field), the two diaries become one:
- Their job visits draw on the Calendar. The Staff day and Staff week views show each person's visits as muted job chips beside their bookings, and the month and week views count them in each day's load. Tapping a job chip opens the Schedule board on that day. The Calendar stays read-only for visits: the board is the only place a visit is moved.
- A scheduled visit holds their online booking times. The 10am job stops a customer booking them online at 10am, exactly as another booking would, buffers included. This is on by default and lives in the Job diary settings under Scheduling; turn it off and the two diaries never interact.
- A booking can arrive with its visit already scheduled. When an offering is set to open a job for each booking, the job now lands with a visit at the booked time for the booked person, and they are told their day changed.
- Follow up afterwards. A done job offers Follow up…, which makes a task to call the customer a few days later, linked back to the job, through the Tasks module.
- Estimated against actual. The job shows its visit windows added up against the hours logged, so "1h estimated, 1h 30m logged, 30m over" is a glance, not a spreadsheet.
The person is notified straight away (and by email or push if they have those on). Tap any visit to move it, hand it to somebody else, mark it done, or unschedule it, which drops the job back into the tray. When you hand a visit to a different person, both people are told.
Telling the customer. The sheet has a tick, Email the customer this booked time. It is off on every save, so shuffling a day never sprays emails; tick it on the save that settles the time and the customer gets one branded email with the date and window. If the customer has no email address on file, the board says so instead of pretending they were told.
On site. When the team member arrives they press Start on their My Work run sheet, and their chip on your board reads on site from that moment. One press, and the first press stands, so the arrival time is real.
Warnings, not roadblocks. Before you save, the sheet tells you anything about that day worth a second look, and then lets you save anyway. There are good reasons to work a public holiday or to call somebody in on their day off, so none of these stops you:
- The business is closed. Either a date on your closure list, which says so by name, or one of your normal days off from your opening hours ("The business does not usually open on Sundays"). A public holiday says that it is one.
- They are on leave, named as the leave type you actually use, so it reads "on leave that day (Annual leave)" rather than just "on leave". Part-day leave only warns when it clashes with the visit's own hours.
- They are marked off on the roster for that day.
- They said they are not available, either for that date or as a standing answer ("not usually available on Sundays"), with their note if they left one. If they offered hours instead, a visit outside them says so.
- It is not one of their usual working days, from their regular weekly hours. A business that does not keep regular hours never sees this one.
- Outside their rostered hours, or their usual hours when the roster for that day is not out yet.
- It clashes with another visit, or with a customer booking of theirs.
You get one sentence per thing, not five ways of saying the same thing: somebody on annual leave is not also told they are outside their rostered hours.
The column headings carry the same facts as small labels under each name, so you can see who is away before you start planning. The business's own day (a public holiday, or a day you do not open) is said once in a strip across the top of the board rather than repeated under all eight names.
Everything here follows the date in the sheet, not the date the board happens to be showing, so changing the date to next Saturday rechecks it against next Saturday. Scheduling from a job in the Jobs tab warns exactly the same.
If someone is also bookable by customers, their bookings show in their column as muted Booked chips, so you never schedule a visit on top of a client appointment. (You need calendar access to see the booking details.)
Each team member sees their own day on My Work, as a run sheet in time order. If Staff can adjust their own visit times is on (Job diary settings, on by default), they can move their own visit or press Running late, which pushes the rest of their day back by the same amount, and you are notified of every change they make.
5. Putting the work on an invoice
Three ways in, all needing invoicing rights:
Ready to bill, in one press. The Job diary and Finance both show a Ready to bill panel: who owes you money for work you have finished, oldest first. Raise draft invoice builds the whole invoice for that customer in one go, with every line already filled in (the date, the kind of work, the note, the hours and the rate), materials included, and drops you straight on the draft. Nothing is sent: a person checks it and presses send.
Everybody at once. With more than one customer waiting, the panel offers Raise all N drafts: one invoice per customer, each covering all their finished work, in a single press. It asks first, tells you the count and the value it raised, and names anyone it could not do rather than quietly skipping them. It does up to 40 at a time and says how many are left, so press again for the rest. Still nothing sent: they are drafts, same as the one-at-a-time button.
From the customer. Their record shows an unbilled work chip, for example "3.0h unbilled, about $390.00". Tapping it starts an invoice for them.
From the invoice. In a new or draft invoice, Add unbilled work opens a picker of everything chargeable and not yet billed for that customer.
The Ready to bill figure counts every unbilled chargeable entry, not only the ones the date filters happen to be showing, and it covers work recorded against a job and work recorded against a customer with no job at all. Jobs marked no-charge, cancelled, or on a billing hold are left out.
Or write it off. Some work is never going to be billed: a goodwill hour, a job quoted flat that ran long, an entry that turns out to be somebody else's. Open the entry and press Write off, say why in a line, and it comes out of Ready to bill and stops ageing. It stays on the record and on the job, the hours are still there, and the reason is kept so the figure can be explained later. It is not Delete, which says the work never happened. Put back undoes it. Only someone who could raise the invoice can do either, and never once the work is on an invoice.
Nothing ages out of it. Unbilled work is a running balance that invoicing drains, not a set of monthly buckets. So an entry from two months ago that was never billed, because it had no rate then, or its job had no customer yet, or the timesheet went in late, is still collected by the next scheduled run. A billing period is a cut-off: work done since the period closed waits for the next run, and nothing older is ever stranded.
In the picker, tick what to bill and choose how it reads on the invoice. It starts on your business default (below) and you can change it for this one invoice. Amounts are worked out live from your current rates, so fixing a rate in Settings fixes every future bill. The invoice line is where the price becomes real, and you can still edit it.
How work reads on an invoice
Set the format once, in Work logs settings, and every invoice the app raises for you uses it:
- One line per visit (the default) reads like what you did for them, day by day.
- A single summary line is one total for the lot.
- One line per entry itemises everything, note included.
Work with no rate anywhere is shown but cannot be ticked. It is left off rather than billed at nothing.
Nothing is marked as billed until you save the invoice, and the marking is conditional: if a colleague billed the same work a moment earlier, yours is not double-billed, and the invoice tells you how many entries to check.
Voiding an invoice, or deleting a draft, releases its work back to unbilled. The work still happened, so it becomes available for the replacement invoice. If you instead deleted the line by hand, open the entry from Work logs and use Mark as unbilled.
Parts from stock
Jobs can carry parts as well as labour. Adding a part from your Stock list records what was used, takes it off your on-hand count in the same step, and suggests a charge-out price, most specific rule first: a sale price pinned on the stock item, then a markup set on that one item, then your usual markup from Work logs settings. With no sale price and no markup anywhere, the price is left blank to type. It is only ever a suggestion, editable on the job. One-off parts (something bought just for this job) can be typed straight in without a stock item.
Staff assigned to a job can record parts on it when Staff can record parts on jobs assigned to them is switched on in Work logs settings; they choose the part and quantity but never see what a part cost you. Cost prices and margins stay with managers. When the job is billed, its parts land on the invoice alongside the labour.
6. Rounding, and why it works the way it does
Rounding applies only when work goes onto an invoice, and to a whole visit rather than to each entry. Three ten-minute jobs in one day are billed as thirty minutes, not as three separate round-ups to forty-five.
Reports always show the honest raw minutes, and changing the setting later only affects future billing. An invoice already raised carries its own quantities and never changes underneath your customer.
7. Forgotten timers
If someone leaves a timer running, it is closed at your cap and flagged needs checking. Such an entry is kept off invoices until a person confirms the real minutes, because billing an invented duration is worse than billing nothing. Confirming the minutes and saving clears the flag.
This mirrors how auto clock-out works on timesheets: the app will tidy up after you, but it will never quietly turn a guess into money.
8. Who can do what
| Log their own work | See the team's | Set rates and settings | |
|---|---|---|---|
| Staff | Yes | No | No |
| Supervisor | Yes | Yes | No |
| Manager / Owner | Yes | Yes | Yes |
Logging your own work needs no permission at all. Seeing the team's needs worklogs.view; setting charge-out rates is a pricing decision, so it needs worklogs.manage.
An entry can be edited by the person who wrote it while it is unbilled, and by a manager at any time. Once work is on an invoice it locks, because changing the minutes afterwards would contradict what the customer was charged.
9. Privacy
Notes can contain customer details, so they never appear on any public page. The only place work-log text reaches a customer is the description on an invoice line, which you write and can edit before sending.
Staff who cannot open the customer list can still choose a customer when logging work. The picker returns names only, never contact details.