GLPI contract and supplier management

GLPI's contract module records maintenance, support and loan agreements against the assets they cover, alerts owners before renewals and feeds financial records. This page covers the decisions, data setup and effort involved in building it.

On this page

Why GLPI contract management needs its own workstream

Contract records in GLPI are only as useful as the asset, supplier and financial data behind them. An IT team that tracks maintenance, support and loan agreements in spreadsheets or email usually cannot answer two basic questions: which devices a support agreement actually covers, and when it renews. GLPI can hold those answers in one place, but only after the contract module is connected to records that are already correct. A contract linked to the wrong asset type, a supplier entered under three spellings, or a purchase value missing from the financial tab will produce reports that look complete and are not.

That dependency is why this work is usually scoped as its own workstream rather than a line item in a wider GLPI rollout. The contract data model, the asset inventory it points to and the finance records it feeds each have owners, and each needs a decision before the contract build starts. Before you commit to a scope, confirm who owns supplier master data, which asset types need to carry contract links, and whether finance will use GLPI figures or keep its own ledger as the record of truth.

The work covers three areas: linking contracts to assets, renewal and end-of-contract notifications, and tying contracts into financial records. Each one depends on the others. Notifications are only as good as the end dates and the recipients on each contract, and financial links only help if the contract, its cost and the assets it covers agree. Treat the three as one design exercise, and check the GLPI documentation for the current contract behavior in your version before you write the plan, since the ways these fields are used can differ between releases.

What the GLPI contract module does

GLPI's contracts module records maintenance, support and loan agreements and keeps them attached to the assets they cover. Each capability below connects to the wider GLPI data model, so the contract record stays useful to technicians, finance and procurement at the same time.

Contracts linked to assets

The module inventories contracts and relates them to the assets they cover, so a technician opening an asset can see which maintenance or support agreement applies to it. Check early which asset types can take a contract link in your GLPI version, and decide whether shared agreements will be attached to one item or to several. Unlinked contracts tend to become the records nobody trusts during an incident.

Financial management integration

GLPI integrates contract records with its financial management features, so the cost and term of an agreement can be read alongside the assets it supports. Confirm with your finance team which fields they need in the record, such as amounts, periods and cost centers, before you design the data entry process. Ask who owns the figures, because the module stores what people enter.

Renewal tracking

GLPI tracks contract renewal, so a contract that must be renewed explicitly is visible before its term ends. This gives procurement time to review terms and competing suppliers instead of renewing by default. Agree who receives the warning and who signs off the renewal decision, since the alert only helps if someone acts on it.

Notifications before contract end

The module can send notifications before the end of a contract that must be renewed explicitly. Test the recipients, the lead time and the delivery path (GLPI mail settings and notification templates) in a staging instance before relying on them. Notifications depend on working mail delivery, so verify that messages actually arrive.

Shared data with tickets and CMDB

Contracts sit alongside tickets, assets and CMDB records in the same GLPI instance, so support requests and asset history can point to the agreement that governs them. Map which ticket categories and asset types should reference contracts, and decide who may edit contract data. Shared records make audits easier, but they also mean a change to one record affects several teams.

Open-source licensing terms

GLPI is distributed under the GNU General Public License version 3, so the platform and its contracts module can be inspected, modified and self-hosted under those terms. Have your legal team confirm how the license applies to any custom code or plugins you add. The license covers the software, not the supplier agreements you record in it.

How to roll out contract records in GLPI

