How to join invoicing to job scheduling
Two systems that both know about a job will disagree about it. The only question is when you find out.
Last updated: September 2026
How the drift happens
It starts sensibly. A calendar app for the week, an invoicing tool for the money, and a person who knows how they relate. Then a visit moves, the invoice does not; a job is cancelled, the invoice is raised anyway; a second visit happens, nobody bills for it.
Each individual slip is small. Together they produce the two most common leaks in a trades business: work that is never invoiced, and invoices that are queried because they do not match what happened.
The cause is not carelessness. It is that the link between the schedule and the bill lives in a person rather than in a record.
What joined up actually means
Not a nightly data transfer. Joined up means the invoice is raised from the job, so there is nothing to keep in step:
- The customer and the site address come from the job, not from a second contact list.
- The agreed price comes from the quote that was accepted on that job.
- The visits that happened are on the same record, so a second trip is visible when you bill.
- The write-up and photographs are attached, so a query is answered rather than argued.
- Marking the job completed is what puts it on the “ready to invoice” list, rather than somebody remembering.
Where Dispatch fits
The chain runs in one place: enquiry to job, job to quote, accepted quote to booked visit, visit to completion report, completion to invoice, invoice to payment.
A few specifics matter. The quote carries the line items and any deposit, and accepting it drafts the final invoice automatically, so the figure the customer agreed is the figure they are billed. An engineer can draft the invoice on site, and issuing it in the office is what allocates the permanent number. The dashboard carries a tile for jobs ready to invoice, which is the finished-but-unbilled pile turned into a number.
Payment comes back to the same record: card payments through the customer link settle into your own bank account, and bank, cash and cheque payments, including part payments, are recorded against the invoice.
The scheduling side is joined in the same way. A visit belongs to a job rather than existing as a diary entry, so moving it never separates it from the money.
If you have to keep two systems
Sometimes there is a reason: an accounts package your bookkeeper insists on, or a diary the whole team already lives in. Three rules keep the damage down.
One system owns the truth about a job. The other is a copy, and everybody knows which is which.
Transfer at one point only, and make it the same point every time. Usually that is completion: the job is finished here, the invoice is raised there.
Reconcile weekly, not monthly. Ten minutes comparing completed jobs against raised invoices finds the leak while the details are still fresh.
A CSV export makes that last one practical, and it is the intended route out to whatever your accountant uses, including for Making Tax Digital.
The measure worth watching
One number tells you whether the join is working: the average days between a job being completed and its invoice being issued.
If it is under a day, the chain is joined. If it is a week, something is broken between the van and the office. If nobody can calculate it at all, that is the answer too.
Shortening that number is usually worth more than any discount you could negotiate on the software, because it moves cash forward every single week. Getting paid faster covers the rest of that chain.
What is not in scope
There is no bank feed and no automatic reconciliation against a statement, and no direct connection to an accounting package: the route out is a CSV export.
One invoice covers one job, so a monthly consolidated bill across many small visits is not the shape supported here. And nothing is filed with HMRC on your behalf, by design.
Questions
Invoicing and scheduling: FAQ
Why do separate scheduling and invoicing tools drift apart?
Because the link between the visit and the bill lives in a person rather than in a record. Visits move, jobs get cancelled, second trips happen, and the invoice does not follow.
What does joined-up look like in practice?
The invoice is raised from the job, so the customer, the address, the agreed price, the visits and the completion photographs are all already attached to it.
How do I know which jobs are ready to invoice?
Completing a job should put it on a list. In Dispatch the dashboard carries a tile for jobs ready to invoice, so finished-but-unbilled work is a number rather than a memory.
What if I must keep my accounts package?
Keep one system as the truth, transfer at a single fixed point such as completion, and reconcile weekly. The route out is a CSV export rather than a direct connection.
Keep reading
More guides for trades and service businesses
One chain, end to end
Quote to job, job to visit, visit to completion, completion to invoice, invoice to payment. Nothing retyped in between.