Maintenance contracts and service calls: organize your after-sales support with Dolibarr
A contract spreadsheet always ends up missing a renewal date or an unbilled service call. Here is how to structure contracts, intervention sheets and invoicing in Dolibarr.

Why the spreadsheet ends up costing you money
A contract spreadsheet works as long as one person keeps it up to date. Once two technicians and a salesperson are editing it, problems start. A renewal date passes and nobody notices. A technician goes to a customer whose contract has expired, or does not cover the equipment concerned. A job is done, noted in a notebook, and never invoiced. The problem is not the data entry tool. It is the missing link between three objects: the contract, the intervention and the invoice. In a spreadsheet, this information lives in separate files. In Dolibarr, it is attached to the same third party and followed from the same customer record. The aim of this guide is simple: no renewal date should depend on someone's memory, and no intervention should be left without an invoicing follow-up.
Set up the contract on the customer record
Start by listing your contract types before entering anything. A preventive maintenance contract, a support contract with included hours and an annual flat fee do not follow the same rules. In Dolibarr, the Contracts module lets you create a contract attached to a third party, with service lines. Each line is a covered service, with its start date and planned end date. Use service-type products to describe these services: the wording stays identical from one contract to the next and your reports remain readable. If the contract comes from an accepted quote, create it from the commercial proposal to keep the link. Attach the signed document to the contract record. State in the description what is covered, what is not, and which equipment is in scope. A technician opening the record should understand within thirty seconds whether they can intervene.
Track renewal dates without hunting for them
A renewal date is only useful if it reaches you before it is too late. Dolibarr shows expired or soon-to-renew contract services on the dashboard. Make it a fixed weekly checkpoint, not just a screen someone looks at by chance. Add calendar events linked to the contract, so the salesperson gets a reminder before the end date. The right habit is to treat a renewal as a deal in its own right: one month before the end, you prepare the renewal proposal. A few points to check regularly:
- Filter the contract list by status to isolate those whose services are about to end.
- Assign each renewal to a named person, not to the team in general.
- Check that the end date entered matches the one on the signed document.
- Close contracts that are not renewed, so your list stays clean.
Record the intervention as soon as it happens
The intervention sheet is the link most often missing. Dolibarr offers an Interventions module, attached to a third party and, depending on your organization, to a project. A sheet records the date, the duration, the technician and the work done, line by line. Set a rule: no intervention without a sheet, created the same day or the next. A technician back at the end of the day can enter three sheets in ten minutes, from a phone if access is properly configured. If you wait until month end, you rebuild from memory, and hours vanish. Name the relevant contract in the description, so the administrative manager knows whether the intervention is included or billable on top. Validate the sheet once the customer has been informed: it then becomes the record that justifies the invoice line.
Invoice what is due, without re-entering data
There are two cases. The first is the flat fee: the customer pays a periodic amount, whatever the number of visits. A recurring template invoice is enough, and you can go further on this point in our article on recurring invoicing for subscriptions. The second is interventions outside the flat fee, or time spent beyond what is included. Here, the validated intervention sheet is the basis: you use it to create the invoice, carrying over the relevant service lines. Once a week, review the validated sheets that have no linked invoice. This simple checklist is enough to catch omissions before they become habits. If you also track time by project, the link with profitability is direct: comparing hours with invoiced amounts quickly shows which contracts are priced too low.
First step: one real contract, one full cycle
Do not migrate the whole spreadsheet at once. Pick a customer with a current contract and run the full cycle in Dolibarr: create the contract, enter one intervention as a sheet, then issue the matching invoice. Note what gets in the way, adjust your service wording and entry rules, then move the other contracts over in batches. If the breakdown involves returned or replacement equipment, the RMA and after-sales workflow is a useful complement to this setup. To frame the configuration or train your technicians, the Dolicraft team can help: describe your situation through the contact page and we will look together at your standard contracts and your invoicing process.
Need help with Dolibarr?
Our team of Dolibarr experts is available to support you in your projects: implementation, migration, custom module development and training.
Related articles
Agenda and events: track your sales team's activity in Dolibarr
Meetings, calls and follow-ups often stay in personal diaries. See how the Dolibarr agenda, linked to third parties, gives the whole team the same view.
Read articleOnline invoice payment: get paid faster with Dolibarr
A payment link on every invoice and quote, with payments recorded without re-entry: the method to shorten payment times with Dolibarr and ease your cash flow.
Read articleMulti-warehouse stock: keeping quantities accurate with Dolibarr
Warehouses, depots, vehicles: declare your storage locations, control transfers and movements, and know at any time what is available and where it is.
Read article