This sequence takes contract data from an agreed list of types and suppliers to a tested renewal alert chain, so each contract is linked to the assets it covers and reaches the people who must act before it ends. Each step hands over a named artifact that the next step depends on.

  1. Agree contract types and supplier list

    Procurement, finance and the owners of the affected services agree which contract types GLPI will hold, such as maintenance, support and loan agreements, and which supplier names are the single accepted form for each vendor. Someone from procurement signs off the list, and the technical lead records which contract types need explicit renewal and which renew automatically. The output is a short written taxonomy with one approver, which becomes the reference for every later load. Confirm with your procurement team how contract types map onto your existing categories before any data is entered.

  2. Clean supplier and asset data

    Before loading anything, the team removes duplicate supplier entries, corrects misspelled vendor names and confirms that the assets a contract will cover already exist in GLPI with consistent names and serial numbers. Asset owners review their own records, and the GLPI administrator flags any asset that is missing. The output is a supplier list and an asset list that match the agreed taxonomy, with each gap assigned to a named owner. Loading contracts against messy supplier or asset records is the most common reason renewal reports later look wrong.

  3. Load contracts and link them to assets

    The administrator creates contract records in GLPI, then attaches each contract to the assets, and where the model supports it, the other items it covers, through the contract's item links. Dates, supplier, contract type and reference numbers are entered from the signed documents, not from memory. A reviewer compares a sample of records against the source contracts. The output is a set of contract records, each with at least one linked asset, and a list of contracts that could not be linked and why. Ask the vendor or your own environment to confirm which item types can be linked in your version before building the import sheet.

  4. Configure renewal notifications and recipients

    The team sets the notification rules for contract expiry in GLPI, choosing the lead time the business needs and the recipient logic, such as the contract owner, the technical contact or a shared procurement group. The GLPI administrator confirms that notification targets and mail settings work in the environment, since alerts depend on the notification queue and the mail configuration in place. The output is a written notification matrix listing each contract type, its recipients and the alert timing. Ask your team to confirm the lead times they want, because the GLPI documentation describes the mechanism but leaves the timing to your policy.

  5. Connect contracts to financial fields

    Finance staff review the cost, billing period and budget-related fields on each contract, then connect the contract to the financial records the organization already tracks in GLPI. The GLPI documentation describes contract management as integrated with financial management, so this step confirms which financial fields are in use and which are left empty on purpose. The output is a reconciled list where each contract's cost and period match the supplier invoice or purchase record. Finance should approve the mapping before reports are shared outside the team.

  6. Verify alerts with test records

    The administrator creates a set of test contracts with expiry dates inside the notification window, including one for each contract type and one that is linked to an asset in a different entity. The team triggers the notification process and checks that each expected recipient receives the alert, that the message names the correct contract and asset, and that no unexpected recipient is copied. Test records are deleted or archived after the run. The output is a signed test log listing each case, the result and any fixes made. Repeat the test after any change to notification rules, mail settings or user groups.

  7. Hand over live contract records

    The team moves the approved contract set into production, assigns ongoing ownership for new contracts and records who maintains the taxonomy, notification matrix and supplier list. The operations owner receives the test log, the notification matrix and the list of open data gaps. The output is a handover document that names the owner for each recurring task, such as adding new suppliers and reviewing expiry alerts. Confirm that someone is accountable for the data after launch, since stale contract records are the usual failure mode.

Configuration decisions for contracts, suppliers and renewals

This table compares the main setup decisions for GLPI contracts, from contract types and asset linkage to renewal notices, alert recipients and financial mapping. Read each row as a choice to settle before data entry, because changing these structures later means reworking existing contract records.

DecisionOptionsWhen each option fits
Contract typesA short fixed list (maintenance, support, loan, lease) or a finer list by vendor category or service levelA short list fits teams that report by contract family. A finer list fits teams that must filter renewals by vendor category or service tier. Confirm the types you need before importing data.
Attachment levelSingle asset, group of assets, or entity-level contractSingle-asset attachment fits hardware under individual warranty. Entity-level fits enterprise agreements covering a whole site. Choose the level that matches how invoices and vendor terms are written.
Renewal modelExplicit renewal requiring action, or automatic renewal with a stated termExplicit renewal fits contracts that need a signed decision each cycle. Automatic renewal fits subscriptions where the risk is an unnoticed price change, so the notice period matters more than the renewal date.
Notice periodPer contract, per contract type, or a single defaultPer-contract values fit contracts with different vendor notice clauses. A type-level default fits contract families with similar terms. Take notice periods from each signed agreement, not from memory.
Alert recipientsContract owner, asset owner, a purchasing group, or a mix of theseNamed owners fit contracts with one accountable manager. A purchasing group fits central procurement. Confirm who acts on a renewal, since the person who receives an alert may not be able to decide.
Supplier recordsOne supplier per contract, or a shared supplier record reused across contractsA shared record fits vendors with many contracts, so contact details and terms stay consistent. Separate records fit suppliers whose contracts are managed by different teams.
Financial mappingContract value stored on the contract only, or linked to budgets and asset financial dataContract-only values fit teams without a budget process. Linked values fit finance teams that reconcile spend by period. Ask finance which amounts, currencies and periods must match their ledger.
Responsibility for upkeepManual entry by the contract owner, or a data feed from procurement or financeManual entry suits small contract volumes. A feed suits high volumes, but someone must own field mapping and reject bad records. Plan this before go-live.

