Contract Hours
Every minute recorded, every contract honored
Contract Hours adds a stopwatch to GLPI that technicians control directly in the ticket timeline: Start Timer, pause, resume and stop. On stop, the module rounds the time to the configured minimum billable, automatically creates a private task with the recorded time and deducts the hours from the linked contract's balance. Courtesy time can be marked as non-billable: it shows as worked time, but does not consume the contract or trigger alerts.
Features
Contracts are defined per entity with combined resolution criteria: the assigned group and the ticket category must match for the ticket to be linked to the contract. A contract can also cover the child entities, with a single balance: a customer with several units uses one contract, and each unit's usage is shown separately in the Statement and in the portal. Unused hours can roll over to the next period. The module warns when a contract is about to expire or reaches its alert threshold and, with the Block + Alert option, prevents new tickets from being opened in the portal when the hours of all of the entity's contracts are exceeded, including through service catalog forms. Outside its validity period, a contract stops receiving hours: they go to the entity's default balance, and the technician is warned on the ticket.
In the portal, customers follow the Hours Consumption dashboard, with quota, hours worked and balance for each contract they can see and, if their profile allows it, the time logged on their own tickets. Management uses the Hours Statement, with CSV export and invoice, and, with the included My Dashboard, the ready-made Operations and Management dashboards, with the same numbers as the Statement. Retroactive time edits are recorded in an audit trail. When each cycle closes (monthly, quarterly, half-yearly or yearly), the invoice is sent to your system by webhook, recorded with its delivery status and resent automatically if the destination is down, without duplicates; a closing that did not run on the day is done on the next run, with the correct period.
How it works
Set up contracts
Create contracts with a validity period, hour quota, billing cycle (monthly, quarterly, half-yearly or yearly), group and category criteria, and define who can see each contract in the portal.
Time in the ticket
The technician clicks Start Timer in the timeline. The floating timer stays visible on every page. Pause and resume at any time.
Automatic recording
On stop, the system applies rounding, creates the private task and updates the contract balance automatically. Courtesy tasks can be marked as non-billable.
Track consumption
Customers see quota, hours worked and balance in the portal, and technicians follow the same view without leaving the ticket. Management sees each unit's usage in the Hours Statement and, with My Dashboard, in the Operations and Management dashboards.
See it in action
A quick tour of what the plugin does in practice.
Image gallery
Screenshots for this section are coming soon.
My Dashboard is included
Contract Hours includes My Dashboard: in GLPI 11 and 12, the Operations and Management dashboards come ready-made, with the same figures as the Hours Statement and period and entity filters.
Discover My DashboardStart using Contract Hours
View available plans or read the full article about this module.