What drives contract module effort and cost

This table compares the factors that change GLPI contract work, what each one adds, and what the reader should ask for in a quote. Use it to separate one-time setup from ongoing upkeep before comparing proposals. The main takeaway is that data quality and inventory state usually matter more than the number of contract screens.

DriverWhy it changes effort or costWhat to ask for in a quote
Number of contract types and suppliersEach contract type needs its own fields, templates and notification rules, and each supplier record needs cleaning and linkingA count of contract types and supplier records in scope, and which are migrated versus created new
Spreadsheet data volume and qualityInconsistent dates, duplicate supplier names and missing end dates take longer to clean than the import itselfWhether data cleanup is included, the cleanup rules agreed, and who signs off the cleaned data
Number of entities and sub-entitiesContracts visible to one entity need separate visibility rules and sometimes separate notification recipientsThe entity tree in scope and how contract visibility is tested per entity
Depth of financial integrationLinking contracts to financial records and budgets requires agreement on amounts, periods, currencies and cost centersWhich financial fields are in scope and who owns the accounting mapping
Notification recipients and approval rulesRenewal and end-of-contract alerts need named owners, escalation paths and, where used, approval steps for renewalsThe number of recipient groups, the alert timing rules and whether approvals are configured or documented only
State of the asset inventoryContracts link to assets, so missing or duplicate asset records must be resolved before contracts can be attached reliablyWhether inventory reconciliation is a separate line item and how many asset links are expected
One-time costsData cleanup, configuration, migration, testing and training happen once per rollout, though they may repeat when new contract types are addedSeparate fixed-scope line items for each one-time activity, with deliverables named
Recurring costsContract upkeep, periodic review of renewal alerts, supplier record changes and yearly checks of linked assets continue after go-liveWhether ongoing upkeep is internal or a retainer, the review cadence, and who maintains the contract lists

Loading existing contract data into GLPI

How do I match existing contracts to the right assets in GLPI?

Match each contract to assets using a stable identifier that exists in both the source system and GLPI, such as serial number, asset tag or hostname, and record the match in a mapping sheet before any import. Export the asset list from GLPI first, then check each contract line against it. Where the old tool used internal names that never existed in GLPI, build a crosswalk table and review every unmatched row by hand. Duplicate hostnames and reused asset tags are the most common cause of wrong links, so resolve those cases before loading. Keep the mapping file as an audit record of how each link was decided.

What should I do with contracts that have no linked asset?

Load them as contracts without asset links, but record the reason in a field or comment so the gap is visible and not mistaken for an error. Typical cases are software subscriptions, support agreements that cover a service rather than a device, and loan contracts for equipment that has since been retired. Assign an owner to each unlinked contract so someone decides whether it should be attached to an asset, linked to a supplier only, or closed. Review the unlinked list with the business owners before cutover, because contracts with no asset are the ones most likely to be forgotten during renewal.

How do I validate contract dates and values before import?

Check every start date, end date, notice period and value against the signed source document, not only against the spreadsheet or old tool. Look for common errors such as day and month swapped in European or US date formats, end dates earlier than start dates, currency columns without codes, and values entered as text. Standardize the format in the staging file, then run row-level checks that flag blanks and impossible ranges. Sample a set of contracts from each supplier and compare them with the originals. Record who approved the validated dataset, since that record is what your auditors will ask for later.

Can I load existing contract data into a test GLPI instance first?

Yes, and you should. Install a separate GLPI instance that matches the production version and plugin set, then import the staged data there before any production load. Test the whole chain: supplier records, contract types, asset links, financial fields and the notification behavior. Check that imported contracts show the correct end dates and that the renewal alerts fire for a known test date. Use the test run to measure how long the import and checks take, and to confirm which data needs cleanup. Keep the test database after each run so you can compare results when you repeat the load.

How do I confirm no contract expired unnoticed during cutover?

Freeze the source data at a fixed cutover date, then reconcile active and expiring contracts between the old system and GLPI. Produce a list of every contract whose end date falls within the notice window around cutover and confirm each one exists in GLPI with an alert and an owner. Compare counts by supplier and by contract type, and sample contracts that ended recently to check they are marked as expired rather than active. Run the expiry notifications in the test instance first, and confirm that notification recipients are valid users in production. Keep the old system read-only for a defined period so you can check disputed records.

Which contract and supplier fields need to be mapped during migration?

Map the fields that drive renewal, cost and evidence, and treat the rest as optional. The essential set usually includes the contract name and number, supplier, contract type, start and end dates, notice period, renewal behavior, value and currency, and the owner or contact. Map supplier identifiers to a single supplier record so one company does not appear under several spellings. Decide early how attachments such as signed PDFs will be handled, because storing them separately from the contract record can break the audit trail. Confirm the exact field names and options in the GLPI version you run, since they vary by release.

Can my own team do the contract data migration without a partner?

Often yes, if the team has ownership of the source data, someone who can read the contracts, and time for reconciliation. The work falls into four parts: extraction, mapping, validation and cutover. Extraction and mapping are usually the largest effort because contract data is scattered across spreadsheets, shared drives and email. A partner typically adds value in building repeatable import scripts, designing the reconciliation checks and documenting the decisions. Ask any provider for a written scope that lists source systems, record counts, the test plan and the cutover checks, and compare that scope with what your own team can staff.

How contract records connect to the rest of GLPI and your systems

A contract record in GLPI is only useful when it is linked to the assets, tickets, changes, budgets and people around it. Each connection below depends on the data model your team agrees and on the behavior of the GLPI version you run, so confirm each one in a test instance before you rely on it.

Tickets and changes referencing contracted assets

Contracts are linked to the assets they cover, so a technician who opens a ticket or change on a supported server or device can see which maintenance or support agreement applies. Decide whether tickets should reference contracts directly or only through the asset, and confirm how the item's contract tab appears in your target version. Check that changes on contracted items do not silently bypass the vendor's support terms.

Asset inventory fed by GLPI Agent

Contract coverage is only as accurate as the asset records it points to. GLPI Agent collects hardware and software inventory and sends it to GLPI, so devices that appear or disappear on the network can keep linked assets current. Confirm which inventory types your agent version reports, and decide who reconciles assets that the agent cannot see, such as appliances and leased equipment.

Financial management and budgets

Contracts feed the financial side of GLPI, where cost and periods can be tied to assets and budgets. Confirm which amounts, periods and budget links your team needs, and whether finance expects contract values to match the figures in your purchasing or accounting system. Test how negative remaining balances and sub-entity visibility behave before you report from them.

User and group access to contract records

Contract data often includes pricing and vendor terms, so who can read it matters. Visibility follows the GLPI profile, entity and group assigned to each user, and users may come from the internal database, LDAP, IMAP or external methods tried in that order. Map which groups see contract financials and test the rights with a non-administrator account.

Notification delivery through mail

Renewal and end-of-contract alerts reach owners only if GLPI can send mail reliably. Confirm the SMTP settings, the recipients for each contract, and the lead time that renewal notices need, since notifications are sent before the end date for contracts that must be renewed explicitly. Verify delivery with a test contract before go-live and check that the queue is processed on schedule.

Data model decisions to agree first

Each connection above depends on the same few decisions: which contract types exist, whether a contract covers one asset or many, who owns the renewal and which entity holds the record. Write these down before import, because changing them later affects links, reports and notifications. Ask your GLPI partner to confirm each behavior against the version you will run in production.

Keeping renewal alerts working after go-live

Renewal and end-of-contract notifications in GLPI are not sent by the contract screen itself. They depend on the server's scheduled processes, which GLPI runs as automatic actions, and on the mail configuration that delivers the resulting notifications. A contract can have correct dates and a correct alert window and still produce no email if the automatic actions are not running, the cron job that triggers them has stopped, or the notification queue cannot reach your SMTP relay. Before go-live, confirm with your platform team who owns the scheduled task on the GLPI server, how it is monitored, and what happens to queued notifications during a mail outage. Check the contract-related automatic actions in the administration area, run them manually against a test contract, and confirm that the message arrives at the intended recipient, not only at a shared mailbox nobody reads.

The alerts are only as accurate as the records behind them. Each renewal changes the end date, the price, the supplier terms or the linked assets, and a contract that is renewed in a purchase system but not updated in GLPI will keep alerting on the old date. Assign a named contract owner for each record, and make a record review part of the renewal process itself: the owner confirms the new term, the notification settings and the links to the assets and financial records before the old contract expires. Ask your team to agree who updates GLPI when a contract is renewed outside the normal workflow, because that gap is where most stale alerts start.

Plan the recurring work as operations, not as a one-time task. Someone must review the notification log, watch the queue for failures after mail or database changes, and repeat the test after every GLPI upgrade or plugin change, since plugins can be suspended after a version update in GLPI 11 and must be reactivated. The GLPI operations and maintenance guidance covers the wider upkeep. Before go-live, test three cases: a contract expiring inside the alert window, a renewed contract whose dates were updated, and a mail server failure followed by recovery. Record the results so the next team can repeat them.

Contract management questions buyers ask before hiring help

What does a GLPI contract management implementation cost?

The cost depends mainly on how many contracts you hold, how many link to assets, and how much of your existing contract data must be cleaned up before import. Most of the work is one-time: defining contract types and supplier records, designing the link between contracts, assets and financial records, configuring renewal alerts, and loading the initial data. Recurring costs are smaller and usually limited to reviewing contract data as renewals come in. No DeployOpen price list is published, so ask for a quote built from a written scope that names the number of contract records, the asset types involved, the sources you are migrating from, and whether finance approvals must be modeled in GLPI. If you use GLPI Network subscriptions, those are separate recurring fees set by the vendor, and the GLPI Network subscriptions page lists the current tiers.

How long does contract module setup take in GLPI?

Duration is set by data readiness more than by configuration effort. A clean list of contracts, suppliers and linked assets can be configured quickly, while contracts stored in spreadsheets, email or paper usually need weeks of reconciliation before they can be loaded. Other drivers include how many notification recipients and renewal rules you need, whether contracts must tie into budgets and purchasing, and how many approval steps finance and procurement require. Ask the implementation partner for a timeline tied to named milestones in the written scope, and confirm when your finance and procurement reviewers are available, since those reviews often set the critical path.

What does the work need from finance, procurement and asset teams?

Contract management touches three groups, and the project depends on each one providing data and decisions. Procurement should supply the authoritative contract list, supplier names, terms, notice periods and renewal rules, and should decide which contracts require explicit renewal. Finance should confirm cost centers, currencies, amortization or payment schedules, and how contracts must appear in financial records. The asset team should confirm which assets each contract covers, using identifiers already in GLPI or in their asset register. Agree early on one owner for each dataset, because unresolved conflicts between these sources are the most common cause of delay.

Can our internal team set up GLPI contracts without a partner?

Yes, a capable internal team can configure contract records, types and renewal notifications in GLPI, since the contracts module is part of the core product. The harder parts are the design decisions: how contracts link to assets and entities, how financial data is recorded, how notifications reach the right owners, and how the data is kept accurate after go-live. Teams that lack spare time in procurement, finance or IT operations often bring in a partner for a fixed-scope piece, such as data migration or the notification design, and keep ongoing upkeep in-house. Check your own capacity, then compare an internal plan with a written partner scope before deciding.

How does contract management fit with budgets and license management?

Contracts, budgets and software licenses are separate GLPI topics that share data. A maintenance or support contract often represents a recurring cost that should appear in a budget, and a software license contract may cover counts that must be checked against inventoried installations. Design the links before loading data, so the same supplier, cost center and asset identifiers are used across all three. Confirm with your finance team which budget periods and amounts are tracked in GLPI and which stay in your accounting system, and decide who maintains license counts, because the GLPI license management topic explains why those records still need manual upkeep.

What happens to contract records after handover?

After handover, contract records remain in your GLPI instance, which runs in infrastructure you control, so ownership of the data stays with your organization. The ongoing work is keeping records current: adding renewals, closing expired contracts, updating supplier details, and reviewing whether renewal notifications still reach the right people. Ask whether the written scope includes documentation of the contract types, notification rules and financial links, and who will maintain them. Database backups must cover the GLPI database and configuration files, and any change to contract logic should be tested before it reaches production.

Which GLPI contract features should engineers verify first?

Engineers should verify four items before go-live. First, confirm that contracts link to the assets they cover and that the links display correctly for entities with restricted visibility. Second, test renewal and end-of-contract notifications for contracts marked as requiring explicit renewal, using a test contract with a near-term end date. Third, check that financial data entered on contracts matches the values finance expects. Fourth, confirm that the GLPI version you run, and any plugins, still behave as expected after upgrades. The GLPI documentation on contracts describes how notifications and financial integration are configured.

What to confirm before asking for a quote

A fixed-scope quote for contract management in GLPI is only as accurate as the inventory it starts from, so gather these inputs before you ask for one. Start with a contract inventory export covering maintenance, support and loan agreements, with supplier names, contract numbers, start and end dates, notice periods, and whether each contract renews automatically or must be renewed explicitly. Pair it with the supplier list and the owner of each relationship. Then record the state of your asset inventory: how many of the contracted items already exist as GLPI assets, whether serial numbers are reliable, and whether duplicates are common. Contracts can only be linked to assets that are already modeled, so unresolved inventory usually becomes the largest share of the work.

Next, name the financial data owners who decide which amounts, cost centers and payment schedules are recorded against contracts and how they tie into GLPI's financial management records. Identify the notification recipients for renewal and end-of-contract alerts, including whether they are individuals, groups or distribution lists, since GLPI sends alerts to the people or groups you configure. Confirm the GLPI version and hosting model too. The release line you run (for example, 10.x, 11.x or 12.x) changes the screens, the notification setup and the upgrade work that may be included, and a self-hosted instance or a managed service changes who applies patches and backups. Check the version notes for your release with the vendor before scoping, because the GLPI 12.0.0 release brought changes to administration and session handling that can affect how alert owners are set up.

Finally, list the reports leadership needs, such as upcoming renewals by month, spend by supplier, or contracts without an owner. Those reports determine which fields must be complete and which entities and sub-entities must be visible to each reviewer. Write these inputs down as a short brief. Vendors and implementation partners can then price the work as a defined scope, separating one-time data cleanup and configuration from any recurring alert review or reporting you choose to retain.

How DeployOpen works on this

DeployOpen plans, implements, documents and supports GLPI inside infrastructure you control, including the contract records, supplier links and renewal notifications that this work depends on. We agree the scope in writing before work starts, so the contract data model, notification rules and financial links are settled before anyone enters records.

How we scope

  • Inventory the contract types you hold, such as maintenance, support and loan agreements, and the assets each one covers.
  • Define which contracts must be renewed explicitly and which notification lead times your owners need.
  • Agree in writing how contracts connect to suppliers, financial records and the entities or teams that approve renewals.

How we build

  • Configure contract types, statuses and supplier records in a test instance before loading production data.
  • Link contracts to asset records and set up renewal and end-of-contract notification rules for each contract category.
  • Test notifications with sample contracts and confirm that expiring items reach the right owners in the expected order.

How we hand over

  • Document the contract data model, naming rules, notification settings and the steps for entering and closing contracts.
  • Train the staff who will create, renew and retire contracts, and walk them through the reports they will use.
  • Provide a written record of what was configured, what was tested and which items remain under your ownership.

How we support

  • Offer ongoing support and upgrades as a retainer, covering GLPI version changes that affect contract notifications.
  • Review notification queues and expiring contract lists with your team on a schedule agreed in the retainer.
  • Confirm with your procurement and finance leads how contract data should be kept current as suppliers and terms change.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.