# Welcome

## Choose your category

<table data-view="cards"><thead><tr><th align="center"></th><th align="center"></th><th align="center"></th><th data-hidden data-card-cover data-type="image">Cover image</th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td align="center"><strong>FAQ</strong></td><td align="center"><a href="/spaces/SvoJ3lioglS2UZLcWWyP/pages/yYsZdcRnik9AEaxVWith">GLPI</a></td><td align="center"><a href="/spaces/SvoJ3lioglS2UZLcWWyP/pages/tKvXP5COOFCCls6XVeVz">PLUGINS</a></td><td><a href="/files/4DgwQlyUK2MmhrrmBxyB">/files/4DgwQlyUK2MmhrrmBxyB</a></td><td></td></tr><tr><td align="center"><strong>DOCUMENTATION</strong></td><td align="center"><a href="/spaces/IiEHKRx5AeABNDLcRlWX/pages/OvX5jTS9vF7AdTsHdHVw">GLPI</a></td><td align="center"><a href="/spaces/uUCcURk2xlvtpVGbiRZf">PLUGINS</a></td><td><a href="/files/adL8xAxj9n9uZKPFc6Pf">/files/adL8xAxj9n9uZKPFc6Pf</a></td><td></td></tr><tr><td align="center"><strong>TUTORIALS</strong></td><td align="center"><a href="/spaces/sGALtnzA2IROeldmXKt5">GLPI</a></td><td align="center"></td><td><a href="/files/rhxwU1pYhyxxUVyOReAq">/files/rhxwU1pYhyxxUVyOReAq</a></td><td></td></tr><tr><td align="center"><strong>AGENT</strong></td><td align="center"><a href="/spaces/SvoJ3lioglS2UZLcWWyP/pages/rgLFrhLGWXJVReuQ71ab">FAQ</a></td><td align="center"><a href="https://glpi-agent.readthedocs.io/en/version-1.15/">DOCUMENTATION</a></td><td><a href="/files/nRlbrnkmKbGHgPZgDolk">/files/nRlbrnkmKbGHgPZgDolk</a></td><td></td></tr><tr><td align="center"><strong>YOUTUBE</strong></td><td align="center"><a href="/spaces/MiZMkeXl04hPbjctW6Ak/pages/SxYkBUXdueBYsDkorea9">TUTORIALS</a></td><td align="center"><a href="/spaces/MiZMkeXl04hPbjctW6Ak/pages/aQYrRxx49elN1moj7YSJ">GLPI IN PICTURES</a></td><td><a href="/files/RBluVTr4Wuf8h5EfzA5O">/files/RBluVTr4Wuf8h5EfzA5O</a></td><td></td></tr><tr><td align="center"><strong>DEVELOPER</strong></td><td align="center"><a href="https://glpi-developer-documentation.readthedocs.io/en/master/index.html">DOCUMENTATION</a></td><td align="center"><a href="https://glpi-developer-documentation.readthedocs.io/en/master/plugins/index.html">PLUGINS</a></td><td><a href="/files/jmPLbDtPzLAzHfXV3UGy">/files/jmPLbDtPzLAzHfXV3UGy</a></td><td></td></tr></tbody></table>


# Quick Start

You are just starting out and do not know where to begin. Here are the first steps you need to take to use your instance properly.

<table data-view="cards"><thead><tr><th align="center"></th><th></th><th data-hidden data-card-cover data-type="image">Cover image</th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td align="center"><strong>Inventory a computer</strong></td><td>Make an inventory of your equipment (computers, network equipment, printers, etc.) and start managing your IT assets.</td><td><a href="/files/bL39zip8yxZm4hZGNDlZ">/files/bL39zip8yxZm4hZGNDlZ</a></td><td><a href="/spaces/sGALtnzA2IROeldmXKt5/pages/M7cNFO3o8nCMuzpDtj6z">/spaces/sGALtnzA2IROeldmXKt5/pages/M7cNFO3o8nCMuzpDtj6z</a></td></tr><tr><td align="center"><strong>Import your users</strong></td><td>Create or import your users and groups using LDAPS or SCIM to enable them to log in to GLPI.</td><td><a href="/files/GEC0OX4ikrbAI4jF8QOL">/files/GEC0OX4ikrbAI4jF8QOL</a></td><td><a href="/spaces/sGALtnzA2IROeldmXKt5/pages/lwt8VChyBHrfdun7ZOwi">/spaces/sGALtnzA2IROeldmXKt5/pages/lwt8VChyBHrfdun7ZOwi</a></td></tr><tr><td align="center"><strong>Manage habilitation</strong></td><td>Assign permissions and manage user authorisations according to their profileC</td><td><a href="/files/eUPP0DUq9gMmO2rHBn6g">/files/eUPP0DUq9gMmO2rHBn6g</a></td><td><a href="/spaces/sGALtnzA2IROeldmXKt5/pages/dNhzrdiVVyeKNkmyzlXI">/spaces/sGALtnzA2IROeldmXKt5/pages/dNhzrdiVVyeKNkmyzlXI</a></td></tr><tr><td align="center"><strong>Create forms</strong></td><td>Create forms and simplify ticket submission for your users.</td><td><a href="/files/ufO5gbIbSXrFTLlH8Ksy">/files/ufO5gbIbSXrFTLlH8Ksy</a></td><td><a href="/spaces/IiEHKRx5AeABNDLcRlWX/pages/p9QgQ6kQ16K3uwENQFfG">/spaces/IiEHKRx5AeABNDLcRlWX/pages/p9QgQ6kQ16K3uwENQFfG</a></td></tr><tr><td align="center"><strong>Manage rules</strong></td><td>Create rules and automate your processes to save time and increase productivity.</td><td><a href="/files/rSxl9TQoy8O8hlvevp0p">/files/rSxl9TQoy8O8hlvevp0p</a></td><td><a href="/spaces/sGALtnzA2IROeldmXKt5/pages/jitapWlM6qwGPF4d8rtk">/spaces/sGALtnzA2IROeldmXKt5/pages/jitapWlM6qwGPF4d8rtk</a></td></tr></tbody></table>


# How can we help you?

<table data-card-size="large" data-view="cards"><thead><tr><th align="center"></th><th></th><th data-hidden data-card-cover data-type="image">Cover image</th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td align="center"><strong>FAQ GLPI</strong></td><td>We answer your questions about GLPI</td><td><a href="/files/GlZGVEsXfinDEkWzL6ik">/files/GlZGVEsXfinDEkWzL6ik</a></td><td><a href="/pages/yYsZdcRnik9AEaxVWith">/pages/yYsZdcRnik9AEaxVWith</a></td></tr><tr><td align="center"><strong>FAQ PLUGINS</strong></td><td>Got a question about a plugin supported by GLPI? The FAQ has the answer.</td><td><a href="/files/FhMQHnFqETWokxJB60CP">/files/FhMQHnFqETWokxJB60CP</a></td><td><a href="/pages/tKvXP5COOFCCls6XVeVz">/pages/tKvXP5COOFCCls6XVeVz</a></td></tr></tbody></table>


# GLPI


# Frequently requested

{% content-ref url="/pages/9QE1s0DjUkYHPn79R4oG" %}
[Inventory](/faq/glpi/inventory)
{% endcontent-ref %}

### :arrow\_forward: How do I set up a network discovery or SNMP inventory task?

It's important to understand that these 2 tasks are linked.

* Network discovery will bring up all the equipment discovered on the network according to its type (computer, printer, switch, etc.) and the business rules established.
* The SNMP inventory will inject the data authorised by the manufacturer via the SNMP protocol (serial number, OS, cartridges, etc.).

A guide is available directly from GLPI (**`Administration > GLPI Inventory > Guide`**).

A procedure is also available [here](/tutorials/inventory/snmp_inventory)

### :arrow\_forward: Is an automatic inventory possible for my computers, servers, etc?

GLPI of course allows you to upload your workstations directly into your instance. You need to install the GLPI agent on the workstations concerned. You can download it here [link](https://github.com/glpi-project/glpi-agent/releases/) and enter the address of your instance when installing it. You will find all the necessary documentation [here](https://glpi-agent.readthedocs.io/en/latest/)

{% content-ref url="/pages/t6aftvhjdXa1K260w2ER" %}
[Notifications / Receivers](/faq/glpi/notifications_and_receivers)
{% endcontent-ref %}

### :arrow\_forward: How do I configure Oauth SMTP with Entra on my instance?

Via this article, you'll find all the configuration you need to set up your Oauth SMTP. Access to your Azure tenant is required to set up this service. You'll find the procedure [here](/tutorials/notifications/oauth_smtp_entra)

{% content-ref url="/pages/yYsZdcRnik9AEaxVWith" %}
[GLPI](/faq/glpi)
{% endcontent-ref %}

### :arrow\_forward: Which URL should I configure on my agent ?

You can refer to the [online documentation](https://glpi-agent.readthedocs.io/en/latest/configuration.html#available-parameters) to configure your agent correctly.


# Asset definitions

### What is the functionality of Custom Assets?&#x20;

Custom Assets allows you to add new types of inventory objects, integrated into the GLPI framework.

***

### How do I migrate from Generic Objects to Custom Assets?

To successfully migrate from Generic Objects (GLPI 10) to Custom Assets, ensure that:&#x20;

* Pre-migration: the Generic Objects plugin is installed and active
* The database has been migrated from GLPI 10 to GLPI 11
* Post-migration: the **Generic Objects End-of-Life Updater** plugin is installed. Enter the command: **`php bin/console migration:genericobject_plugin_to_core`**&#x20;

or&#x20;

* Use the graphical interface from the plugin's configuration menu.

<figure><img src="/files/AQLf3k7gJV5VUuFI5myU" alt=""><figcaption><p>Migration of generic objects to custom assets</p></figcaption></figure>

***

### Can specific rules be created for Custom Assets?

Yes, it is possible to create rules for the new objects you create.

***

### What types of tabs can be added to a Custom Asset?&#x20;

It is possible to add the following capabilities to each object:&#x20;

* Antiviruses
* Appliances
* Certificates
* Components
* Connections
* Contracts
* Database Instances
* Documents
* Domains
* Financial and administrative information
* Global Search
* Historical &#x20;
* Impact Analysis
* Inventory&#x20;
* Knowledge Base&#x20;
* Manual Links / External Links&#x20;
* Network Ports&#x20;
* Notes&#x20;
* Operating Systems
* Plugs
* Projects
* Racks&#x20;
* Remote management
* Reservations
* Sockets
* Software
* Virtualization&#x20;
* Volumes

***

### Is it possible to modify permissions for managing custom assets?

Yes. From the object in question, you can go to the **Profiles** tab and select the profiles that will be able to view, modify, delete, etc., the object in question.

***

### Can the modification of a field be restricted?

Yes. From the desired object, go to the **Fields** tab. Click the pencil icon, then select **Hidden for these profiles** to choose the profiles for which the field will be hidden.

***

### How do I hide a field?

From the desired object, go to the **Fields** tab. Click the pencil icon, then select **Readonly for these profiles** to choose the profiles for which the field cannot be modified.

***

### Can I make an item created with the plugin bookable?

Yes. In the Capacity tab, select **Reservations** to make it available for booking.

***

### What types of fields can be added?

By default, the fields displayed when creating an object are:

<details>

<summary>Default list</summary>

* Name
* Status
* Object Type
* Manufacturer
* Object Model
* Serial
* Inventory Number
* Group
* Comments
* Template Name
* Location
* Technician in charge
* Group in charge
* Alternate username number
* Alternate username
* User
* UUID
* Update Source

</details>

{% hint style="info" %}
These can be hidden (default fields cannot be deleted, only hidden).
{% endhint %}

You can then add a custom field:

* Labels: [full list here](/documentation/modules/configuration/asset-definitions#fields)&#x20;
* URL&#x20;
* Yes / No&#x20;
* Date and time&#x20;
* Text&#x20;
* Date&#x20;
* Number&#x20;
* String&#x20;

{% hint style="info" %}
Each field can be set as required before saving.
{% endhint %}

***

### Can a custom asset be translated?

Yes. From the T**ranslations** tab, you can translate the asset name into the desired language.


# Changes

***

### What is a change?

A **Change** is the establishment of the resolution of a Problem (in GLPI sense or not) or the establishment of a new material / human element or process of your IS[^1]. Change allows you to inform, assign, plan, budget, etc. The Changes are accessible in **`Assistance`** > **`Changes`**.

***

### How to create a change?

To create a Change, like any element of GLPI, click on **`add`**. The change form reminds the form of incidents, of which distinguish the concepts:

* requesters
* observers
* assigned
* status
* urgency
* impact
* priority
* category

Like the Problem, it is possible to attach other elements of GLPI to your Change: Ticket / Problem / Projects / Costs / etc.

A [procedure](/tutorials/helpdesk/changes) is available to help you implement your change.

***

### What is a reccurent change?

A reccurent change is a change that occurs periodically and is planned in order to prepare and plan the possible steps that could be linked to it.

{% hint style="success" %}
**Example :** Weekly check that Windows patches have no impact on production performance.
{% endhint %}

You can link other GLPI projects, problems, items, etc. to it.

***

### How do I create a reccurent change?

In **`Assistance`** > **`Reccurent changes`** click on **`Add`** Add a name and a comment if necessary. Set your change to active and indicate a start date (an end date if necessary). Add the desired periodicity as well as early creation if you want the change to be created before the **`start date`**. All that remains is to save your reccurent change.

{% hint style="success" %}
**Automatic actions**\
Remember to check that the **`RecurrentItems`** automatic action in **`setup`** > **`automatic actions`** is active and set to the correct **`run frequency`** so that the change creation action can be carried out.
{% endhint %}

***

### What status is available for changes?

The available statuses are :

| Status        |
| ------------- |
| New           |
| Evaluation    |
| Approval      |
| Accepted      |
| Pending       |
| Testing       |
| Qualification |
| Applied       |
| Review        |
| Closed        |
| Cancelled     |
| Refused       |

***

### Can changes be linked to other types of GLPI object?

Yes. It is possible to link problems, tickets, projects and elements of the fleet to have a complete overview of the progress of the change.

[^1]: Information Systems


# Cloud vs Self-hosted

***

### Should i choose a cloud offer a self-hosted?

{% tabs %}
{% tab title="Cloud" %}

|                                                                    | Public                                  | Private                                  |
| ------------------------------------------------------------------ | --------------------------------------- | ---------------------------------------- |
| Maximum number of IT agents supported                              | Unlimited                               | Unlimited                                |
| Minimum number of IT agents                                        | 1                                       | 25                                       |
| Rate per user                                                      | 19€                                     | 21€                                      |
| Maximum number of assets                                           | Unlimited                               | Unlimited                                |
| Number of end users                                                | Unlimited                               | Unlimited                                |
| Community support                                                  | :white\_check\_mark:                    | :white\_check\_mark:                     |
| Support Bug fixes/security patches                                 | :white\_check\_mark:                    | :white\_check\_mark:                     |
| L2/L3 helpdesk support                                             | Partner                                 | Partner                                  |
| Community plugins                                                  | :white\_check\_mark: Secure Marketplace | :white\_check\_mark: Secure Marketplace  |
| GLPI Network plugins                                               | :white\_check\_mark:                    | :white\_check\_mark:                     |
| Updates                                                            | :white\_check\_mark: Automatic          | :white\_check\_mark: On request          |
| Server maintenance                                                 | :white\_check\_mark:                    | :white\_check\_mark:                     |
| Full database backup                                               | :white\_check\_mark: Daily              | :white\_check\_mark: Daily               |
| Incremental database backups                                       | :x:                                     | :white\_check\_mark: Hourly              |
| Backup of files                                                    | :white\_check\_mark: Complete, daily    | :white\_check\_mark: Incremental, hourly |
| System Resources                                                   | Shared                                  | Dedicated                                |
| VPN tunnel                                                         | :x:                                     | :white\_check\_mark:                     |
| Read-only database connection                                      | :x:                                     | :white\_check\_mark:                     |
| Filtering of IPs that can access the instance                      | :x:                                     | :white\_check\_mark:                     |
| Interconnection with the Metabase reporting tool (Metabase plugin) | :x:                                     | :white\_check\_mark:                     |
| Database Replication                                               | :x:                                     | :x: (tailor-made offer available)        |
| {% endtab %}                                                       |                                         |                                          |

{% tab title="Self-hosted" %}

|                                       | Community                               | Basic                                   | Standard                                | Advanced                                |
| ------------------------------------- | --------------------------------------- | --------------------------------------- | --------------------------------------- | --------------------------------------- |
| Maximum number of IT agents supported | 0                                       | Up to 10                                | Up to 50                                | Unlimited                               |
| Maximum number of assets supported    | 0                                       | Up to 500                               | Up to 5000                              | Unlimited                               |
| Number of end users                   | Unlimited                               | Unlimited                               | Unlimited                               | Unlimited                               |
| Community support                     | :white\_check\_mark:                    | :white\_check\_mark:                    | :white\_check\_mark:                    | :white\_check\_mark:                    |
| L2/L3 helpdesk support                | :x:                                     | Partner                                 | Partner                                 | Partner                                 |
| Bug fixing/security patch support     | :x:                                     | :white\_check\_mark:                    | :white\_check\_mark:                    | :white\_check\_mark:                    |
| Community plugins                     | :white\_check\_mark: Secure Marketplace | :white\_check\_mark: Secure Marketplace | :white\_check\_mark: Secure Marketplace | :white\_check\_mark: Secure Marketplace |
| Basic plugins                         | :x:                                     | :white\_check\_mark:                    | :white\_check\_mark:                    | :white\_check\_mark:                    |
| Standard plugins                      | :x:                                     | :x:                                     | :white\_check\_mark:                    | :white\_check\_mark:                    |
| Advanced plugins                      | :x:                                     | :x:                                     | :x:                                     | :white\_check\_mark:                    |
| OAuth IMAP                            | :white\_check\_mark:                    | :white\_check\_mark:                    | :white\_check\_mark:                    | :white\_check\_mark:                    |
| Data Injection                        | :white\_check\_mark:                    | :white\_check\_mark:                    | :white\_check\_mark:                    | :white\_check\_mark:                    |
| OAuth SSO                             | :x:                                     | :white\_check\_mark:                    | :white\_check\_mark:                    | :white\_check\_mark:                    |
| SCIM                                  | :x:                                     | :white\_check\_mark:                    | :white\_check\_mark:                    | :white\_check\_mark:                    |
| GLPI AI                               | :x:                                     | :white\_check\_mark:                    | :white\_check\_mark:                    | :white\_check\_mark:                    |
| Advanced Dashboard                    | :x:                                     | :x:                                     | :white\_check\_mark:                    | :white\_check\_mark:                    |
| Approval by mail                      | :x:                                     | :x:                                     | :white\_check\_mark:                    | :white\_check\_mark:                    |
| {% endtab %}                          |                                         |                                         |                                         |                                         |

{% tab title="Tailor made" %}
{% hint style="success" %}
**Special needs**\
\
If you have requirements that are not covered by one of our offers, please contact our [sales department](https://glpi-network.cloud/fr/contactez-nous/) so that we can provide you with a tailor-made offer.
{% endhint %}
{% endtab %}
{% endtabs %}


# Contracts

***

### What is a contract?

Contract management in GLPI is designed to provide efficient, centralised management of all aspects of IT[^1] contracts, improving the transparency, traceability and efficiency of IT operations.

For example, contracts can be used to

* **Cost management**: GLPI tracks the costs associated with each contract, including recurring and one-off payments.
* **Budgeting**: financial information from contracts can be used for budgeting and forecasting expenditure.
* **Linking with other modules**: Contracts can be linked to specific assets or equipment, making it easier to monitor equipment coverage and maintenance.
* **Supplier** management: GLPI can be used to manage a directory of suppliers, with detailed information on each one. It is also possible to set up a supplier evaluation system to assess supplier performance in terms of services provided and contracts in force.

***

### What information is available in contracts?

You can enter a range of information to help you manage your contracts and related items:

* Name
* Status
* Contract type
* Start date
* Initial contract period
* Notice period
* Location
* Number
* Account number
* Contract renewal period
* Invoice period
* Maximum number of items
* Renewal
* Email alarms
* Support hours (can be set for weekdays, Saturdays, Sundays and holidays)

Available tabs :

* Costs
* Suppliers
* Items
* Documents
* Links
* Notes
* Knowledge base
* Tickets
* History
* All

***

### Is it possible to link a default contract to an entity?

Yes, from **`Administration`** > **`Entities`** > **`Support`** tab. Select the desired contract in **`Default contract`**.

***

### What notifications are available in the contracts?

To make contract management easier, notifications can be sent:

* End of contract
* End of periodicity
* Advance notice
* Advance notice of period

***

### Why am I not receiving notifications?

This may be due to a number of reasons:

* Problem configuring the [SMTP server](/tutorials/notifications/setup_notifications)
* The contract is not active or no longer active
* The [automatic action](/tutorials/automatic-actions/configuration_action_auto) **`contract`** is not active or incorrectly configured
* Your [cron](https://glpi-user-documentation.readthedocs.io/fr/master/modules/configuration/crontasks.html) is not active or incorrectly configured

***

### Why can't I link my contract to a GLPI object?

If you don't see your contract in the GLPI object in question, you need to check a few points:

* The contract must be active (not expired)
* A start date must be entered
* A duration must be indicated

{% hint style="success" %}
**Expired contracts** are not visible in the various GLPI objects so as not to "pollute" the list of contracts. On the other hand, you can link a GLPI object directly from the contract even if it has expired.
{% endhint %}

***

### Can you edit contract-related reports?

Yes, from **`Tools`** > **`Reports`**, you can select the option **`By contract`**. Select the item type (several items possible) then the year(s).

[^1]: Information Technology


# Cron / automatic actions

***

### How can I automatically synchronise my LDAP users?

In order to automatically synchronise your users from an LDAP, you can add a line to your crontab (the one for the user who reads the web files, Apache, www-data, etc.)

**`0 * * * * www-data cd /var/www/glpi/ && /usr/bin/php bin/console glpi:ldap:synchronize_users --no-interaction >/dev/null 2>&1`**

You can add options to this command to synchronise disabled accounts as well, for example:

**`0 * * * * www-data cd /var/www/glpi/ && /usr/bin/php bin/console glpi:ldap:synchronize_users --no-interaction -d 3 >/dev/null 2>&1`**

If you want to perform several actions, we advise you to add as many LDAP commands to your cron as you need (one command for synchronising accounts, another for deactivating accounts, etc.).

{% hint style="success" %}
**You can adapt your LDAP search in `Setup` > `Authentication` > `Setup` > `Action when a user is deleted from the LDAP directory`**:

\
\- 0: Preserve\
\- 1: Put in trashbin\
\- 2: Withdraw dynamic authorizations and groups\
\- 3: Disable\
\- 4: Disable + Withdraw dynamic authorizations and groups\
\- 5: Disable + Withdaw groups
{% endhint %}

***

### Does the cron specified on my on-premise instance take into account the LDAP filter specified in the connection filter of my configuration?

Yes, if you don't specify `--ldap-filter` in your command line, GLPI takes the sync field **+** the condition indicated in the connection filter to perform the search.

*Example*:

* Synchronisation field configured = `entryuuid`.
* Connection filter configured = `(objectClass=inetOrgPerson)`
* Resulting LDAP filter on command line = `& (entryuuid=*) (objectClass=inetOrgPerson))`

***

### Why don't the automatic actions work?

* Also check that the **`execution mode`** is set to **`CLI`** from **`setup`** > **`automatic actions`** for the action in question.

If you are in the **Cloud**, you can contact support so that the checks can be made on the server side: [contact form](https://support.teclib.com/marketplace/formcreator/front/formdisplay.php?id=100)

If you are **on-premise**, check that your cron is active and correctly configured: [cron et automatics actions](https://glpi-user-documentation.readthedocs.io/fr/master/modules/configuration/crontasks.html)

Ensure that the crontab used is that of the user with access to web services (Apache, www-data, etc.), for example:

**`sudo crontab -u www-data -e`**

In addition to the above checks :

* Empty the **`_cache`** and **`_sessions`** folders
* Check file and folder permissions:
  * **`find glpi/ -type d -exec chmod 0755 {} \;`**
  * **`find glpi/ -type f -exec chmod 0644 {} \;`**
* Restart the cron

***

### Why doesn't a particular automatic action work?

For an automatic action to work, it must be set up correctly. From **`setup`** > **`automatic actions`**, select the action concerned. Check that it is **`scheduled`** in **`CLI`** mode.

* **GLPI**: based on PHP (automatic actions are only triggered when you are logged in)
* **CLI**: cron-based

Click **`execute`** if you want to run the action now

![Alt text](/files/y0apH2lEbXit1yDjGMqk)

***

### What is the difference between **`Logs`**, **`PurgeLogs`** and **`Circularlogs`** actions?

* **`Circularlogs`** : Removes entries in logs in the files/\_log folder that are older than a certain number of days which is configurable within the action form itself.
* **`logs`** : Cleans old automatic action log entries. The amount of time to keep log entries can be changed for each automatic action.
* **`PurgeLogs`** : Deletes historical data entries that are older than a certain amount of time. The amount of time can only be changed globally for all Entities, but some of the types of entries can be configured with different durations.


# Current problems

***

### I'm getting an error message saying **`you don't have the rights to connect to this application`**?

Several parameters can be linked to this message.

* ***No profile associated with the user***: make sure that each user who logs in has a profile. If this is not the case, your profile [authorisation rule](https://glpi-plugins.readthedocs.io/en/latest/oauthsso/rules.html) may be incorrect or missing.
* ***Temporary SQL queries***: SQL queries can saturate the temporary folder if they are too voluminous. The method is to automatically kill certain queries that take too long (thus avoiding excessive temporary storage). Please refer to the command [**`pt-kill`**](https://docs.percona.com/percona-toolkit/pt-kill.html)

  *Example of command* (to kill all "SELECT" requests that last longer than 61s)" `perl /usr/bin/pt-kill --busy-time 61 --match-info "SELECT|select" --kill --victims all --daemonize`
* ***Problem of rights on GLPI folders***: make sure that the owner of the GLPI folders is the user of your Web server (apache, www-data, etc.) and that the permissions are correctly set:

<pre class="language-{"><code class="lang-{"># find <a data-footnote-ref href="#user-content-fn-1">/var/www/glpi</a> -type f -exec chmod 644 {} +
# find <a data-footnote-ref href="#user-content-fn-1">/var/www/glpi</a> -type d -exec chmod 755 {} +
# chown <a data-footnote-ref href="#user-content-fn-1">www-data.</a> <a data-footnote-ref href="#user-content-fn-1">/var/www/glpi</a> -R
</code></pre>

***

### What can I do about the message telling me that the timezones are not accessible?

If the timezones are not activated, you will not be able to select the country you are in. Follow the [official documentation](https://glpi-install.readthedocs.io/en/latest/timezones.html) to activate your timezones.

{% hint style="danger" %}
**This operation may affect all your other databases. Check the impact before making any changes.**
{% endhint %}

***

### Why do I get the error message **`A link to the SQL server could not be established. Please check your configuration`** ?

This may be due to several parameters:

* Check that the mysql service is started and (re)start it if necessary
* Check the presence of your database and the rights granted to the user of this database
* Check that the GLPI configuration file is present and has sufficient permissions
* Check the logs **`sql-errors.log`** in the **`files`** folder

***

### Why do I get an error message **`SSL certificate problem: unable to get local issuer certificate`** when I try to activate my subscription key in marketpalce?

This problem comes, usually on Windows, from a missing configuration. PHP has not been configured to integrate the CA certificate shop and therefore cannot check the chain of our certificate when it tries to connect to it.

To remedy this problem :

* Download and extract **`cacert.pem`** following the instructions at <https://curl.se/docs/caextract.html>
* Save it on your server in a location readable by the Web server user
* In your php.ini, put the location of the **`cacert.pem`** file in the \[curl] and \[openssl] section

```yaml
[curl]
curl.cainfo = "C:\mywebsite\php\extras\ssl\cacert.pem"

[openssl]
openssl.cafile = "C:\mywebsite\php\extras\ssl\cacert.pem"
```

* Restart your web server and your PHP FPM server if necessary

***

### How do I configure Redis to manage sessions in GLPI?

* **`session.save_handler`** must be set to redis in php.ini.
* **`session.save_path`** must contain a valid configuration such as :

  `tcp://127.0.0.1:6379?persistent=1&timeout=2.5&read_timeout=2.5&retry_interval=30`

***

### What should I do if sessions fail with Redis?

* Check that Redis is configured on the correct port (default 6379).
* Increase the timeout to stabilise the connection.
* Enable session locking in 20-redis.ini :

```
extension=redis.so
redis.session.locking_enabled = 1
redis.session.lock_expire = 60
redis.session.lock_wait_time = 50000
redis.session.lock_retries = 2000
```

***

### What should I do if GLPI has problems with menus or tokens in a shared front-end environment?

* Make sure that the **`files/`** folder is shared between all the front-ends (in the case of a multi-server installation),
* Check the permissions of the shared folder.
* Check the logs

***

### Why do I get an SQL error ‘Out of range value for column “computertypes\_id”’ in the GLPI logs?

This error is often caused by an incorrect or incomplete rule that modifies the computer types in GLPI, resulting in an attempt to write an invalid value (for example, **`-1`**) to the computertypes\_id column in the database.

***

### What can be done to avoid `/tmp` filling up because of SQL queries?

* **Optimise SQL queries**: Examine the default views and searches in GLPI and encourage users not to add too many columns to their queries.
* **Redirect tmp\_dir in MySQL**: Configure the MySQL tmp\_dir directory outside the `/tmp` partition to avoid impact on the system. More information in the [official documentation](https://glpi-install.readthedocs.io/fr/latest/install/index.html)

***

### How can you identify the users responsible for large queries in GLPI?

It is difficult to identify users directly on the basis of the queries that fill `/tmp`, as users can add an unlimited number of columns to their searches, thus generating large SQL queries.

***

### Why is the /tmp folder filling up abnormally?

The problem comes from MySQL. When queries are too long, it needs to write to temporary tables (<https://dev.mysql.com/doc/refman/8.0/en/internal-temporary-tables.html>), and by default this happens in the server's /tmp directory.

* Examine users who have too many columns in their default views or who add too many columns to their searches (e.g. juan.meneses), as this generates very large queries on the MySQL server, which doesn't seem to be large enough to handle them properly.
* Configure MySQL's tmp\_dir outside the /tmp file system (in a different folder from the one used by the system itself).
* Implement an automated system (such as the Percona pt-kill toolbox <https://docs.percona.com/percona-toolkit/pt-kill.html>) to automatically kill SELECT queries on MySQL that last longer than X seconds, thus preventing disk space from being saturated by overly large queries.

[^1]: :man\_raising\_hand: *depending on your configuration*


# Dashboard and counters

***

### How to create a dashboard?

It is possible to create a dashboard from scratch, or to duplicate a dashboard and modify it later. A [procedure](/tutorials/readme-1/dashboard) is available to help you.

***

### Is it possible to change the formatting of numbers in dashboards (1000 instead of 1K)?

This is not possible. This formatting is necessary to avoid having too large numbers on the dashboards (space issue). However, it is possible to see the "real" value by hovering over the number.

***

### Why don't the counters appear on my home page?

If your counters are not visible, this may be due to your default entity. If this is not configured, the root entity is taken by default. If you do not have access to this entity from your profile, the counters will not be visible. From **`administration`** > **`users`**, set the **`default entity`** for the user concerned.

***

### How do I share a dashboard?

Depending on your profile permissions, you can share a dashboard. Simply click on the icon. You can then share it with an entity, a group, a user or a profile.

You can share a dashboard with a direct link (public link for monitoring for example) or with a iframe (for integration in document like HTML)

***

### What are filters for and how do I set them up?

Dashboard filters are used to display specific information about a GLPI object.

{% hint style="success" %}
**Example**\
Your dashboard shows all assigned tickets, but you only want to see tickets assigned to the infrastructure group.
{% endhint %}

***

### How do I add a filter to my dashboard?

When you edit your dashboard, an option appears **`add a filter`**. Click on this option and select the filter that suits you best

***

### Can I add dashboards to other web pages?

Yes. Thanks to the **`share`** of dashboards, you can copy the iframe which can be inserted into other web pages.

***

### How do I make a dashboard private?

To prevent other technicians or administrators from seeing your dashboard, you can make it private using the icon. This does not prevent you from sharing it with other profiles, entities, etc.

***

### Can I display dashboards in full screen mode?

Yes, you can use the icon to display your dashboard full screen.

***

### Can I change the chart colours?

No. These values are set by default and cannot be changed.

***

### Can I change the colours of the tiles?

Yes. When you add a new tile, the **`background colour`** field allows you to change it to the colour of your choice.

![Alt text](/files/8QOU8GiFbeh0z01Dt548)

***

### Can I clone a dashboard?

Yes, using the icon, you can clone and then modify it. The new dashboard will have the same name with the **`copy`** and you will be able to modify it afterwards.

***

### What is a mini-dashboard?

Mini-dashboards are reduced dashboards present in the header of a GLPI object:

![Alt text](/files/wLwY3XkMSAbCF6HzoI9B)

***

### Can I enable/disable mini-dashboards?

Yes, you can enable/disable them from **`Setup`** > **`General`**, tab **`Default values`**. In the **`dashboards`** insert. Select the option that suits you in **`default for tickets (mini dashboard)`**.

***

### Can I enable/disable mini-dashboards for a particular person?

Yes. From the user record in question, go to **`Setup`** > **`Dashboards`** > **`Default for tickets (mini-dashboard)`**, enable or disable the mini-dashboards.


# Entities

***

### What is an entity?

**Definition**: organisational object used to partition the view and scope of action of users.

Entities are used to :

* Partition the view of users who connect to GLPI.
* Show each user only the things they need to see.
* Manage administration delegations.

{% hint style="success" %}
**Examples of breakdowns**

By budget entity: the equipment purchased in each entity is well separated. Most of the time for each IT department, a separate entity.

**Important**: GLPI can be used with a single entity.
{% endhint %}

{% hint style="success" %}
**Example of hierarchy**

<img src="/files/niCMDIQVqXx2aseVG6Xl" alt="Entity hierarchy" data-size="original">
{% endhint %}

{% hint style="warning" %}
**Important to know**

GLPI does not limit the creation of entities. The more you increase the number of entities :

* The more complex the system becomes (rules, failover, etc).
* The longer it takes to execute requests.
  {% endhint %}

Administrators often want entities to meet a need, whereas other concepts requiring less complexity are there to meet it:

* **Group**: to assign equipment/tickets to a department or a team of people.
* **Location**: to determine the geographical position of the equipment/person.

***

### Where can i manage entities?

* is done from the menu **`Administration`** > **`Entities`** ;
* the **root entity cannot be deleted**, only renamed.

***

### How to navigate in the Entities?

Click on the Root Entity (Tree) link:

<div align="left"><img src="/files/0vfw6ACptrAFG4gUF39H" alt="Alt text"></div>

A menu appears, allowing you to restrict GLPI's view :

* either on an entity by clicking on its name.
* or a tree structure under this entity by clicking on the double green arrow to the right of the entity name.

![Alt text](/files/gKfP9rEYQcmFTkHy7EGf)

***

### Why can i add new sub-entity?

As soon as there is at least one entity, GLPI adds a "Sub-entity" field to certain objects.

By using this field, you can choose whether the object has a scope:

* Local: it will only be visible in the entity in which it is located.
* Global: as Local with visibility in its sub-entities.

{% hint style="success" %}
**Example**

**Suppliers**

* An administrator of an entity creates its suppliers (local).
* A GLPI administrator creates suppliers common to all entities (global).

**Contracts and contacts**

* A contract is common to all entities (global).
* An administrator of an entity creates its own contacts for this contract (local).
  {% endhint %}

***

### Why aren't the entities I've created visible even though my super-admin profile is in recursive mode?

When creating an entity, remember to disconnect/reconnect in order to be able to see them in the list.

{% hint style="info" %}
**For on-premise instances**

* If, despite disconnection, they are still not visible, go to the GLPI folder on your server and enter the command **`php bin/console cache:clear`**.
* Finally, you can also clear the MYSQL cache with the commands :

`mysql -u root -p reset query cache;`
{% endhint %}

***

### How do I customise the information for an entity?

From **`Administration`** > **`Entities`**, go to the address tab to modify the information specific to your entity.

***

### Can I customise an entity's interface?

It is possible, this step requires knowledge of CSS. From **`Administration`** > **`Entities`**, you can activate CSS customisation. Insert the CSS code you need to customise your interface.

***

### How do I change an entity's email addresses?

If you want your entity to use a particular send and/or reply address, you can change it so that it does not use the default address. From **`Administration`** > **`Entities`**, go to **`Notifications`** and change the desired information to the values of your choice.

***

### I have a default ticket template but I want to use another one for a particular entity, how do I go about this?

From **`Administration`** > **`Entities`**, go to the **`Assistance`** tab. You can change the ticket, change and problem templates to the ones that suit you best. You can always go back by clicking on **`default`**.

***

### How can I see all the rules assigned to an entity?

From **`Administration`** > **`Entities`**, go to the **`Rules`** tab. You will be able to see all the rules that apply to the entity.

***

### What does “Attribute in LDAP directory representing the entity” mean?

\
The **"LDAP directory information attribute representing the entity"** is used in the **"Entity based on LDAP information"** action within authorization rules. This rule relies on the result of a regular expression (regex) in the criteria to determine entity assignment.\
\
**Example**: If the **"(LDAP) Organization"** attribute matches the regex `\bTechnician\b` (ensuring the exact word "Technician" is present), the **"Entity based on LDAP information"** action will assign the entity defined by ID **"#0"**. Using this rule, GLPI will automatically assign users to the entity where the **"Entity based on LDAP information"** field contains the value "Technician."

***

### What does **"LDAP directory of an entity"** and **"LDAP filter associated with the entity (if necessary)" mean ?**

The **"LDAP directory of an entity"** and **"LDAP filter associated with the entity (if necessary)"** are used in the interface to search for users from an LDAP directory based on the specified entity.

**Example**: If a default LDAP directory is defined in GLPI but you wish to adjust the filter based on the entity when performing a manual import, this field will be used to refine the search (otherwise, the default filter from the LDAP configuration will be applied).

***

### How to prevent users from manually selecting the authorization server when multiple Active Directory directories are configured?

In GLPI, you can uncheck this option to streamline the login process:

<figure><img src="/files/aG9d2KwuejhWMe7wC00a" alt=""><figcaption></figcaption></figure>

* If the user has previously logged in, GLPI will attempt the LDAP connection on the last known server.
* If the user is not found or has never logged in, GLPI will try all configured LDAP servers.

It is essential to ensure unique logins for your users. If both LDAP1 and LDAP2 have a user with the login “FooBar,” GLPI will authenticate the user based on the first directory that responds.

To guarantee uniqueness, you should adapt the GLPI configuration by setting the user's email address as the login field. This approach will help avoid conflicts across directories, like this :\
\
The user's GLPI login, here must be the email address :

<figure><img src="/files/RSJurOTA0qShilU6hGVo" alt=""><figcaption></figcaption></figure>


# Financial and administrative management

***

### Which elements can benefit from financial management?

All elements of the fleet can benefit from financial management. It can be activated by default from **`Setup`** > **`General`** > **`Assets`** > **`Enable the financial and administrative information by default`**

***

### What types of information are available?

Financial management is divided into 3 groups:

{% hint style="info" %}
**Asset lifecycle**

* Order date
* Date of purchase
* Delivery date
* Startup date
* Date of last physical inventory
* Decommission date
  {% endhint %}

{% hint style="info" %}
**Financial and administrative information**

* Supplier
* Budget
* Order number
* Immobilization number
* Invoice number
* Delivery form
* Value
* Warranty extension value
* Account net value
* Amortization type
* Amortization duration
* Amortization coefficient
* TCO (value + tracking cost)
* Monthly TCO
* Business criticity
* Comments
  {% endhint %}

{% hint style="info" %}
**Warranty information**

* Start date of warranty
* Warranty duration
* Warranty information
* Alarms on financial and administrative information
  {% endhint %}

***

### How is administrative and financial information calculated?

The compulsory information is as follows

* **`Value`**: Monetary value of the asset
* **`Amortization type`**: Linear or decreasing
* **`Amortization duration`** (in years)
* **`Amortization coefficient`**

**For a linear asset:**

The Net Asset Value is calculated using the following fields:

* The value of the asset
* Amortization period
* The Start date of warranty OR Startup date

{% hint style="warning" %}
The Startup date takes precedence over the Start date of warranty so that both values are met it is the commissioning date that will be taken into account.
{% endhint %}

**For declining balance assets:**

The Net Book Value is calculated using the following fields:

* The value of the asset
* The Amortization period
* A Amortization coefficient greater than 1
* The start date of warranty

***

### What is TCO?

TCO (Total Cost of Ownership) is the overall cost of ownership.

The TCO is the sum of the value of the item and the different tickets linked to this item in which a cost has been set.

The monthly TCO is the TCO divided by the number of months elapsed since the date of purchase (number of months in use).


# Forms

## How do I configure a form?

All the complete documentation for forms can be found on [this page](/documentation/modules/administration/forms).

***

## How do I migrate from FormCreator to Forms?

A complete procedure is available in [this article](/tutorials/procedures/migrate-of-specific-plugins-from-glpi-10-to-glpi-11).

***

Can I create public forms?

Public access to forms is configured from the **`Access Controls`** tab on the form. Simply check the **`Allow direct access`** box.

***

## Can we give access to object type questions to anonymous users?

No, that's not possible. For security reasons, only authenticated users have access to this question type and certain data in **`Dropdowns`** type elements.

***

## Can I restrict access to forms (to an entity, a profile, etc.)?

Access restrictions are configured from the **`Access Controls`** tab on the form. It is possible to restrict access to groups, users, and profiles. More simply, to users authenticated on GLPI (**`All users`** option).

{% hint style="success" %}
**Restriction by entity**\
To restrict a form to an entity, you can either create the form in the corresponding entity.
{% endhint %}

***

## Can I request form validation before submitting it to support?

From the **`Destinations`** tab, you can configure validation. You can set it up using:

* a specific validation template
* one or more specific actors
* or a response to a specific question

***

## What types of questions are available in forms?

There are many types of questions. For example, you can use: <br>

* Checkboxes
* Radio buttons
* Date fields
* Free text fields
* Value selection
* GLPI objects.

This list is not exhaustive, and many other options are available.

***

## Can certain questions be hidden under certain conditions?

It is possible to hide or show questions based on certain criteria. This option is configured from the selected question. Click on the menu ![](/files/9ITWvP1HIMN7xsnCzGYg) , then **`Configure Visibility`**.

{% hint style="success" %}
Example: \
Is your GLPI version up to date? If so, hide the question "What is your current version?"

![](/files/SGHHtce1qeT7uXPDGnyt)
{% endhint %}

***

## Can an SLA be applied from a form?

An SLA can be applied via a form. You can do this by going to the **`Destinations`** tab. You can configure an SLA and/or OLA either via a template or a specific SLA.

***

## Can I attach a document to a form?

With question types, it is possible to ask a user to select a document from the form. The question is of type **`File`**. Simply select the object type. You must ensure that the documents can be read by the relevant entities in **`Management`** > **`Documents`**.

***

## Is it possible to import forms from one instance to another?

It is recommended to import forms to migrate data from a pre-production instance to a production instance (with strictly identical data). However, if information was missing during import, GLPI will inform you of the errors and allow you to correct them by clicking **`Resolve problems`**.

***

## How to restrict GLPI object selection from a form?

When you create a form, the requester can select a GLPI object (user, computer, etc.). You can restrict this selection to their own hardware. Otherwise, the user will be limited to objects within their own entity (and sub-entities if recursion is enabled).

<figure><img src="/files/3yJpdcOs3VfPlSf8foEj" alt=""><figcaption></figcaption></figure>

***

## Can forms be translated?

From the form's Translations tab, you can translate your form. It will adapt to the language selected by the user.

***

How to create an issue or change from a form?

In your form's Destinations tab, you can choose from:

* Ticket
* Issue
* Change

You can then configure it with the desired options (actors, associated elements, analysis, etc.).

***


# General setup

***

### How can I get information on API documentation?

In order to get help on APIs, you can consult the documentation directly from your instance. To do this, in **`setup`** > **`general`** > **`API`** change the option to **`Yes`** to **`enable API Rest`**. The **`online API documentation`** option will appear. If you get an error message when you click on the documentation, click on **`full access from localhost`** and delete the IPs (or enter the IP of the workstation you are on) in the start and end of IPv4 address range fields.

***

### Do you have a password policy?

Yes, for internal accounts only. As external accounts (LDAP, SSO, etc.) depend on a dedicated server, this policy cannot be applied to these accounts.

It is possible to request that the password :

* requires at least one number,
* requires at least one lower case letter,
* requires at least one symbol,
* be of a minimum length (configurable length),
* expires after a set period of time,
* is deactivated if the password has not been changed for a certain period of time (configurable time limit),

It is also possible to request that an expiry notification be sent to users.

***

### How to disable password reset by e-mail?

To disable password reset by e-mail, you need to deactivate the **`Password forget`** notification (**`Setup`** > **`Notifications`** > **`Notifications`**).

***

### Can I increase the password reset time by one day?

When you request a password reset from GLPI, you have 24 hours to carry out the reset. This time cannot be changed. If the 24 hours are exceeded, a new request must be made.

***

### How do I put GLPI into maintenance mode?

If you have operations to perform that require GLPI to be put into maintenance mode, it is possible to do this in 2 ways:

* In CLI (on premise only): in the glpi folder run **`php bin/console maintenance:enable`** (or **`php bin/console maintenance:disable`** to deactivate it)
* In WebUI: in the **`setup`** > **`general`** menu **`system`** tab

{% hint style="success" %}
To override maintenance mode, you can access GLPI by adding **`?skipMaintenance=1`** (*<https://myinstance.com/index.php?skipMaintenance=1>*)
{% endhint %}

***

### How do I purge the GLPI history?

In order not to overload the GLPI database, it is possible to purge the history of certain items:

* general
* software
* financial and administrative information
* users
* components
* all sections (purge all history entries)

By default, the "keep all" option is selected. It is possible to keep the history for between 1 and 120 months, either per section or for the whole.

{% hint style="info" %}
History refers to the **`historical`** tab of a GLPI object.
{% endhint %}

***

### What are locks used for?

Locks are used to prevent certain information from being modified.

{% hint style="success" %}
You don't want the user field to be modified during automatic inventory feedback.
{% endhint %}

In this case, you need to activate the locks in **`Setup`** > **`General`** > **`General setup`**. Select &#x55;**`se locks`** and select the **`profile to be used when locking items`** and the **`types of object to lock`**. To lock a field, simply change it manually. Only the profile you have set up will be able to lock and unlock fields. To unlock them, go to the **`lock`** field of the item in question.

A padlock ![Alt text](/files/hAJJxPWKSfwgiQAMFmJR) will appear when information is locked.

***

### Is it possible to set up working days for support?

Yes, in **`Setup`** > **`General`** tab **`Assistance`** you can set up working days in the **`Planning work days`** field.

***

### How do I change my GLPI theme?

There are several ways to change the theme:

* For individual use: go to **`user settings`** (top right) then in the **`personalization`** tab you can choose the **`color palette`** that suits you.
* For a global setting: go to **`setup`** > **`general`** > **`default values`**. You can choose the colour palette that suits you and will be applied to all users.

You can also modify the CSS by entity. Go to **`administration`** > **`entities`**, select the entity you want, then **`UI customization`**. Indicate **`Yes`** in the **`enable CSS customization`** field and paste your CSS code in the dedicated area.

***

### Can I customise my instance's logo and theme?

You can do this by downloading the **`Branding`** plugin (available on Cloud instances or with a "basic" subscription). Custom palette is available on GLPI 11 only.

***

### How do I assign a default language for all users?

To change the default language, go to **`Setup`** > **`General`** > **`Default values`**. A **`default language`** field is available in the **`personalization`** section. This change is valid for all users.

{% hint style="info" %}
Users will still be able to change their language if they wish from their profile.
{% endhint %}

***

### How do I retrieve my instance's UUID?

Valid for on-premise instances only:

In **`Setup`** > **`General`** click on **`See what would be sent`**. This is the 1st value that will appear:

```
"glpi": {
"uuid": "hQ6ZuLpydjmaTuUCqnaqE6tTdsksio84sdfV8Kb1",
"version": "10.0.18",
}
```

***

### How can I increase the number of search results per page?

In **`Setup`** > **`General`** > **`General setup`**, adjust the **`Default search results limit (page)`** as desired.

***

### How can I deactivate the global search?

In **`Setup`**> **`General`** > **`General configuration`**, put **`No`** to **`Global search`**.

***

### Can I activate/deactivate the option to **"remember me"\`**?

In **`Setup`**> **`General`** > **`General configuration`**, at the bottom of the screen, click on deactivate or indicate in days the possible retention of the identifier.

***

### Can I configure closing days?

It is possible to configure closing days (public holidays) from **`Setup`**> **`Titles`**, enter **`Closing`** and click on **`Closing periods`**. A procedure is [available](/tutorials/readme-1/calendar) to help you set them up.

***

### Can I increase the password reset time to one day?

When you request a password reset from GLPI, you have 24 hours to reset your password. This time cannot be changed. If the 24 hours are exceeded, a new request must be made. A procedure is [available](/tutorials/readme-1/calendar) to help you set them up.

***

### Can we synchronize a calendar with GLPI?

GLPI integrates a CalDAV server, which allows sharing of a GLPI calendar externally. It is also possible to modify it from both places. It's native via the link I provided previously.

* To do this, go to **`Assistance`** > **`Planning`**
* Click on
* Then click on **`Copy CalDAV URL to clipboard`**
* Paste this link into your email tool

<div align="left"><img src="/files/Rtcn4HVP5S4vfRwLVubI" alt="alt text"></div>

Copying a link from an external email to GLPI (Outlook calendar type) is not native. You must use a third-party tool (outside the scope of Teclib) such as <https://caldavsynchronizer.org>.

***

### How can I avoid importing duplicates into GLPI?

If you don't want 2 items to have the same serial number, or 2 users to have the same ID, field uniqueness will help you avoid these duplicates. To configure it, you can follow this [procedure](/tutorials/readme-1/field_unicity).

***

### What types of documents/extentions can be uploaded to GLPI?

From **`Setup`** > **`Dropdowns`** > **`Document types`** you can manage the types of documents authorised to be uploaded to GLPI:

<details>

<summary>Type of documents</summary>

| Name                               | Extension | Authorised by default |
| ---------------------------------- | --------- | --------------------- |
| Adobe Illustrator                  | ai        | Yes                   |
| AIFF                               | aiff      | Yes                   |
| BMP                                | bmp       | Yes                   |
| BZip                               | bz2       | Yes                   |
| Cheader                            | h         | Yes                   |
| Csource                            | c         | Yes                   |
| Comma-Separated Values             | csv       | Yes                   |
| Debian                             | deb       | Yes                   |
| DjVu                               | djvu      | Yes                   |
| DVI                                | dvi       | Yes                   |
| Excel                              | xls       | Yes                   |
| Excel                              | XML/xlsx  | Yes                   |
| Flash                              | swf       | Yes                   |
| GIF                                | gif       | Yes                   |
| GIMP multi-layer                   | xcf       | Yes                   |
| GZ                                 | gz        | Yes                   |
| HTML                               | html      | Yes                   |
| JPEG                               | jpg       | Yes                   |
| JPEG                               | jpeg      | Yes                   |
| JSON file                          | json      | Yes                   |
| LaTeX                              | tex       | Yes                   |
| Midi                               | mid       | Yes                   |
| MNG                                | mng       | Yes                   |
| MP3                                | mp3       | Yes                   |
| MPEG                               | mpg       | Yes                   |
| Oasis Open Office Base             | odb       | Yes                   |
| Oasis Open Office Calc             | ods       | Yes                   |
| Oasis Open Office Calc Template    | ots       | Yes                   |
| Oasis Open Office Chart            | odc       | Yes                   |
| Oasis Open Office Draw             | odg       | Yes                   |
| Oasis Open Office Draw Template    | otg       | Yes                   |
| Oasis Open Office HTML             | oth       | Yes                   |
| Oasis Open Office Image            | odi       | Yes                   |
| Oasis Open Office Impress          | odp       | Yes                   |
| Oasis Open Office Impress Template | otp       | Yes                   |
| Oasis Open Office Math             | odf       | Yes                   |
| Oasis Open Office Writer           | odt       | Yes                   |
| Oasis Open Office Writer Master    | odm       | Yes                   |
| Oasis Open Office Writer Template  | ott       | Yes                   |
| Ogg Vorbis                         | ogg       | Yes                   |
| OpenOffice                         | sxw       | Yes                   |
| OpenOffice Calc                    | sxc       | Yes                   |
| OpenOffice Impress                 | sxi       | Yes                   |
| Pascal                             | pas       | Yes                   |
| PDF                                | pdf       | Yes                   |
| Photoshop                          | psd       | Yes                   |
| PNG                                | png       | Yes                   |
| PostScript                         | eps       | Yes                   |
| PostScript                         | ps        | Yes                   |
| PowerPoint                         | ppt       | Yes                   |
| PowerPoint                         | XML/pptx  | Yes                   |
| QuickTime                          | mov       | Yes                   |
| QuickTime                          | question  | Yes                   |
| RealAudio                          | ra        | Yes                   |
| RealAudio                          | ram       | Yes                   |
| RealAudio                          | rm        | Yes                   |
| RedHat/Mandrake/SuSE               | rpm       | Yes                   |
| RTF                                | rtf       | Yes                   |
| Scalable Vector Graphics           | svg       | Yes                   |
| StarOffice                         | sdd       | Yes                   |
| StarOffice                         | sdw       | Yes                   |
| Stuffit                            | sit       | Yes                   |
| texte                              | txt       | Yes                   |
| TGZ                                | tgz       | Yes                   |
| TIFF                               | tif       | Yes                   |
| WAV                                | wav       | Yes                   |
| Windows Media                      | asf       | Yes                   |
| Windows Media                      | avi       | Yes                   |
| Windows Media                      | wmv       | Yes                   |
| Word                               | doc       | Yes                   |
| Word                               | XML/docx  | Yes                   |
| xml                                | xml       | Yes                   |
| zip                                | zip       | Yes                   |

</details>

{% hint style="success" %}
**Add a document type**

You can authorise a new document type to be added to GLPI by clicking on **`Add`** <img src="/files/4NeOBPMUT6pe4RzaQi7u" alt="" data-size="original">&#x20;
{% endhint %}

***

### How to add spaces to notification signatures

To add spaces to your signature, you can add HTML characters as shown below:

`<p>`\
`This is the 1st line`\
`<br>`\
`This is the 2nd line`\
`</p>`&#x20;

***

### Which URLs should be allowed when using a proxy?

* <https://services.glpi-network.com>
* <https://github.com>
* <https://gitlab.teclib.com>
* <https://objects.githubusercontent.com>
* <https://release-assets.githubusercontent.com>


# GLPI agent

***

{% hint style="danger" %}
**Toolbox is for advanced use only. To inventory your printers and network hardware, please use this** [**procedure**](https://help.glpi-project.org/tutorials/inventory/snmp_inventory)
{% endhint %}

{% embed url="<https://www.youtube.com/watch?v=xNfqKTp9LN8>" %}

***

### Where can I download the GLPI agent?

The agent is available via this [URL](https://github.com/glpi-project/glpi-agent/releases/)

***

### Which URL should I configure on my agent ?

The URL to enter can be found in **`Setup`** > **`General`** > **`General Configuration`** > **`URL of the application`**

* &#x20;**`https://my_instance.com/`**

You can refer to the [online documentation](https://glpi-agent.readthedocs.io/en/latest/configuration.html#available-parameters) to configure your agent correctly.

***

### Which OS are compatible with the GLPI agent?

* Windows
* MacOSX (Intel and Apple Silicon)
* GNU/Linux (main distributions and distributions based on RPM and DEB or if they support Snap packaging)

Here is the [documentation](https://glpi-agent.readthedocs.io/en/latest/installation/index.html) for installing the agent on your various OS.

***

### How do I install the agent using GPO?

A script is available to deploy your [agents via GPO](https://glpi-agent.readthedocs.io/en/latest/installation/index.html#large-installations)

***

### What is Glpi-Agent Monitor?

Glpi-Agent Monitor allows you to have a graphical interface of your agent in order to be able to carry out actions like forcing an inventory, consulting the log of the agent, opening a ticket. You can download it here [link](https://github.com/glpi-project/glpi-agentmonitor/releases)

<div align="left"><img src="/files/mOq4uWxkZj1xwa6iXhFg" alt="Alt text"></div>

***

### How do I install the agent on MacOSX?

To help you install the GLPI agent on MacOSX, you can refer to the [official documentation](https://glpi-agent.readthedocs.io/en/latest/installation/index.html#macos)

***

### How do I install the agent on GNU/Linux?

To help you install the GLPI agent on GNU/Linux, please refer to the [official documentation](https://glpi-agent.readthedocs.io/en/latest/installation/index.html#gnu-linux)

***

### Where can I find the agent configuration file?

* Under **GNU/Linux** : **`/etc/glpi-agent/agent.cfg`**
* Under **MacOSX** : **`/Applications/GLPI-Agent/etc/agent.cfg`**
* Under **Windows**, it can be found from registry there: **`HKEY_LOCAL_MACHINE\SOFTWARE\GLPI-Agent`**

***

### What settings are available in the agent configuration file?

The GLPI agent includes many parameters such as the installation of particular tasks, the activation of SSL, the use of passwords for HTTP authentication on the server, etc. You'll find the full list [here](https://glpi-agent.readthedocs.io/en/latest/configuration.html#available-parameters)

***

### How do I force an inventory?

**Windows** :

* If the agent is installed as a **service**, you can go to **`http://hostname:62354`** and force an inventory
* If [**Glpi-Agent Monitor**](https://github.com/glpi-project/glpi-agentmonitor/releases) is installed, you can launch the inventory directly from the monitoring interface.
* By **`CLI`** :

  ```
    C:\> cd "C:\Program files\GLPI-Agent" "C:\Program files\GLPI-Agent
    C:\Program filesGLPI-Agent > glpi-agent --force
  ```

**MacOSX** :

`sudo /Applications/GLPI-Agent.app/bin/glpi-agent --force`

**GNU/Linux and others**

`sudo glpi-agent --force`

***

### Which tasks are supported by the agent?

The agent supports a certain number of tasks, some of which can be configured from GlpiInventory plugin available in MarketPlace:

* Netinventory and NetDiscovery: network discovery and inventory with SNMP support
* Deploy
* Collect
* ESX
* RemoteInventory (only with a [dedicated configuration in GLPI Agent](https://glpi-agent.readthedocs.io/en/latest/tasks/remote-inventory.html) or with the [GLPI Agent ToolBox plugin](https://glpi-agent.readthedocs.io/en/latest/plugins/toolbox-plugin.html))

***

### How do I activate Basic Authentication toward GLPI Agent?

From the agent configuration folder, identify the **`basic-authentication-server-plugin.cfg`** file. Copy this file and rename the extension **`.local`**. On the renamed file, uncomment the line **`disabled = no`**. More information in the [official documentation](https://glpi-agent.readthedocs.io/en/latest/plugins/basic-authentication-server-plugin.html#basic-authentication-server-plugin)

***

### What is the purpose of the **`Toolbox`**?

The ToolBox is a simple web interface built into the GLPI Agent that allows users to configure certain features when there is no GLPI server available.

***

### What are the functionalities of the **`Toolbox`** ?

Here are the main features provided by **`ToolBox`** :

* Manage inventory tasks (available since GLPI Agent 1.6)
* Manage authentication information definitions
* Manage IP range definitions
* Manage scheduling definitions (available from GLPI Agent 1.6)
* Display light inventory results and modify custom fields if required
* Manage remotes definition (obsolete since GLPI Agent 1.6)
* Manage mib support rules to adjust results for SNMP network devices

***

### How do I install the agent **`ToolBox`**?

The GLPI Agent Toolbox is a module within the GLPI Agent that may be enabled using [this article](/tutorials/inventory/advanced-usage/install-agent-toolbox).

***

### How can I configure my agent to access my GLPI server using SSL?

The first thing to check is that you are using a URL starting with https\://. If your GLPI server is correctly configured and has a certificate signed by a public certification authority, you won't need to do anything more. The second thing to check is that your network is not blocking requests to port 443 of your GLPI server from the workstation where the agent is to be run. Finally, you can check the agent's log or check that the error output from a command-line run reports an error like this:

```
[error] [http client] internal response: 500 Can't connect to 192.168.2.3:443 (certificate verify failed), SSL connect attempt failed error:0A000086:SSL routines::certificate verify failed
[error] No supported answer from server at https://192.168.2.3
```

The error keyword here is certificate verify failed. In this case, the SSL support configuration of the GLPI server may use a private certification authority. This is the case, for example, if your GLPI is configured with a self-signed certificate. In this case, the agent has several options for configuring SSL support and each of these options can be chosen according to the context of use.But before going any further, you should also check that an anti-virus is not configured on the computer to intercept SSL network flows. In this case, the anti-virus generally presents a self-signed privatecertificate, which is responsible for the error. You will need to check your anti-virus documentation to find out how to resolve this problem, perhaps by including the GLPI server URL in a white list. The first option you can use is the no-ssl-check option. This option should be used to check that SSL support is actually working. However, this option should never be used in production as it does not authenticate your GLPI server. The no-ssl-check option will also allow the agent to indicate the value that you can use for another option available since version 1.3 of the GLPI agent: the ssl-fingerprint option. Here is an example of the information the agent can report with the no-ssl-check option enabled:

```
[info] [http client] SSL Client warning: Peer certificate not verified
[info] [http client] SSL Client info: Cert-Issuer: '/CN=debian-hosting', Cert-Subject: '/CN=debian-hosting', Version: 'TLSv1_3', Cipher: 'TLS_AES_256_GCM_SHA384'
[info] [http client] SSL server certificate fingerprint: sha256$bae02f72f312d6bc4e6f358181a7beb319224e242b8e370d49a60f659c4a589f
[info] [http client] You can set it in conf as 'ssl-fingerprint' and disable 'no-ssl-check' option to trust that server certificate
```

In this example, the line SSL server certificate fingerprint: indicates that you can set the ssl-fingerprint option to the value `sha256$bae02f72f312d6bc4e6f358181a7beb319224e242b8e370d49a60f659c4a589f`. This value can then be configured on all your agents so that they recognise your GLPI server. Note that your agents will have to be reconfigured with a new SSL certificate fingerprint if the certificate presented by the server is updated. Alternatively, the historical way of configuring recognition of the SSL certificate presented by the GLPI server is to configure the ca-cert-file option with the path to a file in PEM format containing either the public certificate presented by the server or the public certificate of the authority that signed the certificate presented by the server.The disadvantage of this option is that you will have to create or copy this file on all the machines that need it. The ca-cert-dir option can also be used, but its implementation is more complex because it is not easy to determine the filename of the certificates that the configured folder should contain. Since version 1.3 of the GLPI agent on Windows and MacOSX, the agent will also try to check whether it finds the server certificate in the system certificate shop or keystore on Windows or in the keychain on MacOSX. As requested by the community, since agent 1.5, the agent recognises several other sections of the certificate shop on Windows. This feature can allow you to simplify SSL authentication of the GLPI server on a large estate, as you will just have to resort to automatic deployment of the certificate shop without having to use any specific option in the agent. What's more, if the GLPI server certificate is updated, all you have to do is deploy the new certificate and the agentswill end up using it without you having to intervene.

***

### How do I diagnose an SSL connection problem?

If you are unable to configure the server's SSL authentication, you can use the **`--debug`** option twice in combination with the **`--logger=stderr`** option when running the agent from a command line to get a more complete diagnosis of SSL support. This will probably help you identify a particular problem and you will always be asked for theoutput if you request support.

You need to run the command from an administrative console and it's best to use options that will force execution and limit the tasks to a single one, in this case the Collect task. The sole aim is to diagnose an SSL communication problem with the GLPI server: `glpi-agent --logger=stderr --debug --debug --tasks=collect --force`

This is what the output might look like:

```...
DEBUG: .../IO/Socket/SSL.pm:846: call Net::SSLeay::connect
DEBUG: .../IO/Socket/SSL.pm:3690: * TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8)
DEBUG: .../IO/Socket/SSL.pm:3690: * TLSv1.3 (IN), TLS handshake, Certificate (11)
DEBUG: .../IO/Socket/SSL.pm:2857: ok=0 [0] /CN=debian-hosting/CN=debian-hosting
DEBUG: .../IO/Socket/SSL.pm:3690: * TLSv1.3 (OUT), TLS alert, Unknown alert (560)
DEBUG: .../IO/Socket/SSL.pm:849: done Net::SSLeay::connect -> -1
DEBUG: .../IO/Socket/SSL.pm:852: SSL connect attempt failed
DEBUG: .../IO/Socket/SSL.pm:852: local error: SSL connect attempt failed error:0A000086:SSL routines::certificate verify failed
DEBUG: .../IO/Socket/SSL.pm:855: fatal SSL error: SSL connect attempt failed error:0A000086:SSL routines::certificate verify failed
DEBUG: ...perl/Net/HTTPS.pm:67: ignoring less severe local error 'IO::Socket::IP configuration failed', keep 'SSL connect attempt failed error:0A000086:SSL routines::certificate verify failed'
DEBUG: .../IO/Socket/SSL.pm:3062: free ctx 94133007189808 open=94133007189808
DEBUG: .../IO/Socket/SSL.pm:3066: free ctx 94133007189808 callback
DEBUG: .../IO/Socket/SSL.pm:3073: OK free ctx 94133007189808
[error] [http client] internal response: 500 Can't connect to 192.168.2.3:443 (No such file or directory), SSL connect attempt failed error:0A000086:SSL routines::certificate verify failed
[error] No supported answer from server at https://192.168.2.3
```

Here we find a line containing **`ok=0 [0] /CN=debian-hosting/CN=debian-hosting`** which shows that the server certificate is a self-signed certificate with a debian-hosting host name and a fatal SSL error which indicates certificate verify failed. In conclusion, the agent refuses the connection because it is unable to authenticate the server it isaccessing. And this is normal when using a url containing an ip. This type of error can be resolved by using one of the agent's configuration options. However, other errors may come up indicating, for example, that the server's SSL support is out of date or that the negotiation to determine which exchange protocol to use has not been successful. This type of error may indicate a problem to be resolved on the server side.

***

### Why is my agent displaying an unknown status or inventory request?

By default, the agent status is displayed as **`unknown`**. You can click on to :

* view the status
* launch an inventory

![Alt text](/files/zprhXDLU4lZQiYZ2Opce)

It may happen that the server does not have access to the agent's port, in which case this functionality will not be available:

* either in the case of an agent behind a firewall
* or the routing does not allow it
* if the port is filtered by the machine's firewall

{% hint style="danger" %}
**This feature is not available in Cloud**
{% endhint %}

***

### How do I add the **`collect`** and **`deploy`** tasks via a VBS script?

Announced with the release of agent 1.8, the deploy and collect tasks are no longer installed by default. They must be added to your scripts if you wish to install them. Here is the syntax to follow:

**`SetupOptions = "/quiet RUNNOW=1 ADDLOCAL=feat_DEPLOY,feat_COLLECT SERVER='`**[**`https:my_GLPI_instance/marketplace/glpiinventory/`**](#user-content-fn-1)[^1]**`' TASKS='Deploy,Collect,Inventory,...`**

***

### What is a partial inventory?

A partial inventory only includes information that has been modified during the previous inventory or that has been requested by configuration or option.

This reduces the load on the GLPI server and the network when importing the inventory.

***

### Why does the agent generate a partial inventory?

The GLPI agent (since version 1.8) will, by default, generate a partial inventory after an initial complete inventory. We have added a function to postpone the complete inventory in order to reduce the load on the GLPI server and the network. In this case, if it is not time to generate a full inventory, the GLPI agent will delete the inventory categories that have not changed since the last inventory and will add a `"partial": true` field in the JSON inventory.

And in this case, at the end of 14 (by default the value of `full-inventory-postpone`) partial inventories sent, the GLPI agent will end up sending a full inventory.

***

### Why are my entity assignment rules not being applied?

This can happen if the transfer of equipment is authorised from one entity to another (Administration > Entity > *my\_entity* > Assets> Transfer) and the GLPI agent generates a partial inventory.

During a partial inventory, it is possible that the information required by your rules is not included in the inventory, particularly if you need IP and network mask (CIDR) information (in a partial inventory, the absence of a section indicates that nothing has changed since the previous inventory).

This may therefore have an influence if you have rules for assigning equipment to an entity by IP and/or CIDR and the entity transfer is authorised. The equipment concerned could be transferred to the root entity, bypassing the equipment assignment rules.

There are 2 ways of correcting this problem: Force the agent to generate complete inventories, or continue with partial inventories but force the network part to be transferred.

{% hint style="info" %}
**Information**

In the 2nd case, you will need to install the GLPI 1.13 agent or higher.
{% endhint %}

Force the inventory to be complete:

* in the [agent configuration](https://glpi-agent.readthedocs.io/en/latest/configuration.html#required-category), specify :

`full-inventory-postpone=0`

* Partial inventory with network feedback :

in the [agent configuration](https://glpi-agent.readthedocs.io/en/latest/configuration.html#required-category), specify :

`required-category=network`

`full-inventory-postpone=14` (default value)

You can also test the options by adding :

`glpi-agent --full-inventory-postpone=14 --required-category=network`

***

### How can I force my agents to always generate a full inventory?

{% hint style="warning" %}
**Warning**

Depending on the size of your fleet, this may increase the network load and that of the GLPI server.
{% endhint %}

In the [agent configuration](https://glpi-agent.readthedocs.io/en/latest/configuration.html#required-category), specify :

`full-inventory-postpone=0`

[^1]: :man\_raising\_hand: To be modified by the URL of your instance


# Groups and users

***

### What is a user?

A user is person having an authorization to connect to GLPI.

***

### How do I delete a user?

In **`Administration`**> **`Users`**, click on the desired user. At the bottom of the screen you will find the option **`trash users`**. For a mass deletion, you can also select all the users concerned (via the check boxes) then click on **`actions`** and **`trash`**. To delete these users permanently, click on **`Show recycle bin`**. Select the users you wish to delete and then in **`actions`** choose **`delete permanently`**.

***

### How do I synchronise my AD users with GLPI?

If you have a Cloud instance, you have several ways of doing this.

You have a local AD that is open on the Internet:

* Just enter it in **`Setup`** > **`Authentication`** > **`LDAP directories`**.

You have a local AD that is not open to the Internet:

* You will need to use a VPN (only available for private clouds).

You have an Azure or Google LDAPS :

* You can connect your LDAPS directly using the procedures available in the [FAQ](/tutorials/authentication/cloud_azure_ad)

You have an Azure or Google directory without LDAPS:

* You can also use the SCIM pplugin. It allows you to integrate users and groups from your directory (available for Azure and Google).

***

### Where can i manage users?

* Management is done from the **`Administration`**> **`Users`** menu;
* adding / synchronisation of users is recommended from LDAP directory.
* In addition to the user information, it is possible to deactivate it if necessary (Active field) and manage an access period in the **Valid from** and **Valid until** fields.

***

### What information is included in a user file?

The most important tabs:

* **Authorizations**: manage the authorizations available for user
* **Groups**: associate and delete groups from user
* **Preferences**: editing user preferences (which he can change himself)
* **Materials used**: inventory objects assigned to the user (or group)
* **Materials managed**: inventory objects for which he is technical manager (or in technical group)
* **Tickets / Problems / Changes**: objects of which the user was the requester (or the creator)
* **Synchronization**: to manage its authentication mode

***

### How to change the authentication mode?

The "Synchronization" tab of user allows you to change their authentication mode:

* **for GLPI database**: the password is then stored locally in the GLPI database
* **for LDAP directory**: with choice of the LDAP directory declared in the configuration of GLPI
* **external authentication**: via a CAS server, a MAIL server, or HTTP headers (SSO)

***

### What is a group?

A group of users or assets.

***

### What groups are used to?

* Group users by skills (for example, network technicians, or database administrators)
* Groups for organization (for example all the computers in one location, or the accounting service) but also group of people to be notified

***

### Where can i manage group?

* Groups are managed in the **`Administration`**> **`Groups`** menu
* Groups can be defined in the form of tree structure
* The options available in the main form allow you to decide the scope of use of the group

![Alt text](/files/867NXZ1wl0M2xwGSgi28)

***

### What is delegation?

A Delegation is a mechanism that allows user to report incidents for one of the members of this group.

{% hint style="success" %}
**Example**

A person from the secretariat who reports incidents for people in management.
{% endhint %}

***

### How can i add a delegation?

A delegation can be added in **`Administration`** > **`Groups`** in tab **`Users`**.

![Alt text](/files/ie8VePZTdBzEXD3e5npm)

***

### If I delete a user with linked items, will these be deleted?

No, the ticket or computer type items will be kept but the user will no longer be present as the ticket requester or computer user.

***

### How do I reset my password?

{% hint style="success" %}
**Only valid for internal accounts**

If you use an external provider (Azure, Google, etc.), this procedure does not apply, please contact your administrator or manager.
{% endhint %}

If you have lost or forgotten your password, simply click on **`forgot password?`** on the GLPI login page.

***

### I've deleted a user's authorisation but I can't see them in the **`users`** tab

When you delete a user's authorisation and they only had one, they will automatically be transferred to the root entity. If you do not have access to this entity, contact your administrator to have a new authorisation added to the user concerned.


# Iframe

***

### What is an iframe?

An iframe (short for inline frame) is an HTML element that allows a separate HTML document to be embedded within a web page. In other words, it is a kind of ‘window’ in a web page that displays other content or a website.

{% hint style="success" %}
Example of iframe syntax

`<iframe src=‘https://www.example.com’ width=‘600’ height=‘400’></iframe>`
{% endhint %}

***

### How do you generate an iframe in GLPI?

The most commonly used example is dashboards. To generate an iframe for dashboards, go to **`Assistance`** > **`Dashboards`** >. Select the dashboard you want to integrate and click on (at the top right of the screen). In the box that opens, copy the **`Iframe`** part and integrate the code (which should look like the code below) into your site

```
<iframe src=‘https://www.myinstance.com/front/central.php?embed&dashboard=central&entities_id=0&is_recursive=1&token=5b04t6hhnbf-4f70-6g12-af13-12gdefdf5v8d’ frameborder=‘0’ width=‘800’ height=‘600’ allowtransparency></iframe>
```

***

### Can iframes be used with GLPI Cloud (private or public)?

For security reasons, we do not authorise the default iframe (on the backend) for Cloud versions.

It is perfectly possible to open it, but there are several things you need to know

{% hint style="danger" %}
**Danger**\\

* This opening concerns the **entirety of GLPI**
* You expose yourself to risks of **phishing**
* We do not guarantee that all GLPI functionalities will work in this context
* In an OauthSSO context, the iframe does not work
* To limit the risks, we will ask you to provide us with the URLs in which the Frame will be integrated
  {% endhint %}

The use of iframes can expose the site to vulnerabilities if the GLPI content is not properly secured. An attacker could inject malicious code into the iframe, affecting users or compromising data.


# Installation / Update

{% hint style="danger" %}
**Make a backup**

Before any manipulation on your database or on your GLPI instance, we strongly advise you to make a backup of your database as well as of the GLPI folder.
{% endhint %}

***

### What is GLPI?

GLPI is an open source ITSM tool that can be used in a variety of operational systems, since it is a web application running on a web server with a PHP compiler and a MySQL database. GLPI is executed in a three thier architecture which consists in a **presentation** **tier**, an **application tier** and a **data tier**.

### 1. Presentation tier

It is the layer which is in charge of displaying the information to and interacting with the user. The GLPI application generates HTML codes, so for these codes to make sense to the user, we need a web server to “translate” it to them. Some of the most known web servers are **Apache** and NGINX, for example.

### 2. Application tier

This is the business layer of the application. It is responsible for processing operations that GLPI performs on the data according to user requests. For GLPI this logic is coded in **PHP**

### 3. Data tier

The data tier is the one that deals with acces and storage of data. On GLPI this tier is managed by a System of Data Base Management based on MySQL or its fork MariaDB. You will find the complete list of prerequisites to install and use GLPI [can be found here](https://glpi-install.readthedocs.io/en/latest/prerequisites.html#web-server)

***

### Can I install GLPI frontend on a server and the database on another?

Yes, you can. And should in the case of complex and bigger environments. [In this blog post](/tutorials/procedures/install_glpi), we are working with a simple architecture. But you can create scenarios that fit to bigger companies with or without microservices, separated databases, master and slave databases, NFS sharing for files. The possibilities are enormous, and we could discuss in future posts.

***

### I have problems accessing GLPI after an update, how can I fix it?

After an update, cached data attempts to be used but is out of date. The recommended method to remedy the problem is to empty the contents of the cache in the files folder `rm -rf ../files/_cache/*` !!! Warning "Caution This folder may be in a different location depending on your configuration. You can consult the **`../inc/downstream.php`** file to find out the exact path if your installation has been customised.

***

### Why do I get a message on my home page informing me that `The configuration of the web server root folder is not secure because it allows access to non-public files. Please refer to the installation documentation for more details`?

In order to secure your instance and prevent the exposure of non-public files, your vhost must be modified (this applies particularly to instances that are exposed on the Internet). You can follow the official documentation to set up this configuration available [here](https://glpi-install.readthedocs.io/fr/latest/prerequisites.html#web-server)

***

### Can I install GLPI 10 with PHP 7.4?

PHP 7.4 is currently no longer supported. You can check PHP support via [this link](https://www.php.net/supported-versions.php)

***

### How do I know if my GLPI version is up to date?

In the user options, (top right), a field `about`is available. If you click on this field, a message will alert you if you have any overdue updates

<div align="left"><img src="/files/arlqpNPXYVjySQaNePTc" alt="Alt text"></div>

You can also go to **`Setup > General > System`**. click on **`Check if a new version is available`**. A message at the bottom right will tell you if a new version is available

<div align="left"><img src="/files/c2ZCAIJCabtr9PgiPqpB" alt="Alt text"></div>

***

### How do I correct errors when updating GLPI ?

If you encounter errors during the prcess of updates, several commands are possible in order to guide you. These commands should be entered in the GLPI folder:

* **`php bin/console database:check_schema_integrity`**: display inconsistencies found in the database
* **`php bin/console database:check_schema_integrity -p formcreator`**: displays inconsistencies in the database linked to Formcreator
* **`php bin/console system:check_requirements`**: check the system requirements requested by GLPI.
* **`php bin/console migration:migrate_all`**: useful for migrating from 9.5 to 10. Allows you to migrate (convert "datetime" fields to "timestamp" for use in time zones, migrate main/foreign keys to unsigned integers, convert the database character set from "utf8" to "utf8mb4").
* **`php bin/console system:list_services`**: list system services
* **`php bin/console system:status`**: list system status If you need more information, please refer to the [official documentation](https://glpi-user-documentation.readthedocs.io/fr/latest/cli.html?highlight=cli)

***

### Which Web servers are compatible?

To install GLPI, we recommend using :

* Apache
* Nginx
* Lighttpd
* IIS

***

### Where can I download the latest version of GLPI ?

To make sure you have the right version of GLPI, you can download it from [Github](https://github.com/glpi-project/glpi/releases/)

***

### How do I move the files folder from the GLPI folder ?

You need to create a **`downstream.php`** file in the **`inc`** folder. Depending on the desired configuration, you can relocate several GLPI folders. In this example, the **`configuration`** folder will be located in **`/var/www/glpi_config`** and the **`files`** folder in **`/var/www/glpi_files`**.

```
define('GLPI_CONFIG_DIR', '/var/www/glpi_config');
define('GLPI_VAR_DIR', '/var/www/glpi_files');
```

This allows you to segment each folder in the files folder (**`_log`**, **`_pictures`**, **`_lock`**, etc.). Pay particular attention to the permissions of these folders, which must be read/write accessible by the web service user. More information [here](https://glpi-install.readthedocs.io/en/latest/install/index.html#files-and-directories-locations)

***

### How do I obtain the list of commands available in CLI?

From the root of the GLPI folder, enter **`php bin/console`**, this command will display all the commands available in CLI.

***

### Why is some information encrypted after a server migration?

GLPI includes an encryption system via the **`glpicrypt.key`**. If this key is not migrated with the rest of the data, some of your data may no longer be readable. You just need to migrate the **`glpicrypt.key`** to the **`config`** folder to get back to normal use of your GLPI.

***

### Why is the data for certain plugins no longer present after a server migration?

When you migrate a GLPI instance from one server to another, you must also migrate the **`plugin`** and/or **`marketplace`** folder so that all plugin data is also transferred.

***

### Why do I get a message telling me that the PHP session.cookie\_httponly directive should be set to on to prevent access to cookies from client-side scripts?

This directive denies access to the session cookie from JavaScript and prevents cookies retrieved by a JavaScript injection. It can be defined in [**`/etc/php/8.X/apache/php.ini`**](#user-content-fn-1)[^1]

***

### Why can't I access GLPI after enabling the PHP session.cookie\_secure directive?

This directive authorises access to the cookie **only** when the **HTTPS** protocol is **enabled**. If you are using HTTP, we recommend that you disable this option or switch your instance to HTTPS in order to regain access to your instance.

***

### What is the purpose of the \_tmp folder?

The **`_tmp`** folder in GLPI is a temporary storage space used for various operations. In particular, it is used as a place of transit for files before their final destination, such as when importing or downloading files, as well as for one-off operations such as updates or generating reports.

For example, the DataInjection plugin creates temporary files in this folder to store import results or any errors encountered. Although some files are automatically deleted at the end of operations, this is not always the case.

This folder can be emptied manually if necessary.

***

### Can I upgrade directly from version 9.5.x or 10.0.x to the latest version 11 of GLPI?

Yes, it's possible. The upgrade process will automatically update your GLPI version from 9.5.x or 10.0.x to version 11 without you needing to manually perform each major version update.

{% hint style="warning" %}
Please note that if you use plugins like [Formcreator](/doc-plugins/plugins-glpi/formcreator) or [Generic Objects](/doc-plugins/plugins-glpi/genericobject), these plugins are integrated into the GLPI core, and a specific procedure is available to guide you through updating them.

<a href="/spaces/sGALtnzA2IROeldmXKt5/pages/IChC9sx0zA8L7CMLHvlO" class="button secondary">Updating these plugins</a>
{% endhint %}

***

### Can I install GLPI 11 on another server and import the database from a previous version (10.0.x)?&#x20;

Yes, this is perfectly possible and even recommended for upgrading a pre-production server.

When transferring the database, remember to also copy your **`glpicrypt.key`** to your configuration folder.

Once your database is imported, run the command **`sudo -u`** [**`www-data`**](#user-content-fn-2)[^2] **`php bin/console database:update`**. GLPI will then update your database to the installed version of GLPI.

{% hint style="warning" %}
Please note that if you use plugins like [Formcreator](/doc-plugins/plugins-glpi/formcreator) or [Generic Objects](/doc-plugins/plugins-glpi/genericobject), these plugins are integrated into the GLPI core, and a specific procedure is available to guide you through updating them.

<a href="/spaces/sGALtnzA2IROeldmXKt5/pages/IChC9sx0zA8L7CMLHvlO" class="button secondary">Updating these plugins</a>
{% endhint %}

***

### Where can I find the GLPI database schema?

The GLPI database schema is available here

<a href="https://dbdocs.glpi-project.org/" class="button secondary">Go to GLPI database schema</a>

There, you will find the:

* [GLPI 10 schema](https://dbdocs.io/glpi/GLPI-10)
* [GLPI 11 schema](https://dbdocs.io/glpi/GLPI-11)
* [Differences between GLPI 10 and 11](https://dbdocs.io/glpi/GLPI-10-to-11)

***

[^1]: :woman\_raising\_hand: *to be adapted to your configuration*.

[^2]: Enter the username of the web services


# Inventory

***

{% embed url="<https://www.youtube.com/watch?v=mM45fIim-SY>" %}

***

### What elements can the park manage?

You can manage, through the assets :

* Computers
* Monitors
* Software
* Network devices
* Devices
* Printers
* Cartridges
* Consumables
* Phones
* Racks
* Enclosures
* PDUs
* Passive devices
* Unmanaged devices (linked to inventory feedback)
* Cables
* Simcards

***

### How do I set up a network discovery or SNMP directory task?

It's important to understand that these 2 tasks are linked. Network discovery will bring up all the equipment discovered on the network according to its type (computer, printer, switch, etc.) and the business rules established. The [SNMP ](#user-content-fn-1)[^1]inventory will inject the data authorised by the manufacturer via the [SNMP ](#user-content-fn-1)[^1]protocol (serial number, OS[^2], cartridges, etc.). A procedure is available here to help you configure these steps. A guide is also available directly from GLPI (**`Administration > GLPI Inventory > Guide`**) A procedure is available [here](/tutorials/inventory/snmp_inventory)

***

### Why is my GLPI agent returning a `400 Bad Request, Protocol not supported` error but the inventory is running correctly?

The **`400 Bad Request, Protocol not supported`** error is a normal error because it occurs for the Collect and Deploy tasks. These tasks are active by default when the agent is installed on windows but can only be operated if you use the GlpiInventory plugin.Hence the error in the absence of the plugin. You can therefore ignore these errors as it is the machine inventory that interests us here.

***

### Is an automatic inventory possible for my computers, servers, etc?

GLPI of course allows you to upload your workstations directly into your instance. You need to install the GLPI agent on the workstations concerned. You can download it here [link](https://github.com/glpi-project/glpi-agent/releases/) and enter the address of your instance when installing it. You will find all the necessary documentation [here](https://glpi-agent.readthedocs.io/en/latest/)

***

### Following a change of GLPI server, why don't the agents show up in the FusionInventory plugin ?

Since GLPI10, Fusion Inventory is no longer supported by GLPI. Inventory is now native. However, certain tasks (network discovery, collection, application deployment) are handled by the GLPI Inventory plugin available in the marketplace. It is also possible that following a server change, the IP is no longer the same. In this case, the DNS[^3] cache may be at fault. If the [DNS ](#user-content-fn-3)[^3]modifications have been carried out correctly, the agents should gradually return to the new instance.

***

### Is it possible to create static and/or dynamic computer groups?

Computer groups facilitate management in task vectors. There are two types of computer group:

* ***Static groups***: a set of computers whose members are added manually. This makes it possible to control the deployment of a particular piece of software.
* ***dynamic groups***: these are the result of a search engine query. The machines in the group are calculated and the list varies over time.

***

### How do I upload my ink cartridges to GLPI?

Cartridge management is subject to the [SNMP ](#user-content-fn-1)[^1]protocol. It is possible that the printer manufacturer does not allow this type of item. Please check with the manufacturer that [SNMP ](#user-content-fn-1)[^1]is supported by your hardware. If possible, we recommend [SNMP ](#user-content-fn-1)[^1]v3 to encrypt exchanges between GLPI and your hardware. If the settings are correct and the printer supports SNMP[^1], you will then be able to view cartridge ink levels in GLPI and manage cartridge stocks. Please refer to the procedure [inventory printers and network equipment](/tutorials/inventory/snmp_inventory)

***

### Can I inventory my computer rack and its contents in GLPI?

The **Assets** allows you to manage your computer racks (front and rear). A wide range of information can be entered, like location, model, manufacturer, etc. You can adjust the number of units, height, wattage, identify where it is located in the server room, etc. When hardware is added to the rack, its position in the rack will also be visible from the hardware itself.

***

### How can I trace IPv4 addresses only?

This can be done using blacklists. Simply add a new entry formatted in IPv6 ( **`Setup`** > **`Dropdowns`** > **`Blacklists`**):

![Alt text](/files/9rC3Z3AcZk1kMs2dOyRo)

{% hint style="info" %}
**Information**

This action cannot be performed from the agent directly, only the blacklist is able to meet this need.
{% endhint %}

***

### Why can't my agents upload inventories to GLPI?

* Check that the [URL of your instance](https://glpi-agent.readthedocs.io/en/latest/configuration.html#available-parameters) is correctly configured on the workstations concerned.
* Check that the workstations have Internet access (or access to the company's internal network)
* Check that the inventory is enabled (**`Administration`** > **`Inventory`** > **`Enable Inventory`**)

***

### Why do my **`deploy`**, **`collect`** and **`ESX inventory`** tasks no longer work after a migration (9.x to 10.x)?

If in the agent logs you see 2 requests with 2 different URLs, it is possible that the problem comes from a configuration from the entities:

```
[Mon Dec 4 17:57:12 2023][debug2] https://my-server-glpi.mydomain.com/marketplace/glpiinventory/?action=getConfig&task[Deploy]=2.xxxxxxxxxxx-2023-12-04-17-04-44
[Mon Dec 4 17:57:12 2023][debug2] https://other-server-glpi.mydomain.com/marketplace/glpiinventory/b/deploy/?action=getJobs&version=2.xxxxxxxxxxx-2023-12-04-17-04-44
```

From **`Administration`** > **`Entities`** >**`Assets`** tab, it is possible to define the URL of another GLPI server in the **`Agent base URL`** field. The agent will then retrieve the configuration of the task concerned from the server indicated. If a URL is entered in this field, delete it and run a new test.

***

### What is the purpose of the **`URL Base for agent`** field in entity administration?

This field is used if you have multiple GLPI servers. When this field is set, (**`Administration`** > **`Entities`**, **`Assets`**&#x74;ab **`Agent base URL`** field) the agent will be able to retrieve the configuration of the **`deploy`**, **`collect`** and **`ESX inventory`** tasks from the specified server. This avoids web server redirects if you don't want to use them.

***

### Why is my computer import being refused even though the import rules are in place?

You can get more information by consulting the logs.

***

### Why doesn't the network discovery task retrieve the ESX inventory?

The network discovery task doesn't get enough information to do an import in the Computer section of the assets. You should see your PCs in the **`unmanaged equipment`** section or in the **`rejected equipment history`** section. If it is an ESX, you just need to create an ESX task to inventory this machine.

***

### What is impact analysis?

It allows you to prioritise the elements of your network in order to visualise dependency relationships.

Example: Router --> Switch --> Rack --> Servers

![alt text](/files/XXHum3vIEOrPjJRFnn6v)

***

### How do I create an impact analysis?

The impact analysis is created from the menu of the same name from any object in the inventory. A [procedure](/tutorials/inventory/impact_analysis) is available to help you set up an impact analysis.

***

### Can GLPI Inventory inventory all types of virtual machines (VM-Ware, Virtual box, Hyper-V, etc ...) ?

Yes, you need to use the [ESX ](#user-content-fn-4)[^4]task with GlpiInventory for VMWare inventories. For the others, you need to install the GLPI agent directly on the virtual machine. As soon as the agent is supported by the OS[^2], the inventory will be possible.

***

### Why doesn't the inventory assign users to computers?

GLPI's native inventory is able to reconcile the **`Alternate username`** with the **`user`** if a match is found.

{% hint style="success" %}
**Example**

The user is "**johndoe\@AzureAD**". GLPI then tries to find a user with an identifier corresponding to "**johndoe**" (the domain part is cleaned up).
{% endhint %}

If, in GLPI, the user does not have the same ID (john.doe for example), the match will not be made. This could be explained by the fact that the Windows session was opened using the UPN Entra and that in GLPI, the user was synchronised via the email address.

There are several solutions:

* Create users manually with the [UPN ](#user-content-fn-5)[^5]as identifier
* Synchronize users from Entra by specifying in the configuration that the [UPN ](#user-content-fn-5)[^5]is used as GLPI identifier (**`Setup`**> **`Authentication`** > **`LDAP directory`** > **`Login field`** = **`UserPrincipalName`**)

***

### Can we add a mirror server for package deployment?

Yes, from **`Administration`** > **`GLPI Inventory`** > **`Deploy`** > **`Mirror servers`** you can add a mirror server to deploy your packages. A [procedure](/tutorials/inventory/advanced-usage/mirror_server) is available to assist you.

***

### What are the advantages of a mirror server?

* **Availability**: Ensures that deployments can continue even if the main server fails.
* **Performance**: Improves response times and deployment speed by spreading the load.
* **Security**: Reduces the risk of data loss and ensures that applications are always available for deployment.

***

### Can an agent be forced to retrieve a package from a particular server?

Yes, you can use the location to force an agent to retrieve a packet from a server with an identical location. For example, a computer whose location is set to Paris will retrieve packets from the mirror server located in Paris. If the server is not available, the agent will retrieve the packet from the main server (or another mirror server located in Paris, if another exists).

***

### How to configure WMI collection?

A [procedure](/tutorials/inventory/collect_data) is available to help you collect data. Specifically for WMI[^6], a special configuration is required.

{% hint style="success" %}
**Example**

Our example will rely on the computer's [TPM ](#user-content-fn-7)[^7]module to know if it is activated and its version
{% endhint %}

* From **`Administration`** > **`GLPI Inventory`** > **`Computer Information`**, click on **`Add`**
* Indicate a **`name`**,
* Select **`WMI`** type
* Click on **`Save`**
* From the **`collect configuration`** tab, enter the necessary information:
* **Name**: informative data
* **Moniker**: **`winmgmts://./Root/CIMV2/Security/MicrosoftTpm`**
* **Class**: **`Win32_Tpm`**
* **Properties**: **`IsActivated_InitialValue,SpecVersion`**

![alt text](/files/FJOrPPKLfRzZYsyslw2m)

See the [Official Microsoft WMI Documentation](https://learn.microsoft.com/fr-fr/windows/win32/wmisdk/wmi-start-page)

***

### What is the blacklists?

The blacklist identifies the information that will not be retrieved when a PC is inventoried or when users are synchronised.

It is possible to prohibit a certain amount of information, such as IP addresses in 0.0.0.0 or a user with an @yopmail.com email address.

You can blacklist the following items:

* IP
* MAC
* Serial number
* UUID
* Email (for users)
* Model
* Manufacturer
* Manufacturer

Go to **`Setup`** > **`Dropdowns`** > **`Blacklists`**

***

### What is the difference between Fields and Locked Fields in a park asset?

![alt text](/files/mbkpF0pCPblPuVRbKk8d)

In the first part of the screenshot, the **`fields`** insert shows the locks on the computer fields and also on the connected elements.

If the type of computer or the type of monitor connected to this computer is changed, the changed field will be locked and displayed in this area.

The second part displays the locked connected items. For example, if a network port is deleted, it will disappear from the ‘Network’ tab and appear in this box.

***

### Why doesn't the cleansoftware automatic action remove certain software versions?

This automatic action does not remove older versions of applications installed from the Microsoft store. In fact, the store leaves older versions still installed for other users of the machine. Windows only updates software from the store for logged-in users.

[^1]: Simple Network Management Protocol

[^2]: Operating System

[^3]: Domain Name System

[^4]: Elastic Sky X

[^5]: User Principal Name

[^6]: Windows Management Instrumentation

[^7]: Trusted Plateform Module


# Knowledge base

***

### How do I make an article appear in the FAQ?

When creating an article, check the box **`put this item in the FAQ`**. If there are no particular restrictions, it will be visible to all profiles in all entities.

***

### How can I restrict access to certain articles?

In the article concerned, click on **`Targets`**. You can then restrict an article to :

* an entity
* a group
* a profile
* a user

{% hint style="success" %}
For optimum operation of the knowledge base, we advise you to use entity-based restrictions.
{% endhint %}

***

### Is it possible to indicate an expiry date for an article in the knowledge base?

You can add a configurable expiry date in the **`visible until`** field directly in the article concerned. The article will be deactivated but not deleted.

***

### How can I defer the appearance of an article in the knowledge base?

You can add a configurable date of appearance in the **`visible since`** field directly in the article concerned. The article will be visible from this date for the targets you have set.

***

### How do I go back to a previous version of an article?

In the **`revisions`** tab of your article, all the versions you have saved are present. You can then **`show`** the article or **`restore`** the version.

***

### Can I make the FAQ public ?

It is possible to give access to the FAQ to someone who does not have access to your GLPI. In **`Setup`** > **`General`**, tick the box **`Allow FAQ anonymous access`**.

{% hint style="info" %}
Making your FAQ public does not mean that anyone who logs in will be able to read all your articles. Restrictions can be put in place to ensure that your articles are only readable by certain profiles, groups, entities, etc. and to prevent anonymous reading.
{% endhint %}

***

### I have an external FAQ, is it possible to implement it in GLPI?

It is possible to insert an external link when someone clicks on the **`help`** link in the user options.

![Alt text](/files/BYtO3SP9NqaVfw39KA34)

This **`help`** tab can be configured from **`Setup`** > **`General`** > **`General setup`** in the **`Simplified interface help link`** or **`Standard interface help link`** fields. It is possible to set different links for each.

***

### How do I remove the knowledge base tab from the interface?

From **`Administration`** > **`Profiles`**, select the desired profile. From the **`Tools`** tab, uncheck everything related to **`Knowledgebase`**. The tab in the corresponding profile will no longer be visible.


# LDAP(s)

***

### How do I connect my Entra LDAPS to GLPI?

To connect an LDAPS[^1], you must make sure you have a sufficient license allowing you to create an LDAPS. The [domain services](https://learn.microsoft.com/fr-fr/entra/identity/domain-services/overview) service is required to create your LDAPS[^1]. Please refer to Microsoft's [official documentation](https://azure.microsoft.com/fr-fr/products/microsoft-entra-ds). Once your LDAPS has been created, simply follow the instructions from **`Setup`** > **`Authentication`** > **`LDAP directory`**.

***

### Why do I get an error message informing me that I don't have rights to access the application?

This happens when the authorisation rules have not been set up. In fact, once authentication has been successful, GLPI checks that you have an assigned authorisation. GLPI also checks that a rule has been set up to assign you one automatically. If this is not the case, access to GLPI will be denied. To set up these authorisation rules, go to this [article](/tutorials/authentication/setup_ldap) for help with setup.

***

### Why are my users deleted from GLPI when they are deactivated?

From **`Setup`** > **`Authentication`** > **`Setup`** you can choose the GLPI behaviour when a user is deactivated from your LDAP(s)

* Preserve
* Disable
* Disable + withdraw groups
* Disable + withdraw dynamic authorisations and groups
* Put in trashbin
* Withdraw dynamic authorisations and groups

***

### I'm having trouble synchronising my LDAP(s). How can I get a debug?

For on-premise instances, you can check in **`files/_log`** (or wherever you have stored your logs) You can also download the [LDAP Tools](https://glpi-plugins.readthedocs.io/en/latest/ldaptools/index.html) plugin to help you understand what the problem is.

***

### What information is sent back by LDAP(s)?

You can manage the information retrieved by your LDAP(s) from **`Setup`** > **`Authentication`** > **`LDAP directory`**, **`Users`** tab

<figure><img src="/files/1eV4FFntFxj2gLVg5aif" alt=""><figcaption></figcaption></figure>

***

### How do I synchronise groups?

From **`Setup`** > **`Authentication`** > **`LDAP directory`**, tab **`Groups`**, you can choose how GLPI will behave when synchronising your groups.

GLPI can :

* Check the groups belonging to the user (user search)
* Check the users present in the groups (group search)
* The 2

Remember to indicate the user attribute (usually **`memberof`**) so that GLPI can use this attribute to synchronise the groups belonging to the user. Remember to indicate the groups attribute (usually **`member`**) so that GLPI can use this attribute to synchronise the users in the groups.

***

### What is the purpose of the group search filter?

The filter allows you to find only certain groups, based on their name for example. If you only wanted to find the accounting group, for example, you could have a syntax such as **`(&(objectCategory=group)(SAMAcCOUNTNAME=*accounting*))`**. You can use this [documentation](https://learn.microsoft.com/fr-fr/windows/win32/adsi/search-filter-syntax) to help you build your filter.

***

### How do I add replicas for my LDAP server(s)?

From **`Setup`** > **`Authentication`** > **`LDAP directory`**, tab **`Replicates`**, enter the information required for replicates.

***

### Why aren't my users imported?

Check that your LDAP(s) can be reached and is correctly configured on the GLPI side. If your LDAP(s) is correctly set up on the GLPI side, check that the **`automatically add users from an external authentication source`** option has been selected. Check that automatic authorisations have been set up. If you do not have automatic authorisation, check that the otpion **`add a user without accreditation from a LDAP directory`** (from **`Setup`** > **`Authentication`** > **`Setup`**) is set to **`Yes`**.

***

### How can I automatically synchronise my LDAP users?

In order to automatically synchronise your users from an LDAP[^2], you can add a line to your crontab (the one for the user who reads the web files, Apache, www-data, etc.)

**`0 * * * * www-data cd /var/www/glpi/ && /usr/bin/php bin/console glpi:ldap:synchronize_users --no-interaction >/dev/null 2>&1`**

You can add options to this command. For example, to force the policy of disabling users when they are deleted from LDAP(S):

**`0 * * * * www-data cd /var/www/glpi/ && /usr/bin/php bin/console glpi:ldap:synchronize_users --no-interaction -d 3 >/dev/null 2>&1`**

See the list of actions with:

**`php bin/console ldap:synchronize_users --help`**

If you want to perform several actions, we advise you to add as many LDAP commands to your cron as you need (one command for synchronising accounts, another for deactivating accounts, etc.).

***

### Does the command **`php /var/www/html/glpi/bin/console glpi:ldap:synchronize_users`**, set up in the cron, make the LDAP connection filter set up in **`Setup`** > **`Authentication`** > **`LDAP directories`** ?

Yes, if you don't specify **`--ldap-filter`** in your command line, GLPI takes the sync field **+** the condition specified in the connection filter to perform the search.

{% hint style="success" %}
**Example**

* Synchronisation field configured = **`entryuuid`**
* Connection filter configured = **`(objectClass=inetOrgPerson)`**
* Resulting LDAP filter on command line = **`(& (entryuuid=*) (objectClass=inetOrgPerson))`**
  {% endhint %}

***

### Can I restore a GLPI user when it is also reactivated in LDAP?

From **`Setup`** > **`Authentication`** > **`Setup`** you can choose the behaviour of the **`Action when a user is restored in the LDAP directory`**. You can choose to :

* Enable
* Do nothing
* Restore (move out of trashbin)

{% hint style="info" %}
**Information**

If it has been permanently deleted, it will be recreated as a new user.
{% endhint %}

***

### When should the `TLS Certfile` and `TLS Keyfile` fields be filled in?

The `TLS Certfile` and `TLS Keyfile` fields must be populated when authentication (Bind) (**`Setup`** > **`Authentication`** > **`LDAP directory`** > **`Use Bind`**) is activated via a certificate and its private key (like LDAPS on Google Worspace, for example): it therefore replaces (or complements) a user/password.

{% hint style="warning" %}
**Certificates**

If you are using LDAPS, the certificates must be stored on your server so that GLPI can access them (in the GLPI config folder, for example).
{% endhint %}

***

### Is it possible to use nested groups?

Nested groups allow a group to be a member of one or more other groups (for example, the accounting subgroup is present within the finance group).

{% code overflow="wrap" %}

```
🏢 PARENT GROUP: Finance
│ (Logically groups all the company's financial functions)
│
├── 📁 SUBGROUP: Accounting
│ │ (Responsibilities: Balance sheets, expense reports, closing procedures, etc.)
│ │
│ └── 👤 Members: Alice, Bob
│
└── 📁 SUBGROUP: Billing
│ (Responsibilities: Customer quotes, payment reminders, collections, etc.)
│
└── 👤 Members: Charlie, Sofia
```

{% endcode %}

{% stepper %}
{% step %}

#### Synchronize groups in GLPI

In **`Setup`** > **`Authentication`** > **`LDAP directories`** > *Directory concerned* :

* **Main tab**:
  * ***Connection filter*** : Use Active Directory preconfiguration **`"(&(objectClass=user)(objectCategory=person)( !(userAccountControl:1.2.840.113556.1.4.803:=2)))"`**
  * ***Base DN*** : must be a subtree containing AD users and groups
* **Group tab**:
  * ***Search type*** : 'In groups' or 'Users and groups' (both work)
  * User attribute indicating groups: **`memberof`**
  * Filter to search in groups: **`Empty`**
  * Group attribute containing its users: **`member:1.2.840.113556.1.4.1941:`**
  * Use DN in the search: **`Yes`**

{% hint style="info" %}
**Explanation**

For an explanation of the **`member:1.2.840.113556.1.4.1941:`** value, [read this article](https://learn.microsoft.com/fr-fr/windows/win32/adsi/search-filter-syntax?redirectedfrom=MSDN)
{% endhint %}
{% endstep %}

{% step %}

#### Import group

Next, we need to import the groups into GLPI (groups on which authorization rules will be based).

* **`Administration`** > **`Groups`** > **`LDAP directory link`**
* Finally, adapt the authorization rules to use the **`Group - is`** criterion rather than **`MemberOf - contains`**.
* Then force the synchronization of a user so that GLPI links the imported groups to the user and gives the correct authorizations based on these groups.

{% hint style="warning" %}
Caution Managing authorization rules on the user's **`memberOf`** field is not a good practice, as this field does not contain nested groups.
{% endhint %}
{% endstep %}
{% endstepper %}

***

[^1]: Lightweight Directory Access Protocol (SSL/TLS)

[^2]: Lightweight Directory Access Protocol


# Licences

***

### What is a licence from a GLPI perspective?

In this article, we will discover **Management** module and the different objects it contains.

GLPI allows you to manage the licenses of your software deployed on your fleet.

The **License** object is linked to **Software** object in your inventory. To be able to manage licenses, it is necessary to establish the process of inventory for your fleet.

You can define information related to license, for example:

* status
* software version
* editor
* expiration date
* on which workstation is it installed

What advantages gives you this feature:

* centralisation of information
* planning renewals
* issue alerts (version changed on a workstation or the number of licenses becomes insufficient)

***

### Is it possible to assign a licence to a user?

At time, (GLPI 10.0.10), only software can benefit from the allocation of a license.

***

### How can I check which computer has a licence?

In **`Management > Licences >`` ``Items`** tab, you can check on which computer the software requiring a licence is installed.

***

### Can I be alerted when a licence expires?

An automatic action **`software`** can be set so that a notification is sent to you when a licence expires. !!! Info The **`expiration`** field must be filled in for the notification to be sent.

***

### Why don't I receive a notification when my licence has expired?

This may be due to 2 parameters:

* the **`expiration`** field has not been filled in (**`Management`** > **`Licenses`**, select the licence concerned and check the **`expiration`** field)
* the automatic action is not activated or not correctly configured (**`Setup`** > **`Automatic actions`**, check and/or configure the **`software`** action)


# My GLPI Cloud

***

###

### Which IP address does my instance respond to ?

{% hint style="success" %}
To **interconnect your instance with a third-party provider**, you need to authorise the IP address associated with the outgoing flow
{% endhint %}

| N° Pool |        URL du Pool        |   Incoming IP   |   Outgoing IP   | Location |    Zone   |
| :-----: | :-----------------------: | :-------------: | :-------------: | :------: | :-------: |
|    16   | with16.glpi-network.cloud |  51.91.236.237  |  135.125.72.99  |  Europe  |   France  |
|    17   | with17.glpi-network.cloud |  51.91.236.243  |  54.37.183.209  |  Europe  |   France  |
|    18   | with18.glpi-network.cloud |  51.91.236.246  |   54.37.183.48  |  Europe  |   France  |
|    19   | with19.glpi-network.cloud |  51.91.236.248  |   51.91.151.19  |  Europe  |   France  |
|    20   | with20.glpi-network.cloud |    51.178.1.4   |  135.125.72.26  |  Europe  |   France  |
|    21   | with21.glpi-network.cloud |   51.178.71.10  |  146.59.241.225 |  Europe  |   France  |
|    22   | with22.glpi-network.cloud |   51.178.71.11  |   91.134.61.8   |  Europe  |   France  |
|    23   | with23.glpi-network.cloud |   51.178.9.237  |  146.59.241.163 |  Europe  |   France  |
|    30   | with30.glpi-network.cloud |   87.98.178.77  |   51.68.95.112  |  Europe  |   France  |
|    31   | with31.glpi-network.cloud |  46.105.40.189  |  135.125.89.66  |  Europe  |   France  |
|    32   | with32.glpi-network.cloud |  87.98.145.248  |  54.36.253.162  |  Europe  |   France  |
|    33   |   us1.glpi-network.cloud  |   51.68.109.62  |  146.59.131.99  |  America |    USA    |
|    34   |   us2.glpi-network.cloud  |  147.135.100.38 |   15.204.30.28  |  America |    USA    |
|    35   |   us3.glpi-network.cloud  |  51.81.125.184  | 135.148.232.195 |  America |    USA    |
|    36   |   in1.glpi-network.cloud  |  148.113.24.13  |  148.113.37.27  |   Asia   |   India   |
|    37   |   sg1.glpi-network.cloud  |  139.99.34.194  |   51.79.143.19  |   Asia   | Singapore |
|    38   |   ca1.glpi-network.cloud  |   54.39.84.121  |   51.79.28.54   |  America |   Canada  |
|    39   |   us4.glpi-network.cloud  |   15.204.32.48  |   15.204.30.2   |  America |    USA    |
|    40   |  fr33.glpi-network.cloud  |   51.68.109.62  |  51.255.22.147  |  Europe  |   France  |
|    41   |   us5.glpi-network.cloud  | 135.148.154.221 |   40.160.10.45  |  America |    USA    |
|    42   |  fr34.glpi-network.cloud  |  188.165.55.79  |  57.128.108.34  |  Europe  |   France  |
|    43   |  fr35.glpi-network.cloud  |   46.105.38.36  |   51.91.146.2   |  Europe  |   France  |
|    44   |  fr36.glpi-network.cloud  |  51.68.254.224  |  51.210.158.203 |  Europe  |   France  |

***

### Can I choose the region where my instance will be hosted?

Yes, at the moment you can choose whether your instance is hosted in Europe or the United States. Future deployments will allow you to choose and refine your hosting region even further (Europe/France, for example).

***

### How do I subscribe to GLPI Cloud?

Go to this address: <https://myaccount.glpi-network.cloud/> Then follow this [procedure](/tutorials/account-and-subscription/souscrire_glpi_cloud)

***

### What are the limitations of the GLPI Public Cloud and GLPI Private Cloud offers?

|                                                                    | Public                                  | Private                                 |
| ------------------------------------------------------------------ | --------------------------------------- | --------------------------------------- |
| Maximum number of IT agents                                        | Unlimited                               | Unlimited                               |
| Minimum number of IT agents                                        | 1                                       | 25                                      |
| Rate per user                                                      | 19 €                                    | 21€                                     |
| Maximum number of assets                                           | Unlimited                               | Unlimited                               |
| Number of end users                                                | Unlimited                               | Unlimited                               |
| Community support                                                  | :white\_check\_mark:                    | :white\_check\_mark:                    |
| Support Bug fixes/security patches                                 | :white\_check\_mark:                    | :white\_check\_mark:                    |
| L2/L3 helpdesk support                                             | Partner                                 | Partner                                 |
| Community plugins                                                  | :white\_check\_mark: Secure Marketplace | :white\_check\_mark: Secure Marketplace |
| GLPI Network plugins                                               | :white\_check\_mark:                    | :white\_check\_mark:                    |
| Automatic updates                                                  | :white\_check\_mark:                    | :white\_check\_mark:                    |
| Server maintenance                                                 | :white\_check\_mark:                    | :white\_check\_mark:                    |
| Full database backup once a day                                    | :white\_check\_mark:                    | :white\_check\_mark:                    |
| Incremental database backups once an hour                          | :x:                                     | :white\_check\_mark:                    |
| Incremental backups of files (GLPI attachments)                    | :x:                                     | :white\_check\_mark:                    |
| Dedicated server                                                   | :x:                                     | :white\_check\_mark:                    |
| VPN tunnel                                                         | :x:                                     | :white\_check\_mark:                    |
| A read-only connection to the MySQL database                       | :x:                                     | :white\_check\_mark:                    |
| Filtering of IPs that can access the instance                      | :x:                                     | :white\_check\_mark:                    |
| Interconnection with the Metabase reporting tool (Metabase plugin) | :x:                                     | :white\_check\_mark:                    |
| SQL replication                                                    | :x:                                     | :x: (tailor-made offer available)       |

{% hint style="success" %}
**Special needs**

If you have requirements that are not covered by one of our offers, please contact our [sales department](https://glpi-network.cloud/fr/contactez-nous/) so that we can provide you with a tailor-made offer.
{% endhint %}

***

### I'm in a private Cloud, can I have access to a pre-production instance?

Your offer allows you to obtain a pre-production instance to carry out all your tests without compromising the production instance. You can request this at any time.

***

### Why has my Cloud instance been suspended?

After the 45-day trial period, if no means of payment has been entered in your customer area, your instance will be automatically suspended. If a payment default is detected, your instance will also be suspended. It will be reactivated as soon as siutation has been re-established.

***

### I have a cloud instance, how can I recover my data?

You have the right to recover your data. All you have to do is request it using the [form](https://support.teclib.com/cloud). Your database and documents will be sent to you by secure link.

***

### Does Cloud support include customisation assistance?

TECLIB' works indirectly with customers through a network of partners. These partners provide advice, training, integration, configuration, N1-2 support and specific developments for end customers. For its part, TECLIB provides N3 maintenance (your GLPI Network Cloud offering), product development (R\&D or partner subcontracting), ecosystem cohesion and community management. We invite you to visit the following website to find a partner near you who can help you with your GLPI needs: <https://glpi-project.org/partners/>

***

### How do I import my current GLPI data into a GLPI Network Cloud instance?

To import your GLPI data :

* Gather your data in the form of a SQL dump as well as the files (folder **`files`**) in the form of a zip.
* Create a ticket with GLPI Network Cloud support specifying :
  * The type of import required (e.g. data migration from a local instance to the cloud).
  * Authorisation for Teclib to access your instance.
  * The secure download link for your data (Wetransfer, Google Drive, etc.).
* Support will confirm receipt and integration of your data.

A [full article](/tutorials/my-instance/definitive_migration) is available to help you.

***

### What should I do if the import doesn't seem to have worked properly?

* Check whether the imported data matches your expectations by connecting to your GLPI Network Cloud instance.
* If data is missing :
  * Make sure that the files sent contain all the necessary data
  * Contact support to provide them with the missing files or additional information

***

### How can I increase the storage capacity of my instance and at what price?

With a public instance, you can increase your storage capacity by 50GB for €49 per month.

***

### Is there a size limit for importing my on premise database to the Cloud?

There is no size limit. If your instance exceeds 5 GB for public instances, you can increase it by 50 GB for €49.

***

### Can I add a plugin to my Cloud instance that is not available in the catalogue?

If a plugin is not present, you can request its addition directly from the plugin page of your instance. If it passes the various tests, it could be integrated. If, on the other hand, the tests fail, its presence in the marketplace will be compromised.

***

### Which accounts will I be billed for?

Accounts billed will be those with a standard interface. An interface is associated with a profile.

The profiles in GLPI (8 by default) are of two types, representing two different user interfaces:

* The **Simplified** interface
  * on a default installation, only for the profile named **Self-Service**
* The **Standard** interface
  * on a default installation, for all other profiles: **Super-Admin, Admin, Hotliner, Observer, Supervisor, Technician, Read-Only**

![Alt text](/files/wwYfUj5mH2ZHec1UexEc)

**The Simplified interface** contains a very limited menu, giving access by default only to:

* Tickets
* The reservation of equipment
* The consultation of the FAQ
* And the access to the forms of your catalog of services

This interface is used by end-users. These users, with a simplified interface, **are free and unlimited**.

**The Standard interface** contains all GLPI menus (depending on the administrative rights), and is used by:

* Technicians
* "IT agents"
* Helpdesk agents
* Or even administrators, fleet managers, etc.

These users with a standard interface are billed 19€ (tax excl.) per month.

(If a user has **several** "standard interface" profiles, he is invoiced **only once**).

***

### How do I know how many accounts I will be charged for?

The "**GLPI Cloud Usage**" plugin (available from the marketplace) will identify paying accounts. A new tab will appear in administration showing you this information.

{% hint style="info" %}
Paying accounts are accounts with a profile with a [**standard interface**](/faq/glpi/profile_habilitation#what-are-the-differences-between-standard-and-simplified-interfaces).
{% endhint %}

***

### How do I know the storage level of my instance?

The GLPI Network Cloud plugin (available from the marketplace) can show you this information from the **`Administration > GLPI Network Cloud`** tab once the plugin is installed.

***

### I'm in the Cloud, how can I get the latest version of GLPI?

Cloud instances are updated when a new version is available. You don't have to do anything, updates are automatic.

***

### How do I customise the URL of my instance?

If you would like to use the URL of your domain (support.mydomain.com) for your cloud instance, you can use this [form](https://support.teclib.com/cloud), observing the following recommendations:

The addition of a **CNAME** entry must be configured on your DNS server. This must point to the **current URL** of your cloud instance. Remember to indicate the URL you have chosen in your ticket so that it can be configured.

***

### How to know my IP Addres?

Your GLPI Network Cloud instance has a static IP. To find out what this is and configure your firewall, for example, run the following command in a terminal:

* Linux : `dig +short MaSociete.with.glpi-network.cloud`
* Windows: `nslookup MaSociete.with.glpi-network.cloud`

***

### How many times to set up fee-paying procedure?

After having indicated and validated your personal information (Company, Email, Password, URL) on the registration form or in your customer area, the deployment of your new GLPI Cloud instance takes less than **one (1) minute on average**. Once your instance is deployed, its activation in paid mode is immediate as soon as you save your payment information (credit card) in your customer area. The first billing is issued at the same time based on current standard users, then monthly on the same date thereafter.

{% hint style="success" %}
**Good to know**

You also have the possibility of paying by direct debit.
{% endhint %}

***

### What' happens after the trial period?

After deployment of your instance on our GLPI Cloud platform, you have **45 days free trial**.

**During** these 45 days:

* Your GLPI Cloud instance is available with all features included;
* If you have lost your GLPI access password, do not hesitate to contact us: we will reset it;
* Your [**customer account**](https://myaccount.glpi-network.cloud/) can be accessed now.

**7 days before the end** of 45 days free trial:

* If you did not enter payment data: you will receive a reminder (to the email address indicated at your registration), inviting you to complete your payment information to keep the access to your instance.

**1 day before the end** of 45 days free trial:

* If you did not enter payment data: you will receive a new reminder.

**After** 45 days of free trial:

If you did not enter payment data:

* Your GLPI Cloud instance will be **suspended 2 days** after the end of your trial period, you can restore access by entering your payment information;
* Your GLPI Cloud instance will be **permanently deleted 20 days** after the end of your trial period;
* Your data will not be recoverable;
* Your [**customer account**](https://myaccount.glpi-network.cloud/) will remain accessible for new instances.

If you have entered payment data:

* You are now switched to the paid offer;
* Your platform will remain accessible and will be backed up every night (7 days conservation);
* Your [**customer account**](https://myaccount.glpi-network.cloud/) can be now accessed.

***

### How to close GLPI Network Cloud account?

Even if we are sorry to see you go, you can close your account at any time, for no particular reason. To do this, please, go to your [**customer account**](https://myaccount.glpi-network.cloud) then choose the menu `My Account`, then click the link `Delete my account` and follow the instructions.

{% hint style="danger" %}
**Important**

Please, keep in mind that your data will be destroyed!
{% endhint %}

***

### How do I reset the admin password for my instance or my client account?

These forms allow you to create a new password for GLPI Cloud and subscription accounts (GLPI Network) sent to your email:

* GLPI Cloud: [forgot password?](https://support.teclib.com/cloud)
* GLPI Network: [forgot password?](https://myaccount.glpi-network.cloud/passwordforgotten.php)

***

### How often are GLPI Cloud backups performed?

GLPI Network Cloud instances are backed up once a day with a 30 day retention.

***

### How can I secure my exchanges between GLPI Agent and my Cloud instance?

You can set up a **basic authentication** to prevent unauthorised agents from sending data to GLPI. This authentication prevents any machine from injecting information into the inventory.

**How it works**:

When a GLPI agent contacts the server to send an inventory, it transmits a username and password in the HTTP request header. The GLPI server checks this information before authorising the data to be sent.

In the Cloud, these identifiers are generated by support and sent to you by ticket so that you can configure your agents.

{% hint style="info" %}
**Contact support**

You can contact support via [this link](https://support.teclib.com/marketplace/formcreator/front/formdisplay.php?id=100) to set up basic authentication
{% endhint %}

***

### **Is it possible to embed a GLPI dashboard via iframe on an external site (e.g. SharePoint) on my Cloud Instance ?**

Yes, it is possible to embed a GLPI dashboard via iframe, but under certain conditions:

By default, for security reasons, iframe usage is **blocked on the backend**.

We can lift this restriction, however, please consider the following points:

* This opening applies to **the entire GLPI application**.
* You expose yourself to **phishing risks**.
* We do not guarantee that all GLPI functionalities will work properly in this context.
* In an **OAuth SSO** environment, the iframe will not work.

To limit risks, please open a ticket and provide us with the **FQDN(s) (fully qualified domain name(s))** of the external site(s) authorized to display the iframe.


# Notifications / Receivers

***

### How do I configure Oauth SMTP with Entra on my instance?

Via this article, you'll find all the configuration you need to set up your Oauth SMTP[^1]. Access to your Azure tenant is required to set up this service. You'll find the procedure [here](/tutorials/notifications/oauth_smtp_entra)

***

### How do I configure notifications in GLPI?

You can find out how to configure your [SMTP ](#user-content-fn-1)[^1]server and your notifications in the [FAQ](/tutorials/notifications/setup_notifications) or the [official documentation](https://glpi-user-documentation.readthedocs.io/fr/latest/modules/configuration/notifications/index.html)

{% hint style="success" %}
**Information**

We recommend changing the default PHP method, which is not suitable for production use.
{% endhint %}

***

### Do observers receive GLPI notifications?

To check this information, you need to make sure that the observers are indeed the recipients of the notifications in question. This is checked here: **`Setup > Notifications > Notifications`**, click on the desired notification and go to Recipients.

***

### Can I use an SMTP relay to send my emails?

The use of relays such as Sengrid, SendInBlue, etc. is not recommended with GLPI. We invite you to use [SMTP ](#user-content-fn-1)[^1]servers such as GMAIL, Microsoft, etc. to ensure that the [SMTP ](#user-content-fn-1)[^1]service runs smoothly.

***

### Why are some emails not recovered by the receiver?

An email may be refused for the following reasons:

* the sender's email address is identical to the receiver's email address (to avoid loops)
* The email contains headers refused by GLPI (X-Auto-Response-Suppress, Auto-Submitted)
* The ticket allocation rules do not define a destination entity

You can check that an auto-submitted or auto-reply is not present in the orginie mail header, this could be the reason for the import refusal. Remember to check your ticket assignment rules from **`administration > rules > rules for assigning a ticket created through a mails receiver`**.

Some rejected emails are recorded in GLPI under **Configuration** > **Mail Receivers** > **Non-imported emails**. This section provides more details about the reason for the rejection.

<figure><img src="/files/8uIA3Kk1W0qHixxzp0Nj" alt=""><figcaption></figcaption></figure>

***

### Is it possible to use a different account for the sender of the message and OAuth SMTP authentication with Google or Entra?"

No. The account used for OAuth authentication must also be the sender of the message. Sending the email will fail if the accounts are not identical.

{% hint style="info" %}
There is, however, a nuance for aliases with **OAuth + SMTP**. Sending mail with an alias is possible with the following configuration:

\- indicate the main user in `Setup` > `Notifications` > `Email followups configuration`

\- then enter the alias in `Email sender` (in the **and** e-mail notifications mail server insert)
{% endhint %}

***

### Why is my Microsoft 365 SMTP server not working with TLS?

Microsoft is gradually disabling the [TLS ](#user-content-fn-2)[^2]protocol. We recommend that you use [OAuth SMTP](/tutorials/notifications/oauth_smtp_entra) with Microsoft in order to take full advantage of this service.

***

### How do I convert emails into tickets?

This function is possible via the receiver. A dedicated mailbox will receive the emails and send them to GLPI. This mailbox must be able to use [IMAP ](#user-content-fn-3)[^3]services. If you use Azure or Google, we advise you to use the plugin **`Oauth IMAP`**. A procedure is available [here](/tutorials/receivers/oauth_imap_entra)

***

### Why don't users (applicants or technicians) receive an email when creating or modifying tickets?

This may be due to several factors:

* Your [SMTP ](#user-content-fn-1)[^1]server has been configured incorrectly. You can refer to this [article](/tutorials/notifications/setup_notifications) to help you configure it correctly.
* Notifications for requesters and/or actors have been deactivated. You can check the settings in **`Setup`** > **`Notifications`** > **`Notifications`**. Select the notification concerned and check in **`recipients`** whether the appropriate people are present.

***

### Can the **`variables`** for customising notifications be used by other GLPI objects?

No. It is not possible to use the variables present for personalising notifications anywhere other than in this context. There is another separate system of **`variables`** for followup templates, tasks and solutions ([https://XXXXXXXXXXXX\[^4\]/front/contenttemplates/documentation.php?preset=itilchildtemplate](https://help.glpi-project.org/faq/glpi/https:/XXXXXXXXXXXX\[^4]/front/contenttemplates/documentation.php?preset=itilchildtemplate) you can also find this page in **`Setup`** > **`Dropdowns`** > **`Followup templates`**, click on **`available variables`**)

***

### Is it possible to delete the message =-=-= To reply by email,write above this line =-=-= in a notification?

Yes, but this has the effect of removing the possibility of replying to the ticket by email. To delete the message go to **`setup`** > **`Notifications`** > **`Notifications`**, select the notification concerned and change the **`Allow response`** option to **`No`**.

![alt text](/files/yBwS7gA1eCfmnU7PVqMx)

***

### Can notifications be customised?

Yes, notifications can be customised from **`Setup`** > **`Notification`** > **`Notification templates`**.

From template translation, you can customise the layout of each GLPI notification. You can **`view the tags`** available to add information to your notifications

***

### Can we change the GLPI term that appears before the ticket number in a notification?

To change this value :

<div align="left"><img src="/files/WYgN0Gbm8JPph1xGD77h" alt="alt text"></div>

Go to **`Administration`** > **`Entities`** > **`Notifications`** > **`Prefix for notifications`**

***

### How do I resolve error `535 5.7.3 Authentication unsuccessful`?

* Check that the [**UPN** ](#user-content-fn-5)[^5]is identical to the main email address of the account used to send emails.
* Check the **Azure** :
  * Permissions granted (**`SMTP.Send`**)
  * Access logs to confirm that GLPI is authorised.

Ensure that the configuration in GLPI corresponds to the instructions in the [official documentation](/tutorials/notifications/oauth_smtp_entra) 

***

### How can I prohibit ticket creation by e-mail without disabling follow-up?

You can create and position your receiver rules in this way:

<figure><img src="/files/wiXgUXi7UtxXU9BiKc1h" alt=""><figcaption></figcaption></figure>

***

### I get an error when sending an email followup — what should I do?

If you encounter an error when sending an email followup in GLPI, you need to enable debug mode to diagnose the issue.

Steps to follow:

1. Enable **debug mode** in GLPI: go to **My Preferences**, then click **Debug Mode: Disabled** to activate it.

   <div align="left"><figure><img src="/files/y47s1oDc1zGfiSsHtbpG" alt=""><figcaption></figcaption></figure></div>
2. Perform a **first followup send test** from GLPI. This step creates the `mail-debug.log` file, which does not exist by default.
3. Connect to your server via **SSH**.
4. Run the following command to read the logs:

   `tail -f /path/to/glpi/files/_log/mail-debug.log`
5. Perform a **second followup send test**.
6. Check the `mail-debug.log` file for error details.

In most cases, the error is due to an **SMTP connection issue**, typically caused by a **misconfiguration** (port, authentication, security settings...).

[^1]: Simple Mail Transfer Protocol

[^2]: Transport Layer Security

[^3]: Internet Message Access Protocol

[^4]: :woman\_raising\_hand: replace the X with the name of your instance

[^5]: User Principal Name


# Plugins and marketplace

***

### What is the marketplace?

The marketplace allows you to access (depending on the [GLPI Network](https://services.glpi-network.com/#offers) licence level) a list of plugins and install them with one click. An [article](/tutorials/plugins/marketplace) shows you how it works.

***

### How to access to the marketplace ?&#x20;

For Cloud instances, the marketplace is already a accessible

For self-hosted instances, to access the marketplace, you must add your key in **`Configuration`** > **`General`** > **`GLPI Network`**. You can find the procedure for obtaining your key and inserting it into your instance here.

<a href="/pages/62yjvXF9VbtaF7asjmm7" class="button secondary" data-icon="key">Get my key </a>

***

### How do I install a plugin outside the marketplace (on-premise)?

You can install a plugin that is not present in the marketplace by going to the [plugins page](https://plugins.glpi-project.org/#/). A [procedure](/tutorials/plugins/install-update_plugins) is available to help you install a plugin outside the marketplace.

***

### How to add a plugin not present in the marketplace?

To do this, you must first request it from our support service, specifying the name of the desired plugin, its download URL andits version. You cannot deploy this plugin yourself from your customer account, or from your GLPI instance, because we need to validateseveral things:

* that the plugin you want is well developed by Teclib´ or by one of our official partners trained for plugin development forGPLI
* that it respects the established coding standards;
* that it is maintained over time (because it´s GLPI compatibility is not included in our unlimited MOC support/ in-servicesupport package)
* and that it does not disturb the performance of the GLPI modules (does not cause a bug). After studying your request, you will receive a confirmation indicating the availability of the plugin on your instance or anexplanation why it has not passed our validation test

In case of refusal, we will offer you an alternative solution to cover your need (another validated plugin, native functionality,additional development, etc.).

***

### How do I install plugins on an instance that is not connected to the Internet?

Plugins are only available via the marketplace. To do this we advise you to :

* Open the Internet for the duration of the download (less than one minute),
* Download via an application proxy,
* Use a third-party glpi (on another workstation for example) to download.

{% hint style="success" %}
"You can consult our [dedicated page](broken://spaces/T0zn1QaI43c7I5x8k4gL) for plugins"
{% endhint %}


# My settings

***

### Why don't I have access to the **`preferences`** tab?

This option is displayed or not at the discretion of the GLPI manager. It is a right that must be granted from the profile (**`Administration`** > **`Profiles`** select the relevant profile then tick/untick the **`Personalization`** options in the **`Setup`** tab).

***

### How do I change the order of the ticket history?

In **`my settings`** (top right), go to **`personalization`**. In the 1st personalization section, change the **`timeline order`**.

* Natural order (old items on top, recent entries on bottom),
* Reverse order (old items on bottom, recent on top).

***

### How do I make the text layout bar appear?

In **`My settings > Personalization`** (top right), you can select the **`rich text filed layout`** option:

* ***Classic (toolbar at top)***: the bar is fixed above the text area
* ***Inline (no toolbar)***: right-click to bring up the toolbar

***

### How do I merge or split action buttons in tickets?

In **`My settings > Personalization`** (top right), select the **`action button layout`** option in the **`Assistance`** section.

* Split: all buttons are visible (answer, task, solution, etc.)
* Merged: single response button allowing multiple actions (response, task, solution, etc.)

***

### How do I change the language in GLPI?

In your profile (top right) scroll down the list containing the current language and select the one that suits you.

***

### How do I place the GLPI menu at the top rather than on the left?

In **`Setup > General > Defaults values`**, select **`Horizontal (menu in header)`** in the personalization section

***

### How can I customise the display of visible columns?

The display of columns in the various menus (tickets, computers, users, etc.) can be customised. A distinction must be madebetween the global view and the personal view:

* The **global view** applies to all profiles having access to a part of the inventory: the modification of this part willtherefore be visible by all users
* The **personal view** applies only to the logged-in user and overrides the global view settings. This view is only available ifyou have the **`User view`** right regarding the **`Search result display`**. To change the way the columns are displayed, click on in the menu where you are. Select global or personal view asrequired and add/delete/move the columns as you wish

***

### Can the LDAP connection dropdown be hidden on the login page while still allowing user authentication?

Yes, in **Setup > General** in GLPI, there is an option:\
\&#xNAN;**“Display authentication sources list on login page.”**

By unchecking this option, the LDAP connection dropdown will be hidden from the login page.\
Users can still log in properly:

* if a user is linked to a specific LDAP directory, it will be tested first,
* otherwise, LDAP directories will be tested one by one according to their ID order.

Note: this may slightly increase login time.\
\
![](/files/NEtXiQUY9LY0W6ZtBaOu)


# Pre-installation - Recommendations

***

### Before installing a GLPI server, what should you consider?

It's important to determine several criteria before installing a GLPI server. Some of these may have an impact on the load on the server(s), others on the network load. The right questions to ask yourself before setting up your server are :

:arrow\_forward: How many users will be able to connect at the same time?&#x20;

:arrow\_forward: Will there be automatic inventories?

* If so, estimate the number of assets (computers, monitors, applications, etc.) that will be brought up.

:arrow\_forward: Will a backup system be set up?

* If so, estimate the resources required to launch backups.

:arrow\_forward: Do potential IS security layers consume resources, or can they create latencies?

:arrow\_forward: What system resources are available to you?

* if hosting on-premise :
  * Rack availability
  * Which hardware to order
  * Budget constraints
* Hosting with a provider ([Cloud Offer](https://glpi-network.cloud/) available)

:arrow\_forward: Are there any recovery constraints (implementation of clusters, load balancing, HA, etc.)?

:arrow\_forward: Are there any short/medium/long-term business growth forecasts?

Depending on the answers, a simple or improved architecture could be considered.

***

### What should you think about for a GLPI with heavy traffic?

The more traffic there is to/from your GLPI, the more resources you'll need.

If you assume a large number of users and/or assets to be inventoried, you should consider at least an enhanced archtecture :

{% hint style="success" %}
**Type of enhanced architecture**

<img src="/files/w1qeD8sTmFkrvJEugGqV" alt="" data-size="original">
{% endhint %}

For high-traffic architecture, we strongly suggest :

:arrow\_forward: Separate web front-ends :

* one for users
* one for inventory

:arrow\_forward: Evaluate APACHE resources correctly

* 8-core CPU minimum per machine
* Calibrate configuration for simultaneous task management (connections, worker, etc.)

:arrow\_forward: Ensure sufficient bandwidth

:arrow\_forward: Deport SQL layer to a dedicated server

:arrow\_forward: Associate a second server for SQL replication (necessary for disaster recovery)

:arrow\_forward: Associated resources for the SQL layer :

* RAM: 16 or 32 GB
* Coniguring 2 GB RAM to the InnoDB buffer pool
* Remember to increase values for temporary table management
* Disk: Nvme -> indispensable for fast database writes

:arrow\_forward: WEB connection <-> SQL :

* Sufficient bandwidth
* Minimize latency between machines
* If you're using a provider, we strongly encourage you to ensure that the machines are on the same physical site

:arrow\_forward: Add an NFS share to share **`files`** between upstream WEB servers (sessions, attachments, XML inventories, etc...).

{% hint style="success" %}
**Type of enhanced architecture**

<img src="/files/xIDZcS2eFnoQ02krNKBA" alt="" data-size="original">
{% endhint %}

***

### Cluster, Load-Balancing, High-Availability: can GLPI be integrated into this type of architecture?

Yes, this type of architecture is perfectly feasible with GLP. It's part of a high-availability, disaster recovery mode, in the event of the failure of one of the servers.

For example, you can :

* add a reverse-proxy server upstream of the 2 WEB servers
* add a 3rd WEB server and better distribute the load (manage fault tolerance)
* replace simple `MASTER / SLAVE` replication with a database cluster, requiring at least 3 DB nodes

***

### What flows does GLPI use?

**Mandatory flows**

| From | To        | Prot./Appli. | Port     | Comment                        |
| ---- | --------- | ------------ | -------- | ------------------------------ |
| User | GLPI      | HTTP(S)      | 80 (443) | http(s) : //glpi/              |
| GLPI | Databases | MySQL        | 3306     | Another port can be configured |

**Optional Flows - LDAP/CAS connection**

| From | To             | Prot./Appli. | Port      | Comment                                 |
| ---- | -------------- | ------------ | --------- | --------------------------------------- |
| GLPI | LDAP directory | LDAP(S)      | 389 (636) | Synchronization and user authentication |

**Optional flows - MAIL connection**

| From | To          | Prot./Appli. | Port          | Comment                                     |
| ---- | ----------- | ------------ | ------------- | ------------------------------------------- |
| GLPI | Mail server | SMTP(S)      | 25 (465), 587 | Send email notifications                    |
| GLPI | Mail server | IMAP(S)      | 143 (993)     | Mail retrieval (receiver) > ticket creation |

**Optional flows - GLPI Inventory Basic module (inventory)**

| From   | To     | Prot./Appli. | Port     | Comment                                   |
| ------ | ------ | ------------ | -------- | ----------------------------------------- |
| Agents | Server | HTTP(S)      | 80 (443) | http(s) : //glpi/plugins/fusioninventory/ |
| GLPI   | Agents | HTTP         | 62354    | Remote agent wake-up (from GLPI)          |

**Optional flows - GLPI Inventory Advanced modules**

| From   | To     | Prot./Appli. | Port     | Comment             |
| ------ | ------ | ------------ | -------- | ------------------- |
| Agents | Equip. | SNMP         | 161,162  | Network inventories |
| Agents | Equip. | NMAP         | ICMP,DNS | Network discovery   |
| Agents | VMWARE | HTTPS        | 443      | VMWare inventory    |

***

### Where can I find the GLPI database schema?

\
You can find the database schemas for GLPI 10 and GLPI 11 at the URL below.

{% embed url="<https://dbdocs.glpi-project.org/>" %}

***

### More Ressources :

* [Apache](https://httpd.apache.org/)
* [Nginx](https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-open-source/)
* [PHP](https://www.php.net/docs.php)
* [MariaDB](https://mariadb.com/kb/en/)
* [MySQL](https://dev.mysql.com/doc/)


# Problems

***

### What is a problem?

A Problem is the cause of one or more potential incidents and can generally be identified because one or more incidents have the same symptoms. In GLPI, The Problem allows you to inform, assign and plan, etc., actions or decisions. Problems are accessible in `Assistance` > `Problems`.

***

### How do I create a problem?

A problem object can be created :

* from the ticket form
* in the Problem tab
* or directly from the **`Assistance` > `Problems`** menu.

The problem creation form is very similar to the ticket creation form and shares many of the same concepts: Requestor, Observer, Assigned to, Status, Urgency, Impact, Priority, Category.

***

### Can I use the receiver for problems?

No, only tickets can be used by the receiver.

***

### Can I customise problem notifications?

Yes, in the same way as tickets, Problems notifications can be customised. Go to **`Setup > Notifications > Notification templates`**.


# Profiles and habilitations

***

### What is a Profile?

Definition: set of rights.

A profile is a list of rights. Profiles are built on the basis of an interface:

* **Simplified interface** : designed for end users
* **Standard interface**: for the rest of the users (admin profiles)

***

### How do I create a profile with a standard or simplified interface?

* Go to **`Administration`** > **`Profiles`**.
* Click **`+ Add.`**
* In the **`Profile's Interface`** field, select the desired interface type.

<figure><img src="/files/t7TAK9vBXXGlKVeLJI5Q" alt=""><figcaption></figcaption></figure>

***

### How can I list profiles with a standard or simplified interface?

From **`Administration`** > **`Profiles`**, you have two options:

1. From the search field, select **`Charasteristics - Profile's interface is Standard interface`**

<figure><img src="/files/EUJsfqOFK3VYGh78UgzM" alt=""><figcaption></figcaption></figure>

2. You can also create a **personal view** to display profiles with a simplified or standard interface directly from the view:\
   \
   a. Click on the spanner icon\
   b. Select **`Personal View`**\
   c. Click on **`Create`**

<div align="left"><figure><img src="/files/UsYI4e6apB9h2PrAeuJ4" alt="" width="563"><figcaption></figcaption></figure></div>

d. Then select Profile's Interface in the list.

The interface type will now appear for each profile.

<figure><img src="/files/E4Cp5vdRJLwr3VnAd0Ua" alt=""><figcaption></figcaption></figure>

{% hint style="success" %}
You can make this change in the **global view** if you want it to be the default view for accounts with access to profile administration.
{% endhint %}

***

### How can I tell if an account has a standard or simplified interface?

* Go to **`Administration`** > **`Users`** > *`My_User`*, check the type of profile assigned in the Authorisations tab (list all authorisations if there are several)
* Go to **`Administration`** > **`Profiles`**
* Click on the profile(s) referenced above to see if they are in standard or simplified interface mode (you can also refer to [this question](#how-can-i-list-profiles-with-a-standard-or-simplified-interface) to display this information on the global or personal view).

<figure><img src="/files/PXaROZ84kxzmrtstEvm1" alt=""><figcaption></figcaption></figure>

***

### How do I delete or change the interface type for user accounts?

First, refer to the question above to view the profiles that have the standard or simplified interface.\
You have several options:\\

1. From **`Administration`** > **`Profiles`** > *`My_Profile`*, delete the relationship between the profile and the user:

<figure><img src="/files/sVsQmHA8Lb6cCm32gLL1" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
**Warning**\
If the user does not have another profile, they will no longer be able to log in. Remember to reassign them another profile from Administration > Users. This operation must be performed by a super-admin account or an account with the necessary permissions on the root entity
{% endhint %}

2. From **`Administration`** > **`Profiles`** > **`My_Profile`**, switch the profile to the standard or simplified interface:

<figure><img src="/files/Z7091A2o07tBv7zzc0qY" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
**Warning**\
This solution affects all users of the profile. Remember to check the list of users affected in **`Administration`** > **`Profiles`** > **`My_Profile`**, **`Users`** tab.
{% endhint %}

***

### Which profiles are created by default?

By default 8 profiles are available in GLPI:

* **Super Admin**: this profile has all rights
* **Admin**: ideal for entity administrators (no rights for general configuration)
* **Technician**: has access to the inventory and helpdesk in order to process tickets
* **Supervisor**: can perform as a Technician by adding elements allowing the management of team and its organization (allocationof tickets ...)
* **Hotliner**: it allows you to create tickets and track them, but not to be in charge of them as a technician
* **Observer**: this profile has "read" rights for inventory, management and, perhaps, observer data for a ticket
* **Self-Service**: this profile is limited to the simplified interface
* **Read-Only**: used only for "locked" objects

***

### Where can i manage profile?

* magenement is done from the **Administration> Profiles** menu
* the rights are divided into different tabs, they correspond to the "modules" of GLPI
* we advise to use the existing profiles by default and not to multiply the profiles

***

### What is an authorization?

* An **authorization** is the "connection" between **User**, **Profile** and **Entity**
* A user can be linked to one or more entities and with different rights (several authorizations)
* These rights can be passed to the daughter entities (recursive) or no.

A schematic example of delegation of rights:

![Alt text](/files/mIiyxnFLksjtXBGk74Ly)

***

### How to assign a authorization to a user

* The authorizations of user are managed in the "Authorizations" tab of the user's file.
* These can be added automatically via Authorization Rules (during LDAP synchronization for example).

***

### What are the differences between standard and simplified interfaces?

The profiles in GLPI (8 by default) are of two types, representing two different user interfaces:

* The **Simplified** interface
  * on a default installation, only for the profile named **Self-Service**
* The **Standard** interface
  * on a default installation, for all other profiles: **Super-Admin, Admin, Hotliner, Observer, Supervisor, Technician, Read-Only**

**The Simplified interface** contains a very limited menu, giving access by default only to:

* Tickets
* The reservation of equipment
* The consultation of the FAQ
* And the access to the forms of your catalog of services.

This interface is used by end-users. These users with a simplified interface **are free and unlimited**.

**The Standard interface** contains all GLPI menus (depending on the administrative rights), and is used by:

* Technicians
* "IT agents"
* Helpdesk agents
* Or even administrators, fleet managers, etc.


# Reports

***

### Is it possible to use reports in GLPI?

GLPI allows the generation of a number of reports related to your equipment, financial data, etc.:

* **The default report**: This report lists the equipment present in the park sorted by operating system for computers and bytype for other equipment.
* **Equipment under maintenance contract**: Equipment under maintenance contract with a third party. It is possible to obtain adetailed report by type of equipment and by date of purchase. Multiple selection is allowed.
* **Equipment report by year**: Information on the purchase date, warranty and associated contracts for one or more years.Multiple selection is allowed.
* **Hardware Inventory Financial Information Report**: Summary financial information for computers, printers, network hardware,monitors and peripherals as well as the total value and net book value of your assets.
* **Other Financial Information Report**: Summary financial information for cartridges, licenses and consumables.
* **Network Report**: Network information by location, network equipment or network outlets.
* **Loan report**: Summary of current, future or past loans for a given user.
* **Status report**: Summary by type of equipment of the different statuses.

You can also use the "more reporting" plugin to obtain additional reports


# Reservations

***

### How do I make a GLPI object reservable?

Several items can be reserved in GLPI (computers, monitors, peripherals, etc.). All you have to do is go to the equipment you want to appear in the reservations and in the **`Reservations`** tab click on **`Allow reservations`**. Each piece of equipment will have a booking schedule that can be consulted.

***

### How do I prohibit/authorise users from reserving equipment?"

The right to reserve equipment is granted via the profile. If you wish to authorise or prohibit it, go to **`Administration > Profiles`**. Select the profile you wish to be affected by this change. In the **`Reservable items`** section of the **`Tools`** tab, check or uncheck **`Read`** and/or **`Make a reservation`**.

***

### How do I view the calendar for items?

In the **`Tools` > `Reservations`** tab, you can click on **`View calendar for all items`**. This view will show you a list of all reservable items and the dates on which they are reserved.

***

### How do I find a free date for an item?

In the tab **`Tools` >** `Reservations` , you can click on **`Find a free item for a specific period`**. A search box will appear so that you can check the availability of equipment during that period. Simply select the equipment you require and click on **`Reserve`**.

***

### How to add a comment to the reservation visible to the user?

From **`Tools`** > **`Reservations`**, click **`Administration`**. In the Comments column, click **`None`** (or the comment if it already has one). In the new window, enter your new comment. It will be visible to users.

<figure><img src="/files/r3Z1UVmjxBME926KXRwP" alt=""><figcaption></figcaption></figure>


# Rules

***

### What is a GLPI rule?

There are several types of rules in GLPI. Rules are used to automate and simplify certain tasks. It is, for example, possible to assign an item to an entity when an inventory is uploaded, to allocate an authorisation to a user when he/she logs in, or to assign a ticket via a collector.

***

### How do the rules work?

Rules are based on criteria and actions linked to these criteria

{% hint style="success" %}
**For example**

Rules for assigning authorisations to a user

* **`1st criterion`**: Type of authentication is external (i.e. other than internal database and LDAP)
* **`2nd criterion`**: User ID contains @mondomaine.com
* **`1st action`**: assign self-service profile
* **`2nd action`**: assign entity A
* **`3rd action`**: assign recursiveness Yes
  {% endhint %}

You can also play with operators (is, is not, contains, begins with, etc.) to create rules that match your needs.

***

### What types of rules are available?

* Rules for import and link equipments
* Rules for assigning an item to an entity
* Location rules
* Rules for assigning a ticket created through a mails receiver
* Authorizations assignment rules
* Rules for assigning a category to software
* Business rules for tickets
* Business rules for assets
* Transfer
* Blacklists

***

### What operators are available?

In GLPI rules, you need to use operators to be able to build your rule. For example, if login **`contains`** @mondoamine.com orif group **`is`** infrastructure. A number of operators are available to create your rules as explicitly and logically aspossible.

* is
* is not
* contains
* does not contain
* starting with
* finished by
* regular expression matches
* regular expression does not match
* exists
* does not exist
* under
* not under

***

### What is a relational expression?

A relational expression is based on RegEx, which allows you to simplify your rules (provided you have some knowledge of RegEx),apply massive modifications, and apply a value via "variables". Rules of this type are already created by default in GLPI. You can see a rule of this type in **`Administration`** > **`Rules`** > **`Rules for importand link equipments`**:

![Alt text](/files/obFg6OCPyPZX2mlnU1oL)

This rule is used to assign a user in the user field of an asset according to the return of the 3rd criterion:

* **`(.*)@`**: means any alpha-numeric character that also contains an @.
* **`#0`**: means to increment the result of the relational expression

For example, when the inventory is brought up, the rule will check that a user of type **`glpi@mondomaine.com`** is present inthe item record. If this is the case, it will automatically assign this value in the user field of the asset item. You can use the website [regex101.com](https://regex101.com/) to build your templates with RegEx


# Saved searches

***

{% embed url="<https://www.youtube.com/watch?v=usV0WY3S0qE>" %}

### What is a saved search?

A saved search allows you to display the results of a query without having to specify filters for each search.

{% hint style="success" %}
**Example**

Display all open tickets for which the [TTR ](#user-content-fn-1)[^1]has been exceeded
{% endhint %}

This function is available for tickets, problems, changes, computers, network hardware, etc.

***

### How do I set up a saved search?

If we want to see, for example, all unresolved tickets whose [TTR ](#user-content-fn-1)[^1]has expired, we need to start by performing the correspondingsearch. Once you have done this, click on :star:

![Alt text](/files/lkwh1F3druBPNVC0gOjd)

A new menu will appear, allowing you to set the various options available:

* **`Do count`**: displays the number of items found next to the saved search,
* **`Visibility`**: allows you to make a search public or private.
* **`Entity`**: defines the entity where the search should appear,
* **`child-entities`** : defines the visibility of child entities.

***

### Can a saved search be public?

Yes, you just need to define it when you save the search.

***

### Why isn't my public search visible to other profiles?

The search can only be visible if the authorisations in the corresponding profile have been granted (**`Administration`** > **`Profiles`**. Choose the relevant profile and then the tools tab)

{% hint style="warning" %}
Users with a simplified interface do not have access to public saved searches.
{% endhint %}

***

### Where can I find my saved searches?

You can find them in 2 places:

* In the **`lists`** menu of the corresponding item
* In **`Tools`** > **`Saved searches`**.

***

### What is the purpose of alerts on saved searches?

Alerts allow you to send notifications when any of your searches exceed a quota. Alerts can be sent to the administrator, entity administrator, specific profile(s), specific group(s) or group supervisors.

{% hint style="success" %}
**Example**

If more than 5 unresolved tickets have exceeded the closing time imposed by a TTR[^1], a notification will be sent.
{% endhint %}

***

### How do I set up an alert on a saved search?

In the **`Alerts on saved searches`** section of your saved search, click **`Add an alert`** (or **`Create it now`** if the notification doesn't exist). GLPI will create a new notification. All you have to do is set it to **`Active`**, add a **`Template`** and add the **`Recipients`** of the notification.\
\
A complete tutorial is available here: <https://help.glpi-project.org/tutorials/notifications/alert_glpi#set-up-an-alert-for-a-saved-search>

[^1]: Time To Resolve


# Service levels

{% embed url="<https://youtu.be/svxTmFZpAa4>" %}

***

### What is a service level agreement?

The service level agreement (SLA[^1]) defines the quality of service between the service provider and the customer. This service level is defined in a contract. It generally includes :

* the time taken to handle a ticket (TTO[^2]),
* The desired resolution time according to the criticality of the request (TTR[^3]).

It is also possible to configure OLA[^4]s. An [OLA ](#user-content-fn-4)[^4]is an internal metric used to establish relationships between different IT entities or departments.

***

### How do I set up SLAs?

You can follow this [procedure](/tutorials/helpdesk/service_levels) which shows you, step by step, how to set up SLA[^1]s

***

### How do I assign an SLA to a ticket?

There are 2 ways of assigning an SLA[^1]:

* By means of a rule: For example, all tickets from the XX customer entity will be subject to the XX contract SLAs.
* Manually: In the ticket, go to "Service Levels" and select the [TTO ](#user-content-fn-5)[^5]or [TTR ](#user-content-fn-3)[^3]you are interested in according to the predefined contracts.
* Using a ticket template: from **`Assistance` > `Ticket` > `Templates`** in **`Predefined fields`** you can add an SLA[^1] field ([TTO ](#user-content-fn-5)[^5]and/or TTR[^3]).

***

### How do I know if the SLAs for a ticket are being met?

In the **`Statistics`** section of a ticket, it is possible to see the different times of the ticket:

* handling time (TTO[^5]),
* waiting time,
* resolution time (TTR[^3]),
* closure time (status after resolution)

![Alt text](/files/Pjl6zNZqurKG09xiYVw9)

Indications in red are those that have not been respecified.

***

### How do you end the TTO calculation?

The [TTO ](#user-content-fn-5)[^5]ends as soon as the ticket is allocated to a group and/or a user.

***

### Does the TTR take into account when a ticket is put on hold?

Yes, when a ticket is put on hold, the [TTR ](#user-content-fn-3)[^3]is recalculated once the is changed from **`Pending`** to other status, adding the time that it was kept on hold.

***

### How to use escalation levels to change a ticket status?

You may use [this article](/tutorials/helpdesk/service_levels#escalation-levels) to help you with escalation levels on GLPI.

***

### Why aren't my automatic SLA reminders being received?

[SLA ](#user-content-fn-1)[^1]reminders are based on an automatic **`slaticket`** action and a **`Ticket Recall`** notification. Please check that :

* the automatic action is programmed in CLI (`Setup` > `Automatic actions` >**`slaticket`**)
* notifications have recipients (`Setup` > `Notifications` > `Notifications` > **`TicketRecall`**)
* your cron works [official documentation](https://glpi-user-documentation.readthedocs.io/fr/master/modules/configurationcrontasks.html#configure-automatic-actions)

[^1]: Service Level Agreement

[^2]: Time to Own

[^3]: Time To Resolve

[^4]: operational level agreement

[^5]: Time To Own


# Support and partner

***

### How to become a partner?

Do you have customers interested in our GLPI Network Cloud (SaaS[^1]) offer?

* Become a partner: [find more information on this page.](https://www.teclib-edition.com/en/partners/become-a-teclib-partner/)
* Or describe your project [on this page](https://portal.glpi-network.com/marketplace/formcreator/front/formdisplay.php?id=15), we will answer you!

***

### Is support included in the offer?

Yes, it is a MOC[^2] support/in-service support package. We fix bugs that you may encounter, we apply security patches, and as planned with you we carry out minor and major updates.

If you wish to benefit from other services (assistance support, advice and assistance with configuration, developments, etc.): this is done under additional estimate/cost (from one of our official partners) after studying your request.

{% hint style="danger" %}
**Warning**

**Cloud services do not include level 1 and level 2**. Only level 3 is included in the offer (correction of bugs impacting the code or impacting services linked to access to your Cloud instance). For assistance with configuration, please refer to the list of our [partners](https://glpi-project.org/partners/)
{% endhint %}

***

### How to contact us?

* If you are already our customer, please, use the **“Support”** function in [your account](https://myaccount.glpi-network.cloud/).
* If you are not a customer yet, please, contact us using [this page.](https://glpi-project.org/contact_us/)

***

### How to get help from a partner?

You can discover how GLPI works and configure it yourself, then contact an official partner-integrator if you encounter difficulties or if you want to speed up the configuration of your instance by being accompanied by a professional.

Consult our partners on this [page](https://glpi-project.org/partners/)

***

### What is a patch?

A file **patch** is a set of changes (+/-) designed to update, fix, improve or remove lines in GLPI source code.

Here is an example of **bug-fix.diff**

![Alt text](/files/mqPzAVR2J8Uxz9mGLMII)

* The **+** informs that we add some code
* The **-** informs that we remove some code

***

### How to apply a patch?

A [procedure](/tutorials/procedures/appliquer_un_patch) is available to help you apply your patch

***

### What plugins are supported?

You can find the list of supported plugins on [this page](broken://spaces/T0zn1QaI43c7I5x8k4gL)

[^1]: Software As A Service

[^2]: Maintenance in Operational Condition


# Tasks

***

### What is a task?

Tasks in GLPI are used to materialise an action to be carried out or a decision to be made within a **Tickets / Problems / Changes**. The main idea of this object is therefore planning.

{% hint style="success" %}
**Example**

Create a task to schedule the update of the file server in non-production.
{% endhint %}

***

### How do I create a task?

When a ticket is open and requires a particular action, you can create a task to plan the action in question. Enter the ticket which requires a task to be created. Click on **`response > create a task`** (or create a task directly, depending on how your interface is set up).

You can define several criteria here:

* the content of the task
* insert a task template
* associate a task category
* make it public or private
* schedule the task
* specify a duration
* the technician who will be responsible for carrying out the task (and who will appear in the GLPI calendar)
* Create a reminder

To help you set up your task, you can follow this [guide](/tutorials/helpdesk/add_task)

***

### How can I Limit the schedules for planning?

To ensure that you do not schedule a task outside office hours, it is possible to set availability times. In **`Setup`** > **`General`** > **`Assistance`** set the desired times in **`Limit of the schedules for planning`**. If you schedule a task outside these hours, a message will warn you that it is scheduled for non-working hours.

***

### Can I add a Microsoft365 calendar to my schedule ?

GLPI allows an external calendar to be displayed in the schedule, via the button located at the top of the list of displayed calendars **`Assistance`** > **`Planning`**. This only displays events from this calendar in the "planning" view (no notifications or modifications are possible from GLPI, etc.).

***

### What is the difference between the ‘Date’ field and the ‘Start date’ field?

The fields in the bottom box are linked to the schedule, as it is possible to create a task without scheduling it. These fields are therefore optional. However, if a task is scheduled, the values will be identical.

![alt text](/files/a7oi5iB5XxMnU6DldCT6)


# Tickets

***

### What is a follow-up in a ticket?

A Follow-up is a text interface allowing you to leave a message in a **Tickets / Problems / Changes**.

***

### How do I add a public or private follow-up ?

Technically, a public follow-up will be visible to all users (customers, employees, etc. for example) whereas a private follow-up will only be visible to users with the **right** to see private follow-ups (Technicians, management, etc. for example).

To change the status of a follow-up, click on the ![Alt text](/files/GNzR8FnTTqsccRFk5Fax)

* Public = ![Alt text](/files/GNzR8FnTTqsccRFk5Fax)
* Private = ![Alt text](/files/jH92ytjTVG30xye3vlCQ)

Once you have entered your message, you can send it by clicking on the **Add** button.

***

### Can I use templates for follow-ups ?

Yes, templates for [follow-ups](/tutorials/helpdesk/add_pending_reason), tasks and [solutions](/tutorials/helpdesk/add_pending_reason#setting-up-the-resolution-option) are available in GLPI.

* From **`Setup`** > **`Dropdowns`**, enter **`Template`** and click on **`Followup templates`** you can create your own templates.
* TWIG Variables are also available to get ticket's fields as variables to templates.

***

### How can I automatically close my resolved tickets after a certain period of time?

In the tab **`Administration`** > **`Entity`** > **`Assistance`** indicate the desired duration in the field **`Automatic closing of solved tickets after`**...

***

### How can I hide technician information on tickets?

***In the simplified interface***, requesters have access to the name of the technician who has been assigned to the ticket. They cannot see any other information (telephone, email, etc.).

***In the standard interface***, both callers and technicians can view certain personal information entered in the user file (telephone number, email address).

***

### As the pending reasons are now native, is it possible to automatically change the status from "Waiting" to "In progress" by setting a postponement date?

No, only automatic solutions after automatic follow-ups are possible.

***

### How do I remove the possibility of replying to tickets by email?

To remove the ability to reply by email, go to **`Setup`** > **`Notifications`** > **`Notifications`** then select the relevant notification. For the option **`Allow response`** enter **`no`**.

***

### How to see all group's tickets?

This requires:

* creating a new profile ("Manager" for example) on the same basis as the default "Self-Service" profile (always in simplified interface type therefore)
* assigning it the right "View group tickets"
* create a group that contains the manager + the users for whom he must see the tickets
* assign this group as "Requesting group" automatically on all the tickets of these users.

!!! Note "Is such a user billed in Cloud?" No. When you assign a profile of type "**Simplified interface**" in the authorization of this user, it is not billed.

***

### Can I customise the urgency, impact or priority levels?

No, these values are predefined in GLPI and cannot be modified. However, you can customise the matrix of calculus for priority in **`Setup`** > **`General`** > **`Assistance`**.

***

### How do I add new categories?

In **`Setup`** > **`Dropdowns`**, search for ITIL and select **`ITIL categories`**. Then click on add (remember to save when you have finished).

***

### Is it possible to prohibit the selection of certain categories?

In **`Setup`** > **`Dropdowns`**, search for ITIL and select **`ITIL categories`**. Choose the category you wish to prohibit. Then choose the options that suit you:

![Alt text](/files/irnXZNDqYyVYFa51Xd64)

The category will be visible to the user but not selectable

***

### Is it possible to request validation of certain tickets?

Tickets can be validated in several ways:

* **By a rule**. For example, all tickets whose category is "hardware failure" will be submitted to a dedicated group of technicians for validation.
* **Directly from the ticket**. The IT department receives a request that needs to be validated by the RSI. The validation request can be sent directly from the ticket to the user concerned. Refusal to validate requires a comment.

***

### What are the differences between **`Linked to`**, **`Duplicates`**, **`Child of`** and **`Parent of`**?

* **Linked to**: only has an administrative value. It allows you to see all tickets with a similar problem.
* **Duplicates**: this is the only status that allows all tickets to be closed at the same time. If one of the tikets is closed, all the duplicated ones will also be closed.
* **Child of**: only has an administrative value. This ticket depends on a parent ticket. This ticket must be closed before the parent in order to ensure the correct procedure for the entire closure chain (all children are closed first before closing the parent).
* **Parent of**: only has an administrative value. This ticket is the parent of one or more children. It must be closed after all the children have been closed.

***

### What is a recurrent ticket?

A reccurent ticket allows you to create a ticket on a regular basis at a given frequency.

{% hint style="success" %}
**Example**

Open a ticket every 1st of the month to export current tickets. Open a ticket every Monday morning to check the status of weekend backups.
{% endhint %}

These tickets are set up using a template and automatic actions.

***

### What is a pending reason?

A pending reason allows you to put a ticket on hold and to automatically send reminders via follow-up templates. The ticket can be resolved after X number of reminders using a solution template. The caller's response ends the on-hold process.

{% hint style="success" %}
**Example**

Ticket is put on hold and a reminder is sent every 3 days. The ticket will be resolved after the 3rd reminder if there is no response from the contact person.
{% endhint %}

***

### How do I set up a pending reason?

There are 4 steps in setting up a pending reason:

* choosing the interval between automatic follow-ups
* choosing the number of follow-ups before resolution
* setting up a monitoring template
* setting up a solution template

The pending reasons can be set from **`Setup`** > **`Dropdowns`**, enter **`Pending reasons`** in the search box.

You can follow this [article](/tutorials/helpdesk/add_pending_reason) to set up a pending reason.

***

### Why my pending reasons doesn't work?

Pending reasons depend on the **`pendingreason_autobump_autosolve`** automatic action.

Check that this is active and correctly set (**`setup`** > **`automatic actions`**)

<figure><img src="/files/LtPCOHhQhayqY0xymsLH" alt=""><figcaption></figcaption></figure>

***

### How can I force certain fields to be filled in?"

To do this, you need to create a template. From **`Assistance`** > **`Tickets`** > **`Templates`** click on **`Add`**. In your new template go to **`Mandatory fields`** and define them for the standard and/or simplified interface. The fields you have made compulsory will be preceded by a red star

<div align="left"><img src="/files/xSVaVgUUWqBz1eWZCKdq" alt="Alt text"></div>

***

### How do I hide certain fields?

To do this, you need to create a template. From **`Assistance`** > **`Tickets`** > **`Templates`** click on **`Add`**. In your template, go to **`Hidden fields`** and define the fields that you don't want to be visible from the standard and/or simplified interface.

***

### How do I pre-fill fields?

To do this, you need to create a template (or use an existing template). From **`Assistance`** > **`Tickets`** > **`Templates`** click on **`Add`**. In your template, go to **`Predefined fields`** and define the fields you want to pre-fill for the standard and/or simplified interface

{% hint style="info" %}
The predefined fields are only there to simplify ticket creation, but the user will still be able to modify them if necessary.
{% endhint %}

***

### How do I create a ticket for another user?

When creating the ticket, it is possible to change the requester (standard interface only). In the **`Actors`** section, select the desired user so that the ticket can be created in his or her name. This ticket will of course be visible from your interface and the corresponding notifications will be sent.

***

### Can I export tickets?

Yes, you can export tickets in PDF or CSV format. When you carry out a search (all unresolved tickets in our example), you can then export the result of the current page or your complete search.

<div align="left"><img src="/files/2a8KD8QMZ1TYUWTUPgoR" alt="Alt text"></div>

***

### Why can't I assign a ticket to a group?

An assignment right must be given to groups for them to appear in the assignment list. This right can be found in **`Administration`** > **`Groups`**. Select the group concerned and check that the **`Assigned to`** option is ticked. If the **`Escalade`** or **`More ticket`** plugins are installed, check that they do not cross-reference with this option.

***

### How can I sort ticket follow-ups chronologically or antechronologically?

From **`Setup`** > **`General`** > **`Default values`**, in the **`Personnalization`** insert, choose the way in which the follow-ups should be sorted via the **`Timeline order`** menu.

***

### Are there native satisfaction surveys in GLPI?

Yes, it is possible to set up satisfaction surveys from GLPI without adding a plugin.

***

### How do I set up (native) satisfaction surveys in GLPI?

We invite you to follow this [procedure](/tutorials/helpdesk/satisfaction) to set up your satisfaction surveys.

***

### Is it possible to reset the ticket counter?

{% hint style="danger" %}
**Danger**

**This command should ONLY be used on an empty ticket table**.
{% endhint %}

If you want your tickets to be able to restart at number 1, a command is possible:

**`ALTER TABLE glpi_tickets AUTO_INCREMENT = 1`**

***

### How can I make the suppliers' follow-ups not private?

In the entity configuration, Support tab, you have the option:\
\&#xNAN;**“Mark as private the follow-up added by a supplier via an email collector.”**

***

### What are the conditions for reopening a ticket?

To reopen a ticket, 3 conditions must be met:

* You must be able to **`create follow-ups`**
* The **`status`** of the ticket is **`closed`**
* To be able to **`pass`** a ticket **`in new status`** or in **`assigned status`**

Thanks to these 3 conditions, it is therefore possible to create a profile which would be authorized to reopen a closed ticket.


# Plugins

***

### What are the Supported plugins?

**Plugins with support L.3 included**

We include plugins we offer corrective support L.3 and editor´s guarantee.

For other plugins available, please check Marketplace.

<table data-view="cards"><thead><tr><th align="center"></th><th></th><th data-hidden data-card-cover data-type="image">Cover image</th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td align="center"><strong>ADVANCED DASHBOARDS</strong></td><td>Integrate your own dashboards using SQL queries made directly on the database.</td><td><a href="/files/mldtGLAgumvR3x79JHys">/files/mldtGLAgumvR3x79JHys</a></td><td><a href="/pages/XewlzvERUzs4rbQQFDSM">/pages/XewlzvERUzs4rbQQFDSM</a></td></tr><tr><td align="center"><strong>ANONYMIZE</strong></td><td>Anonymise your datas in GLPI and maintain enhanced personal data security</td><td><a href="/files/iyT5iQqSn8UHCIgmdZbT">/files/iyT5iQqSn8UHCIgmdZbT</a></td><td><a href="/pages/Rj7PLy7lgRZOCAQAJo95">/pages/Rj7PLy7lgRZOCAQAJo95</a></td></tr><tr><td align="center"><strong>APPROVAL BY MAIL</strong></td><td>Authorize the sending of emails to approve your tickets and ensure better management of your workflow</td><td><a href="/files/oVAsd1TkLxVrO2qFu5nJ">/files/oVAsd1TkLxVrO2qFu5nJ</a></td><td><a href="/pages/0iYcn7g49daUfLiSjuRu">/pages/0iYcn7g49daUfLiSjuRu</a></td></tr><tr><td align="center"><strong>BRANDING</strong></td><td>Customize your instance to reflect your brand and enhance your users' experience</td><td><a href="/files/zPUxwzFmeVzIojeHiMq2">/files/zPUxwzFmeVzIojeHiMq2</a></td><td><a href="/pages/2tLjVgCPcLSjsC59kIFJ">/pages/2tLjVgCPcLSjsC59kIFJ</a></td></tr><tr><td align="center"><strong>CARBON</strong></td><td>Estimate consumed energy and carbon emission of assets</td><td><a href="/files/7KCLsmQZPN98391v7Smf">/files/7KCLsmQZPN98391v7Smf</a></td><td><a href="/pages/IaADONdKT9JPeFKlhNA4">/pages/IaADONdKT9JPeFKlhNA4</a></td></tr><tr><td align="center"><strong>CENTREON</strong></td><td>Couple Centreon with GLPI and keep an eye on the health of your park from a single location</td><td><a href="/files/yEdvqWkqVKxE8VwcId5V">/files/yEdvqWkqVKxE8VwcId5V</a></td><td><a href="/pages/AW6vfQa4xqvDW6t2h71G">/pages/AW6vfQa4xqvDW6t2h71G</a></td></tr><tr><td align="center"><strong>CLOUD INVENTORY</strong></td><td>Synchronize cloud resources from multiple providers</td><td><a href="/files/qJ3JoLhP6vpPBKec8Z1n">/files/qJ3JoLhP6vpPBKec8Z1n</a></td><td><a href="/pages/Yo7GOU75V7qua3cBkZTp">/pages/Yo7GOU75V7qua3cBkZTp</a></td></tr><tr><td align="center"><strong>COLLABORATIVE TOOLS</strong></td><td>Optimize your time and set up Webhooks to keep you informed in real time of the progress of your requests and incidents.</td><td><a href="/files/MTwSR35xrBfBB7IJFSxb">/files/MTwSR35xrBfBB7IJFSxb</a></td><td><a href="/pages/m8ZtYgBwe1v312TFDqAI">/pages/m8ZtYgBwe1v312TFDqAI</a></td></tr><tr><td align="center"><strong>CREDIT</strong></td><td>Grant and settle credit to your customers and keep your finances under control</td><td><a href="/files/7bfpGVPN1onKRxXdaeOi">/files/7bfpGVPN1onKRxXdaeOi</a></td><td><a href="/pages/1JFrdiALPkAtb6iehpPe">/pages/1JFrdiALPkAtb6iehpPe</a></td></tr><tr><td align="center"><strong>DATA INJECTION</strong></td><td>Import equipment into GLPI from a CSV file and keep your fleet up to date</td><td><a href="/files/sGrflgw0NcD1VpNdS86Z">/files/sGrflgw0NcD1VpNdS86Z</a></td><td><a href="/pages/kLBv7LL0CP7yjVwNoYoI">/pages/kLBv7LL0CP7yjVwNoYoI</a></td></tr><tr><td align="center"><strong>ESCALADE</strong></td><td>Escalate your tickets to groups and simplify the management of your incidents/requests</td><td><a href="/files/B8n3nWpaf6xMu9t2QheU">/files/B8n3nWpaf6xMu9t2QheU</a></td><td><a href="/pages/5MspldArWi2Wwxb7pYOD">/pages/5MspldArWi2Wwxb7pYOD</a></td></tr><tr><td align="center"><strong>FIELDS</strong></td><td>Add tabs and fields to GLPI objects</td><td><a href="/files/59fDBjLo4BQtfR1Hrg1n">/files/59fDBjLo4BQtfR1Hrg1n</a></td><td><a href="/pages/OSpdCG9smCizfHnmBpqs">/pages/OSpdCG9smCizfHnmBpqs</a></td></tr><tr><td align="center"><strong>FORMCREATOR</strong></td><td>Simplify the submission of your user requests using forms</td><td><a href="/files/l5RcsI57TM0b1gY8oFdS">/files/l5RcsI57TM0b1gY8oFdS</a></td><td><a href="/pages/9BlWDw6nwi1CiN2AwJDX">/pages/9BlWDw6nwi1CiN2AwJDX</a></td></tr><tr><td align="center"><strong>GENERIC OBJECT</strong></td><td>Add new types of inventory objects, integrated into the GLPI framework</td><td><a href="/files/WIDOEauznfKBvgyA4Aww">/files/WIDOEauznfKBvgyA4Aww</a></td><td><a href="/pages/RKQoMuVNGxzGnWbL1Nj2">/pages/RKQoMuVNGxzGnWbL1Nj2</a></td></tr><tr><td align="center"><strong>GLPI AI</strong></td><td>Summarizes the timeline of a ticket, displays the main stages of the ticket, the tasks completed or to be completed</td><td><a href="/files/BgTAKkdAOOC3hEclvP2g">/files/BgTAKkdAOOC3hEclvP2g</a></td><td><a href="/pages/xxUIvxhWnYy7AE6koIBN">/pages/xxUIvxhWnYy7AE6koIBN</a></td></tr><tr><td align="center"><strong>GLPI INVENTORY</strong></td><td>Use advanced tools for your infrastructure such as network inventory, package deployment, information gathering and many others.</td><td><a href="/files/aJK2s4AAPihLbbfoE4vc">/files/aJK2s4AAPihLbbfoE4vc</a></td><td><a href="/pages/LB2a5x7ekKvwsZG0Az6x">/pages/LB2a5x7ekKvwsZG0Az6x</a></td></tr><tr><td align="center"><strong>GDPR TOOLS</strong></td><td>Clean up information or delete users who are inactive in order to comply with the GDPR rule.</td><td><a href="/files/BNc4bVUucIXDle2Dtw8S">/files/BNc4bVUucIXDle2Dtw8S</a></td><td><a href="/pages/7BTvC5UVVLlO3xznpz8q">/pages/7BTvC5UVVLlO3xznpz8q</a></td></tr><tr><td align="center"><strong>HOLIDAY</strong></td><td>Add public holidays from different countries</td><td><a href="/files/IMhUx7pjQxibzBLAukmA">/files/IMhUx7pjQxibzBLAukmA</a></td><td><a href="/pages/pHfgJ5iGxqC4vTh0fO9b">/pages/pHfgJ5iGxqC4vTh0fO9b</a></td></tr><tr><td align="center"><strong>LDAP TOOLS</strong></td><td>Test the connection with your LDAP(S) and obtain debug information in the event of an anomaly.</td><td><a href="/files/DXECTWigs0reAfCrCDU4">/files/DXECTWigs0reAfCrCDU4</a></td><td><a href="/pages/8LlAvtVu0SkACf9qmYK3">/pages/8LlAvtVu0SkACf9qmYK3</a></td></tr><tr><td align="center"><strong>MORE SATISFACTION</strong></td><td>Add advanced satisfaction surveys</td><td><a href="/files/sA9fvCGR9GVBTviBa8qQ">/files/sA9fvCGR9GVBTviBa8qQ</a></td><td><a href="/pages/aF4geFJcnPkyQQpBw8Br">/pages/aF4geFJcnPkyQQpBw8Br</a></td></tr><tr><td align="center"><strong>NEWS - ALERTS</strong></td><td>Highlight information for users or groups of users</td><td><a href="/files/PbIVUFj76KX333MD0s4K">/files/PbIVUFj76KX333MD0s4K</a></td><td><a href="/pages/rkppYMhfL7H8SoG9BCnu">/pages/rkppYMhfL7H8SoG9BCnu</a></td></tr><tr><td align="center"><strong>OAUTH IMAP</strong></td><td>OAuth IMAP allows one of your tenant accounts to use IMAP services securely</td><td><a href="/files/IleYClyoYhfIUnnO7T6F">/files/IleYClyoYhfIUnnO7T6F</a></td><td><a href="/pages/YK1lNT4LssJXpfQVmRE0">/pages/YK1lNT4LssJXpfQVmRE0</a></td></tr><tr><td align="center"><strong>OAUTHSSO AUTHENTICATION</strong></td><td>Simplify user log-in with Entra, Google, OKTA and many others with SSO authentication</td><td><a href="/files/bt2ygcGMDGnVgoUNRmEj">/files/bt2ygcGMDGnVgoUNRmEj</a></td><td><a href="/pages/CmpW4eW2LdrLdln3Qale">/pages/CmpW4eW2LdrLdln3Qale</a></td></tr><tr><td align="center"><strong>ORDER MANAGEMENT</strong></td><td>Set up, track and manage your orders, automatically integrate them into your inventory</td><td><a href="/files/bTnRmh5j0wKdh7xs4PVc">/files/bTnRmh5j0wKdh7xs4PVc</a></td><td><a href="/pages/D5FNsiT88n7MLQs9as4K">/pages/D5FNsiT88n7MLQs9as4K</a></td></tr><tr><td align="center"><strong>PDF</strong></td><td>Select and export informations of an equipment to PDF file.</td><td><a href="/files/osET7Hw3EwxzRCQwgf3J">/files/osET7Hw3EwxzRCQwgf3J</a></td><td><a href="/spaces/uUCcURk2xlvtpVGbiRZf/pages/Cc4LwrTEiEzffggG1NMT">/spaces/uUCcURk2xlvtpVGbiRZf/pages/Cc4LwrTEiEzffggG1NMT</a></td></tr><tr><td align="center"><strong>RENAMER</strong></td><td>Rename GLPI fields, labels, formulations, etc.</td><td><a href="/files/hkusrDNDbTRseVNMi8t4">/files/hkusrDNDbTRseVNMi8t4</a></td><td><a href="/pages/YyUW05mZpiddYIz7YVtK">/pages/YyUW05mZpiddYIz7YVtK</a></td></tr><tr><td align="center"><strong>SAML</strong></td><td>Manage users and groups with SAML protocol</td><td><a href="/files/RM9gJWqc1lrm4pcmRCg9">/files/RM9gJWqc1lrm4pcmRCg9</a></td><td><a href="/spaces/uUCcURk2xlvtpVGbiRZf/pages/5ViAWAHWwnMfByhNeoJw">/spaces/uUCcURk2xlvtpVGbiRZf/pages/5ViAWAHWwnMfByhNeoJw</a></td></tr><tr><td align="center"><strong>SCCM</strong></td><td>Data synchronization with Microsoft SCCM</td><td><a href="/files/sSIBTG5gTVIeYxH3fouI">/files/sSIBTG5gTVIeYxH3fouI</a></td><td><a href="/spaces/uUCcURk2xlvtpVGbiRZf/pages/MnMYw2BmPsoSVlyvyVS7">/spaces/uUCcURk2xlvtpVGbiRZf/pages/MnMYw2BmPsoSVlyvyVS7</a></td></tr><tr><td align="center"><strong>SCIM</strong></td><td>Provision your users and groups from an external identity provider using the SCIM protocol</td><td><a href="/files/wypM2DR8BkgTBScJ2RZI">/files/wypM2DR8BkgTBScJ2RZI</a></td><td><a href="/pages/tg0JNqsGl0HYbyq0YkL1">/pages/tg0JNqsGl0HYbyq0YkL1</a></td></tr><tr><td align="center"><strong>SPLITCAT</strong></td><td>Split categories in the support area</td><td><a href="/files/MwRAjqZaUKFtOXkwWXra">/files/MwRAjqZaUKFtOXkwWXra</a></td><td><a href="/pages/coaK9M0W6khU4pmj7Unc">/pages/coaK9M0W6khU4pmj7Unc</a></td></tr><tr><td align="center"><strong>TAG</strong></td><td>Add a tag and perform searches, display a report or create different administration rules.</td><td><a href="/files/QIPjtFbgzsWPA3Axf9G6">/files/QIPjtFbgzsWPA3Axf9G6</a></td><td><a href="/pages/c5rOpoSumcZpQt1fweNC">/pages/c5rOpoSumcZpQt1fweNC</a></td></tr><tr><td align="center"><strong>TRANSLATE</strong></td><td>Provides a simple and efficient solution for translating ticket timeline elements</td><td><a href="/files/wOFvkuPAzXvv1SXnWsy8">/files/wOFvkuPAzXvv1SXnWsy8</a></td><td><a href="/pages/AQsIUfoFIf32TuwUazui">/pages/AQsIUfoFIf32TuwUazui</a></td></tr><tr><td align="center"><strong>TREE VIEW</strong></td><td>See your asset with tree view.</td><td><a href="/files/ASXQyEhpvVHxENk2yZig">/files/ASXQyEhpvVHxENk2yZig</a></td><td><a href="/spaces/uUCcURk2xlvtpVGbiRZf/pages/URXCedikU9EHAsiNC0Qn">/spaces/uUCcURk2xlvtpVGbiRZf/pages/URXCedikU9EHAsiNC0Qn</a></td></tr><tr><td align="center"><strong>UNINSTALL</strong></td><td>Remove/replace devices from the inventory by automating certain actions on the fields</td><td><a href="/files/2GzyjqscMISb2Cq4ftvK">/files/2GzyjqscMISb2Cq4ftvK</a></td><td><a href="/pages/5Averf5N5WRyo6hb6ZX3">/pages/5Averf5N5WRyo6hb6ZX3</a></td></tr><tr><td align="center"><strong>UNREAD</strong></td><td><p>This plugin helps you to keep track of unread messages.</p><p></p></td><td><a href="/files/VlChG50cRhtI2unjxh6S">/files/VlChG50cRhtI2unjxh6S</a></td><td><a href="/pages/EiiRIeGGTb6g8Hbtw3Ih">/pages/EiiRIeGGTb6g8Hbtw3Ih</a></td></tr><tr><td align="center"><strong>WHATSAPP</strong></td><td>Create and track your tickets from WhatsApp</td><td><a href="/files/G1lTNkFkdK5seWF0HLgz">/files/G1lTNkFkdK5seWF0HLgz</a></td><td><a href="/pages/70AJCogU74QKTFhWMXKW">/pages/70AJCogU74QKTFhWMXKW</a></td></tr></tbody></table>


# Advanced dashboards

{% embed url="<https://www.youtube.com/watch?v=zbSOzhQzuQA>" %}

***

### How do I install Advanced dashboards?

Find the installation procedure in [this article](/doc-plugins/plugin-glpi-network/advanceddashboard)

***

### What is advanced dashboard used for?

Advanced dashboard lets you build your own dashboards using SQL queries made directly on the database. You can then integrate them into tiles on your dashboards.

{% hint style="danger" %}
**This plugin requires knowledge of SQL and the structure of the GLPI database.**
{% endhint %}

***

### Since dashboards are native, why install *advanced dashboards* ?

Advanced dashboards allow you to create your own dashboards from SQL queries. This means you can completely customise the construction of the graph that will be inserted on your dashboard.

***

### Why can't I see the plugin in the marketplace?

Make sure you have a standard [licence](https://glpi-project.org/fr/tarifs-glpi/) or higher to benefit from this plugin.

***

#### Can a dashboard set up in Advanced Dashboard be shared?

Yes, in the SQL editor tab of your dashboard you'll find the sharing icon. Click on this icon to share dashboards via a direct link or an iFrame.

![alt text](/files/fMwHXQ6zU4VQJZYAiwxv)


# Anonymize

***

### How do I set up Anonymize?

A [procedure ](/doc-plugins/plugin-glpi-network/anonymize)is available to help you set up this plugin.

***

### How does Anonymize work?

This plugin enables data to be anonymised in GLPI, directly from the web interface or from the command line, either individually or on a massive scale. It adds anonymisation profiles that allow you to select the attributes that will be anonymised (computer creation date, user email address, ticket tracking, etc.).

***

### Can I create new profiles?

There are 4 default profiles, but you can create as many as you like. A procedure is [available ](/doc-plugins/plugin-glpi-network/anonymize)to help you.

***

### Can I go back once the profile has been applied?

No. Once anonymisation has been carried out, it is not possible to go back. You will have to recreate the elements with their original values.

***

### If I deactivate the plugin, will the data be restored to their original values?

No. Once the values have been anonymised, the attributes will remain anonymous. Deactivating the plugin will not change your values.

***

### What types of data can be anonymised?

Depending on the profile you choose or create, you can anonymise a whole list of data. They can be consulted in the procedure [available here](/doc-plugins/plugin-glpi-network/anonymize)

***

### How can I anonymise some information and keep others on the same profile?

An element has several fields. For example, a user has several fields such as surname, first name, telephone number, address, etc. For each field, you can decide to :

* Keep the value,
* delete the value,
* replace with a fixed value,
* replace with a standard random value,
* replace with a realistic random value.

***

### How do I anonymise a field that is not present in the selected profile?

In the profile concerned, the option **`attributes to be searched for and replaced throughout the database`** is available. For example, if you select **`email`**, all the email fields in the entire database will be replaced.

***

### Why hasn't my profile been applied?

Check that the fields in your profile have a value other than **`keep`** so that anaonymise can modify the desired fields.

***

### How can I generate an anonymized SQL dump using the default profiles without altering the database?

You can generate an anonymized SQL dump using the default profiles with the following command:

**`plugins:anonymize:sqldump > /path/to/dump.sql`**

Replace `/path/to/dump.sql` with the destination file path where you want to save the anonymized dump. This command ensures that the original database remains unchanged.


# Approval by mail

***

### How do I install mail approval?

You'll find a [procedure ](/doc-plugins/plugin-glpi-network/approvalbymail)to help you use the plugin.

***

### Can I customise the validation notification?

It is possible to modify the notification via **`setup`** > **`Notifications`** **`Notification templates`** > **`tickets validation`**> **`template translations`**

***

### Is it possible to validate a request that has been cancelled using the same link?

No, this is not possible, an error message will prevent you from doing so. You will have to recreate a validation request from the ticket.

***

### Why hasn't the recipient received the approval email?

This may be due to several parameters:

* Check that your [SMTP](/tutorials/notifications/setup_notifications) is correctly configured,
* Check that the [cron ](/documentation/modules/configuration/crontasks)on your server (on-premise only) is active,
* Check that the automatic action responsible for sending emails is correctly configured (**`setup`** >**`automatic actions`** > **`queuednotification`**).
* Check that there are no items in your notification queue (**`administration`** >**`notification queue`**)
* Check that the recipient has an email address

***

### Which tags are added by email approval?

The tags are available from **`Setup`** > **`Notifications`** **`Notification templates`** >**`tickets validation`**> **`template translations`**. **`##ticket.satisfaction.answer.1##`** URL to use to rate 1 star out of 5\
**`##ticket.satisfaction.answer.2##`** URL to use to rate 2 star out of 5\
**`##ticket.satisfaction.answer.3##`** URL to use to rate 3 star out of 5\
**`##ticket.satisfaction.answer.4##`** URL to use to rate 4 star out of 5\
**`##ticket.satisfaction.answer.5##`** URL to use to rate 5 star out of 5\
**`##ticket.satisfaction.answer.comment##`** URL to use to rate with a comment\
**`##ticket.solution.accept.url##`** URL to use to accept solution\
**`##ticket.solution.reject.url##`** URL to use to reject solution\
**`##ticket.validation.accept.url##`** URL to use to accept approval request\
**`##ticket.validation.reject.url##`** URL to use to reject approval request<br>


# Authentication and SSO

***

### How do I setup Oauth SSO with Apple?

To use SSO with Apple from GLPI, you can follow this [procedure](/doc-plugins/plugin-glpi-network/oauthsso). An access to the Apple developer console is required. You will also need to download the Oauth SSO plugin available on the marketplace.&#x20;

***

### How do I setup Oauth SSO with Entra?

To use SSO with Entra from GLPI, you can follow this [procedure](/doc-plugins/plugin-glpi-network/oauthsso#entra). An access to the Microsoft 365 Tenant is required. You will also need to download the Oauth SSO plugin available on the marketplace.

***

### How do I setup Oauth SSO with OKTA?

To use SSO with OKTA from GLPI, you can follow this [procedure ](/doc-plugins/plugin-glpi-network/oauthsso#okta). You will need admin access to OKTA. You will also need to download the Oauth SSO plugin available on the marketplace.

***

### How do I configure OAuth SSO with Google?

To use SSO with Google from GLPI, you can follow this [procedure ](/doc-plugins/plugin-glpi-network/oauthsso#google)You will need admin access to your Google Tenant. You will also need to download the OAuth SSO plugin available on the marketplace

***

### How do I setup Oauth SSO with Keycloak?

To use SSO with Keycloak from GLPI, you can follow this [procedure ](/doc-plugins/plugin-glpi-network/oauthsso#keycloak)You will need admin access to Keycloak. You will also need to download the Oauth SSO plugin available on the marketplace.

***

### Why doesn't Oauth SSO work/no longer?

There are several possible reasons for this problem:

* the secret has expired,
* the password for the account obtaining SSO authorization has expired,
* you have requested a URL change and the provider-side application has not been modified.

To check what's causing the problem, you can activate the debug mode, which will point you in the right direction. You can follow this [procedure](/tutorials/authentication/activate_sso) to help with Setup

***

### Can I merge my AD and SSO users?

Yes, under certain conditions. It is possible in **`administration`** > **`authentication`** > **`Other authentication methods`** to set the option **`remove the domain of logins like login@domain`** to **`Yes`**. This action carries a risk depending on how your SSO application is set up on the provider side.

!!! Danger **If you allow SSO access to external tenants**, it is possible that identity theft could occur. For example, I log on with <john.doe@mondomaine.com>. Generally speaking, you can't have 2 identicals logins on the same tenant. If you have a homonym in the company, the logins will be different. On the other hand, if a namesake from outside the tenant, such as <john.doe@gmail.com>, logs in, he or she will be able to impersonate you. This option should therefore be limited to SSO applications that use a single tenant.

***

### Which providers can I use with SSO?

Here is the list of providers currently available:

* <img src="/files/DjRijhcwavyEoI4Q2WwO" alt="Alt text" data-size="line"> **Amazon**,
* <img src="/files/XSnz5pNXgw6gl7L490IQ" alt="Alt text" data-size="line"> **Microsoft Entra**,
* <img src="/files/JWyHn4tSEtaZRLllN369" alt="Alt text" data-size="line">    **Facebook**,
* <img src="/files/uq50kXDtnmtNW1X65hb8" alt="Alt text" data-size="line">  **Github**,
* <img src="/files/WArsqECDDHX5mm7WFBeR" alt="Alt text" data-size="line">  **Gitlab**,
* ![Alt text](/files/qF8e9RD5l1sqrThJlihD)  **Google**,
* <img src="/files/dP5UklP7f2aI7NOcqOLo" alt="Alt text" data-size="line">  **Keycloak**,
* <img src="/files/xG19jsN6olsL0ysDDYp4" alt="Alt text" data-size="line">  **OKTA**
* <img src="/files/amAv34a0kfhklYudysn9" alt="" data-size="line">   **Apple**
* <img src="/files/W93hmdBfayz77YrWSMn9" alt="" data-size="line"> **OpenID connect**

***

### Can I display SSO authentication only on the home page?

Yes. From your SSO application, click on **`setup`** at the top of the screen. Then click on **`hide standard login form`**. It will still be possible to connect with an internal account by clicking on **`standard login`**.

***

### Why do I get a message telling me my password is empty?

This can happen when you use V2 of the Oauth SSO plugin. Setting up **`claims`** and **`API permissions`** is necessary for the plugin to work properly. You can follow this [article](https://glpi-plugins.readthedocs.io/en/latest/oauthsso/entra.html#claims) to set up your application.

***

### Why do I get an error message telling me that I don't have access rights to the application?

This happens when the authorisation rules have not been set up. In fact, once authentication has been successfully completed, GLPI checks that you have an assigned authorisation. GLPI also checks that a rule has been set up to assign you one automatically. If this is not the case, access to GLPI will be denied. To set up these authorisation rules, please refer to this [article](https://glpi-plugins.readthedocs.io/en/latest/oauthsso/index.html) to help you configure them.

***

### Why are some user record fields overwritten after authentication with OAuth SSO?

This can happen if your OAuth SSO authentication source is also the provisioning source. If the option **`Fetch information from user profile`** (available from **`Setup`** > **`Oauth SSO applications`**) is set to **`No`**, Oauth SSO will not retrieve information from user records. If you wish to retrieve user information, change this option to **`Yes`** and make sure that the fields in **`Setup`** > **`Authentifcation`** > **`Other authentication methods`** and the claims of your OAuth SSO application are filled in (more information [here](https://glpi-plugins.readthedocs.io/en/latest/oauthsso/index.html)).

If, on the other hand, you have an external provisioning source such as SCIM, and the **`Fetch information from user profile`** option is set to **`Yes`**, OAuth SSO will overwrite the current information and replace it with the information entered in **`Setup`** > **`Authentication`** > **`Other authentication methods`**. We therefore recommend that you set this option to **`No`** if you have an external provider (more information [here](https://glpi-plugins.readthedocs.io/en/latest/oauthsso/index.html)).

***

### Does SSO enable provisioning?

No, SSO is only a means of connection and does not provision users upstream. To do this, you need to use the [SCIM plugin](/doc-plugins/plugin-glpi-network/scim)

***

### How do I apply rules to an SSO connection?

To apply rules to an SSO connection, you need to choose one of the following criteria:

* **`Authentication type is External Authentications`**

or

* **`Email contains @mydomain.com`**

***

### What is the OIDC role mapping configuration?

\
This option allows you to map a value from a claim named **roles** in Entra to a GLPI profile and assign it to a user via an **authorization assignment rule**. It is therefore possible to automatically assign a profile to a user based on the role assigned to them.

***


# Branding

***

{% embed url="<https://www.youtube.com/watch?v=vLQN2chltzQ>" %}

***

### How do I set up branding?

You can consult the [procedure ](/doc-plugins/plugin-glpi-network/branding)to help you customise your instance.

***

### How do I customise my instance's logo?

You can do this by downloading the **`Branding`** plugin (available on Cloud instances or with a "basic" subscription).

***

### What customisation options are available with branding?

With this plugin, you can change :

* The logo in the top left corner,
* the logo at the top left corner (collapsed sidebar),
* the browser tab logo (favicon),
* the logo on the login page,
* the login page background.

You can follow[ this article](/tutorials/my-instance/custom_instance)  to help you to customize your logo.

***

### What is the recommended size for images?

* **Top Left corner logo** - This can be changed according to the desired entity It is the logo you see when your GLPI page is opened and the left sidebar is expanded

  Default recommended size: **`100x55 pixels`**
* **Lop Left corner logo** (collapsed sidebar) - This can be changed according to the desired entity It is the logo you see when your GLPI page is opened and the left sidebar is collapsed.

  Default recommended size **`40x40 pixels`**
* **Favicon** It is the logo you see next to the page title at the beginning of your browser’s the tab.

  Default recommended size: **`16x16 or 32x32 pixels`**
* **Login page logo** It is the logo you see before you login. It appears with the fields to fill with your username and password

  Default recommended size: **`220x130 pixels`**
* **Login page background** It is the image you can add as a background at the login page.

  Default recommended size: **`It depends on the usual size of your screens`**. The bigger, the better. (Make sure not to surpass the maximum upload limit for files)

***

### Can the GLPI theme be customized?

Yes. **With GLPI 11 only**, you can modify the GLPI color palette from **`Tools`** > **`Custom Palettes`**. This allows you to change, for example, the colors of buttons, clickable links, text, and icons in the GLPI menu (on the left), etc.

***

### Can the custom palette be enforced for users?

Yes, with the Force Custom Palette option, all users who have customized their theme in their preferences will have your custom palette applied.

***

### Can a palette be customized for each entity?

Yes, simply create a custom palette and select it from **`Entity`** > ***My\_entity*** > **`Branding`** > **`Custom Palette`**

***


# Carbon

### How do I install the Carbon plugin?

A procedure is [available here](/doc-plugins/plugins-glpi/carbon) to help you set up the plugin.

***

### What is the functionality of the Carbon plugin?

* Collect carbon intensity of electricity from various sources RTE (France)  Electricity Map (most countries and regions of the whole world)
* Supports constant carbon intensity for the following regions Quebec
* Fallbacks to yearly world carbon intensity if no data is available for the region of an asset
* Estimate consumed energy and carbon emission of assets
* Show results as charts

***

### What are the recommendations for installing carbon?

It is recommended to set up Boavitza using Docker as described in the README file of the project <https://github.com/Boavizta/boaviztapi>

You can also check that all the data required for the plugin to function properly has been entered in **`Assets > Computer > My computer > Environmental impact tab`**.

<figure><img src="/files/QglNcE3CQUrwtxyJpAa5" alt=""><figcaption></figcaption></figure>

***

### Why does my information seem inconsistent or doesn't appear?

In order for the plugin to work properly, certain specific recommendations are necessary. \
Find the [list here](/doc-plugins/plugins-glpi/carbon#recommmendations)

***

### What is a usage profile?

The usage profile (`Setup > Dropdowns > GLPI Carbon > Computer usage profiles`) allows you to specify times and days when an asset will be in operation. This can vary from machine to machine, so you can specify a different profile for each asset.

***

### Why don't monitors and network hardware have a usage profile?

* **Monitor**: the monitor is attached to a computer and will therefore be linked to the computer's profile.
* **Network device**: it is assumed that network hardware does not require shutdown, and is therefore switched on 24/7.

***

### What do Embodied impact data correspond to?

In the life cycle of an asset, we can measure the environmental impact associated with its manufacture/destruction/recycling

***

### What do the acronyms used in carbon?

* **gSbeq:** these are grams of antimony equivalent, used to measure the depletion of abiotic resources (rare earths, ores, etc.)
* **MWh**: megawatt-hour, It represents the total quantity of energy produced or consumed over a period of time (in this case 1 hour)
* **tCO₂eq :** accounting for greenhouse gas emissions


# Centreon

***

### How do I install the Centreon plugin?

A procedure is [available here](/doc-plugins/plugins-glpi/centreon) to help you set up the plugin.

***

### What is the functionality of the Centreon plugin?

Centreon allows you to link your Centreon instance to GLPI via an API, so that you can keep an eye on the equipment in your infrastructure.

***

### Where can we find Centreon information from the assets?

Centreon supervision has a dedicated tab in each element of the fleet. For example, for a computer, go to **`Assets`** > **`Computers`** and select the appropriate computer. In the **`Centreon`** tab, the supervision of the computer will appear:

![alt text](/files/yx42xKiwvjWtdvl28eOk)

***

### Can I run a live check to get refined information?

Yes. For example, for a computer, go to **`Assets`** > **`Computers`** and select the computer you want. In the **`Centreon`** tab, click on **`Check`** to perform a new on-demand check.

***

### Can I obtain information directly from the global (or custom) view?

Yes. You can add information about the status of the equipment (available or not). Other information is not yet visible in this view.

***

### Can I see supervision information on a dashboard?

No. At present, this is not possible.

***

### Connection fails when registering API

You may get a message `Client error: POST http://mon_URL/centreon/api/login resulted in a 404 Not Found`. This message usually appears when the API URL is incorrect. Remember to check :

* The URL of your API (which should look like <https://mon\\_URL:443/centreon/api/latest/> or <https://mon\\_URL:443/centreon/api/vxx.xx/>)
* That the version of your Centreon appears in your URL, check that an update has not been made and update the URL of your API if necessary.
* That your Centreon can be reached
* That the listening port is the right one

You can refer to the official [Centreon](https://docs.centreon.com/docs/api/rest-api-v1/) documentation if necessary.


# Cloud Inventory

***

### &#x20;**What are the features of Cloud Inventory?**

**CloudInventory** allows you to synchronize cloud resources from multiple providers directly into GLPI, providing a centralized view of your infrastructure, regardless of the platform.

* Real-time discovery
* Scheduled synchronization via cron
* Manual synchronization (one-shot)
* Complete view of your cloud instances thanks to CloudInstance
* Possible connection with dynamic inventory
* Visualization of API data
* Dashboard with overview
* Integration with asset rules
* Rights management for precise control

***

### **How do I install and configure Cloud Inventory?**

A procedure is [available here](/doc-plugins/plugin-glpi-network/cloudinventory) to guide you through the implementation of Cloud Inventory.

***

### **Which providers and assets are supported?**

* **OVHcloud**
  * Public Cloud Instances
  * VPS (Virtual Private Servers)
  * Dedicated Servers (Bare Metal)
* **Scaleway**
  * Compute Instances (Virtual Machines)
  * Bare Metal Servers
  * Apple Silicon Instances
* **Amazon Web Services (AWS)**
  * EC2 Instances (Elastic Compute Cloud)
* **Microsoft Azure**
  * Virtual Machines
* **Google Cloud Platform (GCP)**
  * Google Compute Engine (Virtual Machines)
* **Alibaba Cloud**
  * Elastic Compute Service (ECS)

***

### **How do I retrieve my provider's credentials?**

This depends on your provider. We invite you to consult the setup [procedure ](/doc-plugins/plugin-glpi-network/cloudinventory#providers-credentials)for more information on how to retrieve your provider's credentials.

***

### **How to run a discovery?**

Once your provider is added and configured, you will have the option to manually run a discovery. It is also possible to set up a cron job to enable automatic discovery.

***

### **What tasks are available?**

Several tasks are available from GLPI to automatically synchronize your Cloud instances. For each provider, there are one or more dedicated tasks. These tasks are available. Go to **`Setup`** > **`Automatic Actions`**, enter **`Cloud`** in the search box to display all actions related to Cloud Inventory.

***

### **How does the search work?**

From a GLPI asset, in the search box, you can filter the search by Cloud Inventory criteria (instance name, instance ID, etc.).

***

### **How do the dashboards work?**

A dashboard is available by default to display useful information updated in real time. It is of course possible to modify the table or add new ones. Go to **`Administration`** > **`Cloud inventory`**.

***

### **Can asset rules be linked to CloudInventory?**

It is entirely possible to link rules to your Cloud instances. From **`Administration`** > **`Rules`** > **`Business rules for hardware`**, a list of Cloud Inventory-specific rules is available to simplify your automations.


# Collaborative tools

***

### How do I add a webhook?

A procedure is [available here](/doc-plugins/plugin-glpi-network/collaborative-tools) to help you.

***

### What is a Webhook?

A webhook can send notifications to an instant messenger. You can then follow the arrival of tickets via this channel.

***

### Which messaging services are supported?

The messsageries supported are :

* <img src="/files/XIMHG3OmSDOtWzVSm3dr" alt="Alt text" data-size="line"> **Mattermost**,
* <img src="/files/ZMcFpSK1J0DzoaNrgN7d" alt="Alt text" data-size="line"> **Microsoft Teams**,
* <img src="/files/SOv0eg7cmKeGbxNqeJAQ" alt="Alt text" data-size="line"> **Rocket.Chat**,
* <img src="/files/Z2pEuTCkC3sDxidhRrY1" alt="Alt text" data-size="line"> **Slack**,
* <img src="/files/jcXISCRXwmiC1c9wkrDM" alt="Alt text" data-size="line"> **Telegram**.

***

### Why am I not receiving the notification in the desired channel?

This may be due to several factors:

* Check that your application is correctly configured on the provider side
* Check in the recipient tab of each notification (new ticket, new follow-up, etc.) that your webhook is present.
* Check that there are no items in your queue

***

### Can I customise webhook notifications?

Yes, in **`setup`** > **`notifications`** > **`notification templates`**. Click on add and create your template. Then in **`setup`** > **`notifications`** > **`notifications`**, choose which notification you want to associate your new template with. In the template tab, click on **`add a template`** and select the template you created earlier.

***

### Why am I getting an error message with Power Automate/Teams?

When copying the URL from Microsoft, port `:443` is often included. We recommend removing this port and testing your webhook again.


# Credit

***

### How do I install and configure credit?

This [procedure ](/doc-plugins/plugins-glpi/credit)will help you set up credit.

***

### What is Credit used for?

Credit allows you to declare and monitor your customers' credit consumption. You can create credit books to be deducted according to your needs (monitoring, solutions, tasks).

***

### Can I delete credit that has already been deducted?

Yes, simply go to the relevant ticket and delete the credit you wish to delete. It will be reinstated in the credit book.

***

### Can I adjust a credit after it has been deducted?

Yes, you can adjust the number of credits even after the ticket has been closed. All you have to do is go to the ticket concerned and from the **`credit`** tab, increase or decrease the number of credits.

***

### Where can I find my credits?

Credits can be viewed from the entity on which they were created.

***

### Can I prohibit or authorise over-consumption?

Yes, you just need to indicate this in the corresponding field when you create the credit (which can be modified later if necessary).

***

### Can I set an expiry date?

Yes, you just need to enter it in the relevant field when you create the credit (it can be changed later if required).

***

### What types of action can be submitted for credit?

Credit can be given for tickets on the following actions:

* Follow-up
* Solution
* Tasks

***

### Can recurring tickets be credited?

No, only single tickets can be credited, as human action is required to settle them.


# Data Injection

***

### How do I set up **`Data Injection`** ?

A [procedure ](/doc-plugins/plugins-glpi/datainjection)is available to help you set up the plugin.

***

### What are the features of **`Data Injection`** ?

This plugin allows you to import data from a **`CSV`** file. For example, you can :

* import machines on delivery (electronic delivery note in CSV)
* import additional data
* import equipment
* migrate from another fleet management tool

***

### What types of data can I import?

A lot of data can be imported.

<details>

<summary><strong>Here is an exhaustive list:</strong></summary>

* **`Appliances`**
* **`Budgets`**
* **`Cartridge models`**
* **`Case types`**
* **`Cases`**
* **`Certifcates`**
* **`Computer models`**
* **`Computer types`**
* **`Computers`**
* **`Consumable models`**
* **`Contact types`**
* **`Contacts`**
* **`Controllers`**
* **`Database instances`**
* **`Database`**
* **`Devices`**
* **`Devices types`**
* **`Documents types`**
* **`Domains`**
* **`Drives`**
* **`Editions`**
* **`Entities`**
* **`File systems`**
* **`Followup templates`**
* **`Groups`**
* **`Hard drives`**
* **`ITIL categories`**
* **`Interface types (Hard drive...)`**
* **`Kernel versions`**
* **`Kernels`**
* **`Knowledge base`**
* **`Knowledge base categories`**
* **`Liences types`**
* **`Licences`**
* **`Locations`**
* **`Manufacturers`**
* **`Memories`**
* **`Memory types`**
* **`Monitor types`**
* **`Monitor models`**
* **`Monitors`**
* **`Monitors types`**
* **`Network cards`**
* **`Network devices`**
* **`Network interfaces`**
* **`Networking equipment models`**
* **`Networking equipment types`**
* **`Network`**
* **`Operating system`**
* **`Peripheral models`**
* **`Phone models`**
* **`Phone power supply types`**
* **`Phone types`**
* **`Phones`**
* **`Printer models`**
* **`Printer types`**
* **`Printers`**
* **`Processors`**
* **`Profiles`**
* **`Request sources`**
* **`Service packs`**
* **`Sockets`**
* **`Software`**
* **`Solution templates`**
* **`Solution types`**
* **`States of the virtual machine`**
* **`Statuses of items`**
* **`Suppliers`**
* **`System boards`**
* **`Task caterories`**
* **`Task templates`**
* **`Third party types`**
* **`Update Sources`**
* **`Users`**
* **`VLANs`**
* **`Versions`**
* **`Versions of the operating system`**
* **`Virtualization models`**
* **`Virtualzation systems`**

</details>


# Escalade

***

### How do I set up escalade?

A [procedure ](/doc-plugins/plugins-glpi/escalade)is available to guide you through setting up the plugin.

***

### Why do I only see groups from escalade and not technicians?

The Escalade plugin aims to simplify the ticket escalation process. It adds a graphical history for affected groups. Only groups are affected by the escalation plugin.

***

### Why do some of the fields I've set up not work?

This may be due to other installed plugins such as "behaviours". Deactivate this plugin to check that one doesn't interfere with the behaviour of the other.

***

### Can I delete old groups when adding a new one?

Yes, this is possible via the plugin settings **`setup`** > **`plugins`** > **`escalade`** >

***

### Can I keep a history of my groups when climbing?

Yes, if you have chosen to delete the old groups when adding a new one, it is possible to keep a visual history of the different groups that have been assigned to the ticket. This is done from the plugin **`setup`** > **`plugins`** > **`escalade`** >

***

### Can the ticket be reassigned to the initial group?

Yes, if you have chosen to delete the old groups from the addition of a new one, it is possible to reassign **a ticket that has been resolved** so that it is automatically forwarded to the intial group. (In the case of an N1 and N2 technical service relationship, for example. The N2 handles the ticket and the N1 takes care of getting back to the customer once the ticket has been resolved and retransmitted in its workflow).

***

### Can I delete technicians during an escalation?

Yes, this can be set from the plugin **`setup`** > **`plugins`** > **`escalade`** >

***

### Can the technician's group be assigned when it is assigned unitarily?

Yes, this can be set from the plugin **`setup`** > **`plugins`** > **`escalade`** > There are several possibilities:

* when creating and/or modifying a ticket
* Take the technician's 1st group or last group

***

### Can I prevent people from deleting a ticket?

Yes, this can be set from the plugin **`setup`** > **`plugins`** > **`escalade`** >

![Alt text](/files/oVJF4NixjyNtg7DNiAtz)

***

### Can we prohibit escalation to specific groups?

Yes, thanks to the group filter. You can also allow escalation from one group to another. The settings must be correct to ensure that the plugin works properly. Please refer to the [documentation ](/doc-plugins/plugins-glpi/escalade#setting-up-filtering)to ensure that the groups are configured correctly.


# Fields

***

### How do I set up **`additional fields`**?

A [procedure](/doc-plugins/plugins-glpi/fields) is available to help you set up the plugin

***

### What are additional fields used for?

Additional fields allows you to add tabs and fields to GLPI objects. For example, you can add a projector object which will be considered as a GLPI object and will be manageable like any other object in your fleet. You can also add a field to a GLPI object (for example, add an internal identifier field to a ticket form). It is also possible to add a field to an object's file, for example, add a floor field to an entity's address.

***

### What types of block can be created with **`additional fields`** ?

It is possible to add 3 types of element:

* **Add a tab**: Add a tab to the GLPI object record (for example, add a VIP Yes/No tab to a user record).
* **Insertion in the form (before save button)**: Add a new field at the end of the form. It must be completed by a user, technician, etc. before the object is saved (for example, adding an internal identifier field to a ticket).
* **Insertion in the form of a specific tab (before save button)**: addition of a new field in a specific tab of a GLPI object (for example, addition of a floor field in the address tab of an entity).

***

### Why doesn't the field I created appear?

This is usually because the field you created has not been authorised in the sub-entities. Check that the sub-entity box is ticked in the

![Alt text](/files/UpRM9DQCZhtzPCiJt0gi)

Also check that it is active.

***

### Why aren't the items in the drop-down list present?

There are 2 steps to setting up the drop-down list. First you need to create the additional field and then, once it has been saved, you need to create the items that will populate it. Once these items have been created, make sure that the sub-entity box is ticked for both the field AND the items it contains.

![Alt text](/files/UUiCL9w6K964BDhr1E3w)

![Alt text](/files/O8KcRFsDCC4G1Vj4KTwB)

If the field is dedicated to an entity, make sure you've created it in the right place. You can use the **`transfer list`** to move them if necessary

![Alt text](/files/NdbWH07P9vYAk6afKJQa)

***

### How do I add an **`associated element type`** to a block?

Once created, it is no longer possible to modify the associated element type. If you wish to add a new element type, you must either delete the current block and recreate it, or create a new one.

***

### Can I associate an element with several blocks?

No, this is not possible. If one of your blocks contains the **`computers`** element, you will not be able to recreate a block with this type of element. You will have to insert all the necessary fields from the block containing the computer element.

***

### What is the purpose of status overrides?

Status overrides are used to make a field mandatory or read-only depending on its status. For example, when a PC is in recycled status, we want the fields in the recycled tab to be mandatory. If it has another status, this field will not be mandatory.

***

### What types of elements can be added to a field?

You have several choices:

* Header (used to separate information so that it appears in the header of an element)
* Text (single line)
* Text (multiples lines)
* Rich text
* Number
* URL
* Dropdown
* Yes / No
* Date
* Date & time
* GLPI item
* Specific elements of any GLPI object (a computer, a user, a ticket, etc.)


# Formcreator

***

### How do I set up a form?

A [procedure ](/doc-plugins/plugins-glpi/formcreator)is available to help you set up your forms.

***

### Can I create public forms?

Public access to forms is set from the **`access types`** tab on the form.

***

### Can I restrict access to forms (to an entity, a profile, etc.)?

Access restriction is set from the **`access types`** tab from the form. It is possible to restrict access to groups, individuals and profiles. And more simply, to users authenticated on GLPI.

{% hint style="success" %}
**Restriction by entity**

&#x20;To restrict a form to an entity, you can either create the form in the corresponding entity, or create it in the root entity but specify a restriction with **`private access`** to the desired entity.
{% endhint %}

***

### Can I request validation of a form before sending it to support?

Forms have a **`validators`** tab. It is possible to request validation of the form from a group or a specific user.

***

### What types of questions are available in the forms?

There are many types of question. For example, you can use :

* Checkboxes,
* Radio buttons,
* Date fields
* Free fields,
* Value selection,
* GLPI objects.

This list is not exhaustive and many other options are possible. There are **25 possible types of questions** to ask your users.

***

### Can certain questions be hidden under certain conditions?

It is possible to hide or show questions according to certain criteria. This option is set in the **`questions`** tab of the form.

{% hint style="success" %}
**Example**&#x20;

Is your version of GLPI up to date ? If yes, hide the question "what is your current version". ![Alt text](/files/6JN6PLNnOVSZhoCbcuYo)
{% endhint %}

***

### Can an SLA be applied from a form?

An SLA can be applied via a form. You can do this by going to the **`target`** tab. You will be able to set up an SLA and/or OLA either via a template, a specific SLA or equal to a question asked in the form.

***

### Can I attach a document to a form?

With the question types, it is possible to ask a user to select a document in the form. The question is of the "GLPI object" type. All you have to do is select the type of object. You must ensure that the documents can be read by the entities concerned in **`management`** > **`documents`**.

***

### Is it possible to import FormCreator forms from one instance to another?

The import/export action is made to migrate data from a pre-production instance to a production one (implied rigorously identical). Importing a form from another instance that is not identical will fail or will be imported only partially.

***

### Why are there special characters in all or some of my tickets?

This can happen after a migration or update of GLPI (and/or the plugin). There is a command in the GLPI CLI to correct this anomaly. This is provided by the FormCreator plugin.

{% hint style="warning" %}
**Know before entering the order**

As a precaution, we **strongly recommend** that you perform a **backup** of your instance and database.\
We also invite you to implement this [patch](https://github.com/pluginsGLPI/formcreator/commit/2681eca61797615f9e07d808a7eb545a255af59b.diff). Here is the procedure to [apply a patch](/tutorials/procedures/appliquer_un_patch)
{% endhint %}

Command to enter from your GLPI file:\
**`php -d memory_limit=-1 bin/console plugins:formcreator:clean_tickets`**

***

## How to restrict GLPI object selection from a form

When you create a form, the requester can select a GLPI object (user, computer, etc.). You can restrict this selection to the user entity, the form entity or both.

**Explanation**:

* **User**: What the user can see depending on where he is positioned.
* **Form**: What the form can see from where it is positioned.
* **User and form**: Both cumulated.

<figure><img src="/files/R4fGoQY94LgIdWAOTD7T" alt=""><figcaption></figcaption></figure>


# GDPR Tools

***

{% embed url="<https://www.youtube.com/watch?v=g1biKO_Rzwo>" %}

***

### How do I install **`GDPR tools`**?

A [procedure ](/doc-plugins/plugin-glpi-network/gdpr)is available to help you install the plugin.

***

### What is the purpose of GDPR Tools?

RGPD Tools allows you to clean up information or delete users who are inactive in order to comply with the RGPD rule.

***

### What does inactive mean from the plugin's point of view?

***Inactive*** means all accounts marked **no** to **active**.

***

### What is the difference between **`clean`** and **`delete`**?

* **Clean** : the user's data is deleted and the user is moved to the recycle bin.
* **Deletion** : The user is permanently deleted, it does not go through the recycle bin.

{% hint style="danger" %}
**Warning**&#x20;

Deletion is definitive, the user cannot be recovered.
{% endhint %}

***

### Is a filter possible?

Yes, 3 options are available. You can delete or clean up :

* all inactive users,
* all inactive users with no ongoing tickets,
* all inactive users with no tickets.

***

### Why are users not being cleaned/deleted despite the plugin being configured?

The plugin can only work if the **`cleaninactiveuser`** automatic action is active and correctly configured. You can find it in ti-settings:**`configuration`** > **`automatic actions`**


# Generic objects

***

### How do I use object management?

A [procedure ](/doc-plugins/plugins-glpi/genericobject)is available to help you set up this plugin.

***

### What is the purpose of object management?

This plugin allows you to add new types of inventory objects, integrated into the GLPI framework.

***

### Can I integrate with other plugins?

Yes, several plugins can interact with object management:

* [Data injection](/doc-plugins/plugins-glpi/datainjection)
* [Order management](/doc-plugins/plugins-glpi/order)
* [Inventory number generation](https://github.com/pluginsGLPI/geninventorynumber)
* [Uninstall](/doc-plugins/plugins-glpi/uninstall)
* [Treeview](/doc-plugins/plugins-glpi/treeview)

***

### What types of fields can be added to the GLPI object created?

The object will appear like any other object in the park, so you have a wide choice of fields available. We invite you to consult the list [here](/doc-plugins/plugins-glpi/genericobject)

***

### Can I add fields to an element other than the park?

No, this is not possible. Only the park can benefit from additional objects. You can use the [additional fields](/doc-plugins/plugins-glpi/fields) plugin if you have other specific needs.

***

### Can additional fields be visible to everyone?

Yes. You can manage read, write, delete, etc. permissions for each field you add from check:**`administration`** > **`profiles`** , **`object management`** tab of the relevant profile.

***

### By which other GLPI elements can the additional field be visible?

The additional fields you create are visible to other GLPI objects:

* Use child entities
* Use Assistance
* Use Item in the dustbin
* Use Notes
* Use Historical
* Use Templates
* Use Financial and administratives information
* Use Contracts
* Use Documents
* Use Reservations
* Use Field unicity
* Use Global search
* Use Projects
* Using Network Connections
* Using Components
* Use Impact analysis

***

### Can I make an element created with the plugin reservable?

Yes. In the **`behaviour`** section of the plugin, you can tick the **`use reservations`** box. It will then be usable like any other element in your park.


# GLPI AI

***

### How to install GLPI AI?

A procedure is available [here ](/doc-plugins/plugin-glpi-network/glpiai)to help you set up GLPI AI

***

### What are the features of GLPI AI?

GLPI AI gives you the ability to summarize the timeline of a ticket. By clicking on **`summarize`** in a ticket, GLPI AI will be able to display the main steps of the ticket, the tasks carried out or to be carried out, in certain cases the customer's feelings.

***

### Do you need a paid OpenAI account to take advantage of GLPI AI?

No, but with the free version you will be limited to GPT-3.5 and a $5 credit will be posted to your account to use within a certain time frame. Once the credit has expired or been used, you will no longer be able to use GLPI AI to summarize tickets that have not yet been summarized. The paid version brings the possibility of using GPT-4.\
More information [here](https://platform.openai.com/account/limits)

***

### Can we summarize a ticket several times?

Yes. A refresh button is available to generate a new summary. Be careful, this enters a new count.

***

### Is the countdown started if GLPI AI summarizes a ticket that had already been summarized?

No. A cache exists to avoid a new count. On the other hand, if you click on **`refresh`**, a new summary will be executed and your credit will be calculated.

***

### Can I consult consumption from GLPI?

Yes. From **`Setup`** > **`General`**, **`GLPI AI`** tab, it is possible to see consumption in real time. You can also go to this [URL](https://platform.openai.com/usage)

![alt text](/files/ifJAnpmoww3CGv4HBIoF)

***

### Can we define a consumption limit

Yes. From **`Setup`** > **`General`**, **`GLPI AI`** tab, it is possible to modify the authorized credit in order to avoid overconsumption.

![alt text](/files/ifJAnpmoww3CGv4HBIoF)

***

### Can we restrict rights to GLPI AI?

Yes. From the **`Administration`** > **`Profiles`** tab, select the desired profile and activate/deactivate, from the **`GLPI tab AI`**, the ability to summarize tickets.

***

### Can we add a global context so that the answer is relevant when establishing the summary?

Yes. From **`Setup`** > **`Plugins`**, from the GLPI AI plugin, click > **`configure preferences`**, you can add context that will allow OPENAI to better understand how it should respond to your users.

***

### Can we add a global role?

Yes. From **`Setup`** > **`Plugins`**, from the GLPI AI plugin, click > **`configure preferences`**, you can add a role which will allow OPENAI to better understand its role and who it is addressing in order to express the most appropriate response.

***

### Can we define a default language for creating the summary?

Yes. From **`Setup`** > **`Plugins`**, from the GLPI AI plugin, click > **`configure preferences`**, select in which language the summary should be established.


# GLPI Inventory

### GLPI Inventory installer instructions?

A procedure is [available here](/doc-plugins/plugins-glpi/glpi-inventory) to help you configure GLPI Inventory.

***

### What are the features of GLPI Inventory?

With GLPI Inventory, you can access advanced tools to manage your network. List of available tools:

* Network Discovery
* Network Inventory (SNMP)
* Data Collection
* Package Deployment
* VMware host remote inventory

***

### What is the difference between "Network Discovery" and "Network Inventory"?

Discovery helps you identify the devices on your network. GLPI searches for responding IP addresses and adds them to your network inventory.

Network inventory uses the SNMP protocol to more precisely identify devices previously inventoried with network discovery.

***

### Why are my devices showing up in the "Ignored Devices" section?

Devices that are ignored are placed in this section when they are "quarantined" to avoid cluttering the IT infrastructure with unnecessary or erroneous data.

The devices that may be found here are most often:

* Virtual machines (for companies that do not wish to inventory physical hardware).
* Personal devices of users scanned at their homes while teleworking (personal internet boxes, home printers, etc.).
* IP phones or small, unmanaged switches discovered on the network but deemed irrelevant.

***

### My switch/router is correctly discovered, but the SNMP inventory is not reporting any ports. Why?

This problem generally occurs when the SNMP community is not properly configured. You can refer to this tutorial to guide you through configuring this task.

***

### What is the impact of the Network Discovery task on the load of my server and network?

Indeed, network discovery can impact network and/or server load if it is oversized. Furthermore, the more simultaneous threads you allow, the heavier the load will be on the network and your server. You can configure this data in **`Administration`** > **`GLPI Inventory`** > **`General`** > **`General Configuration`** > **`Network Inventory`**.

***

### Why do the GLPI agent logs tell me that the task is not supported?&#xD;

If you want the GLPI agent to be able to use the tasks (data collection, network inventory, network discovery, package deployment, remote inventory of SNMP hosts (VMware)), these tasks must have been enabled during the agent installation.

***

### What is the purpose of groups?

In GLPI Inventory, there are two types of groups:

* **Dynamic group**: This group is populated according to specific criteria (entity, location, OS, etc.) which can be combined. This group will be dynamically modified as the hardware evolves and according to changes in the criteria associated with it.
* **Static group**: Static groups consist of computers that you have manually configured.

When you create a task, you can deploy it to groups, making task management easier.

***

### How many agents can a task put into preparation before execution?&#x20;

When the **`Permit to re-prepare task after run`** option is enabled, GLPI puts the task into a waiting state before its next execution. A task cannot then exceed the limit of 500 agents.

***

### Can the 500-agents limit be bypassed when re-preparing tasks?&#x20;

To bypass this limitation, the concept of a preparation window must be used. Depending on how the automatic actions are launched, all the agents to be prepared will be prepared in batches of 500 per execution of the automatic action. To clarify, if the automatic agent preparation action named `taskscheduler` runs every minute, the task can only wake up a maximum of 500 x 60 = 30,000 agents in one hour (assuming no agent launches the task in the interval: if this is the case, the agents in question would be candidates for preparation again within the window).

***


# Holiday

***

### How do I use **`Holiday`**?

A [procedure ](/doc-plugins/plugin-glpi-network/holidays)is available to help you install and configure the plugin.

***

### What is the functionality of **`Holiday`**?

This plugin allows you to add public holidays from different countries so that they are visible in the calendar and thus manage employee schedules.

***

### How do I add public holidays to calendars?

You can add them [manually ](/documentation/modules/configuration/dropdowns/calendar)or use the [Holiday](/doc-plugins/plugin-glpi-network/holidays) plugin to add public holidays to your calendar.

***

### Is it possible to add public holidays from several countries?

It is possible to accumulate holidays from several countries either per entity or on the same entity.

***

### Which countries are covered?

<details>

<summary><strong>See the list of country</strong></summary>

* Argentina
* Australia
* Australia/AustralianCapitalTerritory
* Australia/NewSouthWales
* Australia/NorthernTerritory
* Australia/QueenIsland/Brisbane
* Australia/Queensland
* Australia/SouthAustralia
* Australia/Tasmania
* Australia/Tasmania/Centralnorth
* Australia/Tasmania/FlindersIsland
* Australia/Tasmania/KingIsland
* Australia/Tasmania/Northeast
* Australia/Tasmania/Northwest
* Australia/Tasmania/Northwest/CircularHead
* Australia/Tasmania/South
* Australia/Tasmania/South/Southeast
* Australia/Victoria
* Australia/WesternAustralia
* Austria
* Austria/Burgenland
* Austria/Carinthia
* Austria/LowerAutria
* Austria/Salzburg
* Austria/Styria
* Austria/Tryol
* Austria/UpperAustria
* Austria/Vienna
* Austria/Voralberg
* Belgium
* Bosnia
* Brazil
* Canada
* Canada/Alberta
* Canada/BritishColumbia
* Canada/Manitoba
* Canada/NewBrunswick
* Canada/NewfoundlandAndLabrator
* Canada/NorthwestTerritories
* Canada/NovaScotia
* Canada/Nunavut
* Canada/Ontario
* Canada/PrinceEdwardIsland
* Canada/Québec
* Canada/Saskatchewan
* Canada/Yukon
* Croatia
* Czech Republic
* Denmark
* Estonia
* Finland
* France
* France/BasRhin
* France/Moselle
* FranceHautRhin
* Georgia
* Germany
* Germany/BadenWurttenmberg
* Germany/Bavaria
* Germany/Berlin
* Germany/Brandenburg
* Germany/Bremen
* Germany/Hambourg
* Germany/Hesse
* Germany/LowerSaxony
* Germany/MecklenburgWesternPomrania
* Germany/NorthRhineWestphalia
* Germany/RhinelandPalatinate
* Germany/Saarland
* Germany/Saxony
* Germany/SaxonyAnhalt
* Germany/SchleswigHolstein
* Germany/Thuringia
* Greece
* Hungary
* Ireland
* Italy
* Japan
* Latvia
* Lithuani
* Luxembourg
* Netherlands
* New Zealand
* Norway
* Poland
* Portugal
* Romania
* Russia
* Slovakia
* South Africa
* SouthKorea
* Spain
* Spain/Andalusia
* Spain/Aragon
* Spain/Asturias
* Spain/BalearicIsland
* Spain/BasqueCountry
* Spain/Canaryislands
* Spain/Cantabria
* Spain/CastileAndLeon
* Spain/CastillaLaMancha
* Spain/Catalonia
* Spain/Ceuta
* Spain/CommunityofMadrid
* Spain/Extremadura
* Spain/Galicia
* Spain/LaRioja
* Spain/Melilla
* Spain/Navarre
* Spain/RegionofMurcia
* Spain/ValencianCommunity
* Sweden
* Switzerland
* Switzerland/Aargun
* Switzerland/AppenzellAusserrhoden
* Switzerland/Appenzelllnnerrhoden
* Switzerland/BaselStadt
* Switzerland/Bern
* Switzerland/Fribourg
* Switzerland/Geneva
* Switzerland/Glarus
* Switzerland/Grisons
* Switzerland/Jura
* Switzerland/Lucerne
* Switzerland/Neuchatel
* Switzerland/Nidwalden
* Switzerland/Obwalden
* Switzerland/Schaffhausen
* Switzerland/Schwyz
* Switzerland/Solothurn
* Switzerland/StGallen
* Switzerland/Thurgau
* Switzerland/Ticino
* Switzerland/Uri
* Switzerland/Valais
* Switzerland/Vaud
* Switzerland/Zug
* Switzerland/Zurich
* Turkey
* USA
* Ukraine
* United Kingdom/England
* United Kingdom/NorthernIreland
* United Kingdom/Scotland
* United Kingdom/Wales

</details>

***

### Why have the holidays I had set up disappeared?

When you add new holiday days, if the box **`clean all previous holidays`** is ticked, then all the days present **`setup`** > **`dropdown`** > **`calendar`** > **`close periods`** will be deleted.


# News - Alerts

***

### How do I set up **`Alerts`**?

A procedure is [available](/doc-plugins/plugins-glpi/news) to help you set up **\`Alerts**.

***

### What is the purpose of **`Alerts`** ?

Alerts allow you to highlight information for users or groups of users. This alert is designed to accept relatively short messages so that the message remains clearly visible.

***

### Where are alerts visible?

Depending on your choice, alerts can be displayed on :

* the login page (before logging in)
* the central page (GLPI main page - Standard interface and simplified)
* the support page (main page in simplified interface)
* the ticket opening page (standard and simplified interface)

***

### Can I schedule alerts?

Yes. In the plugin settings, you can specify a start and end date for visibility.

***

### Can I set a colour code?

Yes. In the plugin settings, you can choose to modify :

* the background colour,
* the text colour
* the colour of the emphasis (left bar on the alert)

![Alt text](/files/eCDBJ4mX7ImvcF7HI5Hp)

***

### How do I change the text size?

From the plugin configuration, you can adjust the text size using the rich text bar. You can modify your text by adding code, titles, quotes, etc.

***

### How do you highlight the type of alert so that it is easily identifiable by the user?

In addition to the colour of the alert, you can add an [**icon** ](#user-content-fn-1)[^1] which may help the user to know what type of alert it is.

***

### Can I authorise the user to close the alert?

Yes. In the plugin settings, you can choose whether or not to allow the user to close the alert. It will reappear at the next connection.

***

### Can alerts be set up more easily?

Yes, templates are available to simplify setting up alerts. Depending on the template, the icon, text colour, background, emphasis and size of the alert will be prepared.

***

### Why don't users see the alerts?

If your alert is not visible, this may be due to several parameters:

* Checking whether it is active
* Check whether visibility dates have been set
* Check that the display on the pages is correctly configured
* Check that the targets are present

[^1]: ![](/files/EWchtvSwUHgz90YAzbPX)


# OAuth IMAP

***

### How do I install OAuth IMAP?

You will find a [procedure](/doc-plugins/plugins-glpi/oauthimap) to help you install and configure the plugin.

***

### What are the features of OAuth IMAP?

OAuth IMAP allows one of your tenant accounts to use IMAP services securely. With OAuth IMAP you can, for example, use the collector with a company mailbox.

***

### Is the MFA compatible with OAuth IMAP?

Yes, you can use OAuth IMAP with the MFA. You will be asked for 1st authentication when requesting **`creation of authorisation`**.

***

### I have a security policy requiring daily logon with dual authentication, does this also affect the account using OAuth IMAP?

The Oauth tokens for the collector, retrieved during authentication with Azure by the OauthIMAP plugin, are "offline" tokens that delegate authorisation to a third-party application (GLPI). These tokens provide a renewal code that will be used by the application to renew them automatically without user intervention. The daily re-authentication strategy only concerns 'online' authentication and only applies to services accessed directly by the user, for example via their Internet browser.

***

### I have a connection error, how can I fix it?

From **`setup`** > **`OAuth IMAP applications`**, tab **`OAuth authorisation`** click on **`diagnose`**. In the window that opens, increase the **`timeout`** to 15 (minimum). An error message will appear at the bottom of the log to guide you to the problem you are experiencing.

If you have changed the password for the account using IMAP services, remember to update the account from **`configuration`** > **`OAuth IMAP applications`**, tab **`OAuth authorisation`**, button **`update`**.

***

### Where are the application logs (on-premise only)?

If you have a problem, you can check the **`php-errors.log`** logs in the **`files/_log`** folder with the command (for example) `tail -f php-errors.log | grep "imap" -C5`

```
glpi_files/_log$ tail -f php-errors.log | grep "imap" -C5
[2024-01-18 16:20:04] glpiphplog.CRITICAL: *** Uncaught Exception Laminas\Mail\Storage\Exception\RuntimeException: cannot login, user or password wrong in /myinstancemondomaine.fr/marketplace/oauthimap/inc/imap/imapoauthstorage.class.php at line 76
 Backtrace :
...authimap/inc/mailcollectorfeature.class.php:101 GlpiPlugin\Oauthimap\Imap\ImapOauthStorage->__construct()
src/Toolbox.php:2222 GlpiPlugin\Oauthimap\MailCollectorFeature::GlpiPlugin\Oauthimap\{closure}()
src/MailCollector.php:1434 Toolbox::getMailServerStorageInstance()
src/MailCollector.php:708 MailCollector->connect()
src/MailCollector.php:1921 MailCollector->collect()
src/CronTask.php:1037 MailCollector::cronMailgate()
front/cron.php:87 CronTask::launch()
```

In this example, we can see that there is a problem with the user and/or the password.


# Order management

***

### How do I install and configure **`order management`** ?

A [procedure](/doc-plugins/plugins-glpi/order) is available to help you set up the plugin.

***

### What are the features of the **`order management`** plugin?

Order management allows you to :

* Define and manage a catalogue of product references
* Order management (with approval workflow)
* Budget management
* Management of invoices associated with orders

You'll be able to set up, track and manage your orders, receive materials and automatically integrate them into your inventory. You can also manage invoices and your satisfaction with the supplier linked to the order.

***

### Can the order be submitted for validation?

Yes, a **`validation circuit`** can be performed. The option must be ticked in the plugin settings and a recipient (user or group) must be entered in the order.

***

### Can I generate purchase orders?

Yes, once an order has been created, you can generate it in the purchase order tab as an **`.odt`** file.

***

### Can I enter a provisional delivery date?

Yes, you can specify a delivery date which will be displayed in red (by default) if it is exceeded.

***

### How can I integrate delivery directly into the park after receipt?

You can tick the **`enable automatic generation`** option in the plugin options. You can also activate this option individually when the order is received.

***

### Can I specify a default status when the material is delivered?

Yes. In the plugin options, a **`default status`** option allows you to define the status of items when they are integrated into the park. If you have not chosen automatic generation, you will be prompted to add a status for imported equipment.

***

### What status is available for orders?

| Status                       | Effect                                            |
| ---------------------------- | ------------------------------------------------- |
| **`Draft`**                  | Order initiated                                   |
| **`Requested for approval`** | Approval sent to default recipient set in         |
| **`Cancelled`**              | Order cancelled, status can no longer be modified |
| **`Validated`**              | Order validated                                   |
| **`In progress`**            | Validated order awaiting delivery                 |
| **`Delivered`**              | Partial or complete delivery                      |
| **`Paid`**                   | Order received, delivered and paid                |

***

### What equipment is available to order?

You can add a catalogue in which the product references you have created will be available. If the product you wish to add is not present in the catalogue, it will be possible to add them manually directly from the order.

***

### How do I manage budgets?

You can create a budget from **`management`** > **`budgets`**. Once the budget has been created, you can attach it to the order so that the amount is deducted from the budget once the order has been paid for.

***

### Is it possible to partially receive an order?

Yes, you can record and invoice only part of your order if it has been partially delivered. You will be able to accept the rest of your order when you receive the missing elements.

***

### Can I include delivery charges?

Yes, when you place your order, you can add a delivery charge and the associated VAT.

***

### Can I add discounts to my orders?

Yes. You can add either an overall discount to the order, or a discount per item when you include products in the order.


# Renamer

***

### How do I set up **`Renamer`** ?

You'll find a [procedure](/doc-plugins/plugin-glpi-network/renamestrings) that will walk you through installing and setting up the plugin

***

### What are the functionalities of **`Renamer`** ?

This plugin allows you to rename GLPI fields, labels, formulations, etc.

***

### What is an override?

Overrides allow you to replace the value of one field with another. For example, replace the field **\`\`computers`** with **`workstation\`**. It is possible to change a field, but also a sentence such as **"Remember to make a backup before transferring items"** by **"It is important to backup your items before transferring them"**.

***

### Why does my overload still appear even though it has been removed?

The overload may not be visible immediately. If this is your case :

* Remember to empty your browser's cache
* Delete the contents\*\* (not the folder) **`_cache`** of your GLPI instance (on-premise only)
* Check that your overchage is indicated as **`active`**.

***

### Why does my override still appear even though it has been deleted?

The override can continue to be visible because it is contained in the GLPI cache. **Deleting the contents** (not the folder) **`_cache`** should solve the problem.


# SCIM

***

###

{% embed url="<https://www.youtube.com/watch?t=&v=x8PXY1XOdvE>" %}

***

### How do I install and configure SCIM?

A [procedure](/doc-plugins/plugin-glpi-network/scim) is available to help you set up SCIM.

***

### What are the functionalities of SCIM?

This plugin let you provision your users and groups from an external identity provider using the [SCIM](https://en.wikipedia.org/wiki/System_for_Cross-domain_Identity_Management) protocol. The update from the directory to GLPI is done "just in time". Each modification is done on the fly, without any cron. GLPI is the service provider, and the directory is the identity provider.

***

### Why doesn't authentication work with Entra (Azure)?

Currently, Entra does not allow password synchronisation with SCIM. This prevents connection to GLPI. In order to solve the problem, you will need to install and configure [OAuth SSO](/doc-plugins/plugin-glpi-network/oauthsso) to allow authentication.


# More satisfaction

***

### How do I configure **`more satisfaction`** ?

You'll find a [procedure](/doc-plugins/plugin-glpi-network/moresatisfaction) for setting up a satisfaction survey.

***

### What are the features of **`more satisfaction`**?

Thanks to this plugin, you can add satisfaction surveys.

***

### Can I change the number of stars to be awarded when I send out the survey?

Yes, you can set the maximum number of stars (between 1 and 10) to suit your needs.

***

### Can we define a default number of stars when we send the survey?

Yes, you can decide the number of stars that will be preselected when the recipient receives their survey. For example, you could decide to pre-select 3 out of 5 stars.

***

### What type of questions can I set up?

You can set up :

* Yes/No
* Free text
* Rating (stars to be awarded)

***

### How many questions can I set up?

There is no maximum number of questions, you can set as many as you like.

***

### Can I set up reminders for unanswered surveys ?

Yes. From the plugin, a **`reminder`** tab is available to set the number of reminders and the interval between each reminder.

***

### Can I add satisfaction surveys?

You can add satisfaction surveys via the **`more satisfaction`** plugin available in the marketplace.

***

### Why are the satisfaction survey reminders not being sent?

First, check that the reminders have been set up correctly in the **`reminders`** tab of your satisfaction survey. Also check that the **`SatisfactionReminder`** automatic actions is correctly configured. This [procedure](/doc-plugins/plugin-glpi-network/moresatisfaction) should help you set up your satisfaction surveys correctly.

***

### How can I view survey results?

From the plugin, you can view/edit the surveys. In the **`results`** tab, you can view the answers that have been given.


# Splitcat

***

### How do I install Splitact?

A [procedure](/doc-plugins/plugin-glpi-network/splitcat) is available to help you install **`splitcat`**.

***

### What is splicat used for?

Splitcat allows you to split categories in the support area. Rather than choosing from a long list of categories, each parent category will allow you to choose from its children.

<div align="left"><img src="/files/dQeKmX7Qybb4tK0Kx5dA" alt="Alt text"></div>

***

### Are there any special settings to be made?

Splitcat does not require any special settings, it works as soon as it is installed and activated.


# Tag

***

{% embed url="<https://www.youtube.com/watch?t=&v=r3Ydl6H1Gvg>" %}

***

### How do I install **`tag`** ?

A [procedure](/doc-plugins/plugins-glpi/tag) is available to guide you through the installation and configuration of **`tag`**

***

### What are the functionalities of **`tag`** ?

Tag gives you the ability to add a tag to a GLPI object. You can search for this tag, display a report of associated objects in the administration, or create different administration rules.

You can :

* Add tags on every GLPI item type (which extends CommonDBTM)
* Add tags on GLPI inventory Task (plugin GLPI Inventory)
* Add tags on Appliance (plugin appliance)
* Manage tag from labels
* Tags are displayed and editable in the object form header (just below title)
* You can search for tags and display them in objects lists
* You can display a report from associated objects in administration

***

### Why isn't my tag visible in all categories (tickets, computers, etc.)?

When you create your tag, you can decide in which GLPI object(s) it will be visible. You can therefore create a tag for the computer object only or make it visible for tickets as well.

***

### Why is my tag not visible in my entity?

When creating your tag, if you do not check the **`sub-entity`** box, it will only be visible in the entity where it was created.


# Translate

***

{% embed url="<https://www.youtube.com/watch?t=&v=IvoI9FCR6a8>" %}

***

### How do I set up **`Translation`** ?

You'll find a [procedure](/doc-plugins/plugin-glpi-network/translate) to help you configure and set up the plugin

***

### What is the purpose of **`Translation`** ?

The **Translate** plugin for GLPI is a handy tool designed to enhance multilingual communication within your GLPI. Leveraging DeepL's translation technology, this plugin provides a simple and effective solution for translating elements in the ticket timeline, fostering seamless collaboration within international teams. Whether you're managing projects with teams scattered worldwide or simply aiming to facilitate communication with users in different languages, the Translate plugin streamlines the translation process within your GLPI instance.

***

### What are the features of **`Translate`** ?

* Translate individual timeline elements
* Translate the entire ticket timeline
* Translate a follow-up during composition
* Restrict translation to specific languages
* Restrict translation to specific types of timeline elements
* API usage notification
* Translation rights management

***

### What are the prerequisites for **`Translate`** ?

* GLPI version 10.0.10 or higher
* DeepL API token

***

### Why doesn't the translation button appear?

If the translation menu does not appear, it may be due to various reasons:

* the plugin is not configured
* you do not have the right to translate
* the element you want to translate is not allowed in the configuration

***

### What languages are allowed?

The authorised languages are visible from **`setup`** > **`general`** > **`translate`** in the **`target languages authorised for all users`** field.

***

### Can we allow or disallow certain languages?

Yes. From **`setup`** > **`general`** > **`translate`** in the field **`target languages allowed for all users`**, you can select the languages that will be allowed.

***

### Which elements are translatable?

The elements that can be translated are :

* Ticket
* Follow-up
* Ticket task
* Solution
* Validation

You can prohibit or authorise those that interest you

***

### Can I be notified when the plugin is in use?

Yes. It is possible to configure notifications from **`setup`** > **`general`** > **`translate`** in the **`use threshold`** field, a drop-down list is available to allow you notifications as soon as a threshold is exceeded. You can specify several thresholds.

***

### Can we authorise/prohibit the threshold being exceeded?

Yes, in **pay version only**. It is possible to limit exceedance either by :

* ***Characters***: limit to the number of characters specified
* ***Cost***: limits use to a predefined cost

***

### Can I see my usage in real time?

Yes, a usage gauge is available from **`setup`** > **`general`** > **`translate`** indicating the percentage of usage and the number of words translated.

***

### How do I allow/prohibit translation of the text?

It is possible to allow/deny translation to the editorial staff from the profile in question **`adminsitration`** > **`profiles`** > **`translate`**.

***

### How do I allow/disallow items to be translated?

It is possible to allow/disallow the translation of items from the profile in question **`adminsitration`** > **`profiles`** > **`translate`**.

***

### If I translate a follow-up and my colleague also translates it, does this count as part of the package?

No. Translations are saved in the database to reduce character consumption and improve plugin performance.


# Uninstall

***

### How do I install **`Item's Lifecycle`**?

A [procedure](/doc-plugins/plugins-glpi/uninstall) is available to help you install the plugin

***

### What are the features of **`Item's Lifecycle`** ?

This plugin allows you to remove/replace devices from the inventory by automating certain actions on the fields. It allows you to manage the various stages in the lifecycle of a piece of equipment. It has been designed, among other things, to handle the following cases:

* Scrapping of equipment
* Withdrawal of temporary equipment from inventory due to a breakdown
* Replacement of equipment under warranty, for example

***

### Why do I get the message **"the PDF plugin is not installed, you cannot use the PDF format for archiving** ?

The **PDF** plugin is required if you wish to edit documents related to paper archiving. It is also available on the marketplace.

***

### Is there a history when a PC is replaced?

Depending on your settings, a comment may be automatically added to the new PC with the references of the old hardware, so that you can keep a record of any changes.

***

### Is the PC permanently deleted after a relocation?

No. You can find it in the recycle bin if you need to.

***

### What are the possible options when replacing equipment?

You have 3 choices:

* **`Purge - PDF Archiving`**: Deletes the PC and inserts a PDF in the management > documents tab.
* **`Delete + comment`**: deletes the PC and leaves a comment on the new computer
* **`Keep + comments`** : Does not delete the PC and leaves a comment for the 2 computers


# Unread messages

***

### How to configure **`unread`**?

A [procedure](/doc-plugins/plugin-glpi-network/unread) is available to help you install the plugin.

***

### What is the **`unread`** feature?

Thanks to **`unread`** you will no longer miss a single message from GLPI. When new activity takes place on your instance, a will appear to inform you that a new unread notification is available.

***

### What is the difference between **`Per user helpdesk;shared central`** and **`Per user`**

* **`Per user helpdesk;shared central`**: users with the self-service profile will be notified of tickets of which they are the requesters. The technicians, for their part, will share the notifications. If a notification is read, it will be marked read for all other technicians.
* **`By user`**: each user will have access to their own notification queue including those of their group and their individual assignments.

***

### Can we have unread message behavior from one entity to another?

Yes. This can be configured in **`administration`** > **`entities`**. Choose the entity that suits you and make the necessary settings in the **`unread`** tab.


# WhatsApp

### What are the plugin's features?

* Send messages that will be transcribed into tickets
* Simplify communication with the people in charge of the ticket

***

### How to install and configure the plugin

You will find a procedure here to guide you through setting up the plugin.

***

### Which versions of GLPI and PHP?

The plugin is compatible with GLPI 11.0.3 and above, with a minimum PHP version of 8.2.

***

### What is the subscription level?

The plugin is available starting from a basic subscription.

***

### Is the plugin compatible with the cloud?

Yes, it is compatible with both public and private cloud.

***

### What are the prerequisites?

* Have an active WhatsApp (Meta) Business account with a valid phone number
* Have a GLPI instance accessible from the Internet via HTTPS

***

### What are the limitations?

Only ticket updates and solutions are sent to the user. Tasks and satisfaction surveys are not supported.

***

### Who can use the plugin

The plugin is intended for end-users with a WhatsApp account.

***

### Does the plugin replace the GLPI portal?

Currently, certain limitations prevent it from fully replacing the self-service portal.

***

### What types of messages can be exchanged?

It is possible to insert images or documents (according to the list allowed by GLPI) into the message that will be added to the ticket.

***

### Can anonymous users be refused?

Yes, from the WhatsApp settings, you can allow or block anonymous user registrations.

***

### What happens if a user does not exist in GLPI?

If anonymous access is enabled, the user will be registered in GLPI's internal database.

***

### What happens if a user does not exist in GLPI?

If anonymous access is enabled, the user will be registered in GLPI's internal database.

***

### Can technicians respond from GLPI or WhatsApp?

Technicians will manage tickets from the GLPI interface.

***

### What events can trigger a message (creation, closure, SLA)?

Currently, new messages, follow-ups, and closures are sent via WhatsApp.

***

### Which features are not supported?

Some features are not yet supported, such as sending satisfaction surveys and sending tasks.

***

### Are there any costs associated with the WhatsApp API?

Some costs may be associated with using the WhatsApp API; we invite you to check the dedicated page on Meta'[s website](https://business.whatsapp.com/products/platform-pricing?lang=fr_FR)[: https://business.whatsapp.com/products/platform-pricing?lang=en\_en](https://business.whatsapp.com/products/platform-pricing?lang=en_en)

***

### Can I be notified when a ticket status changes?

Yes, you can enable the "**`Notify user of ticket status change`**" option in the plugin settings.

***


# Most popular

See all our most popular items below, or browse the menus on the right to find the item you're looking for.

{% content-ref url="/pages/3433f50b216ecbf6eabe76f92fd00195182949bf" %}
[API V2](/tutorials/readme-1/api-v2)
{% endcontent-ref %}

{% content-ref url="/pages/fDJftv7OMyrqpQnQ1tv1" %}
[Customise my logo](/tutorials/my-instance/custom_instance)
{% endcontent-ref %}

{% content-ref url="/pages/OIqp34bUhFNS9FqRSsqX" %}
[Setting up Oauth SMTP Entra](/tutorials/notifications/oauth_smtp_entra)
{% endcontent-ref %}


# Account and subscription


# Subscribe to GLPI cloud

In this article we will show how to subscribe to the GLPI Network Cloud paid offer.

***

### I already have an account and instance

Go to your account here.

Before subscribing to paid offer, we ask you to check **MY ACCOUNT** menu on your **Dashboard**. Your profile may still be incomplete.

<div align="left"><img src="/files/L6m0jJFW79RjYI3JZNpz" alt="Alt text"></div>

**We invite you to fill it with your real data before subscribing to paid offer, so we can correctly issue the invoices.**

<div align="left"><img src="/files/l2CkNRuK2aVHOBxcIqjs" alt="Alt text"></div>

Once your profile is complete, return to your **Dashboard**.

You will see an orange pop-up indicating the time remaining of your trial period and allowing you to switch to the paid offer by adding payment information to your customer area.

![Alt text](/files/tYNDxfAabQ8uKSbojH8b)

You will be offered to select between two methods of payment:

* Credit or debit card
* SEPA Mandate (soon available automatically)

Do not hesitate to contact us to discuss another payment options.

![Alt text](/files/bJjxy9vfKXStaogdAl7w)

Once your payment method is selected, your trial period will be canceled and you will be transferred to the paid offer. You will also receive an email with the validation of your payment and your first invoice.

In the customer area, you will be redirected to **Dashboard**.

Go to **My applications and options**, you will find summary of your offer.

![Alt text](/files/C3hieu92HysivKWu15kV)

You are now a GLPI Network Cloud customer, thank you for your trust!

***

### I do not have an account or an instance

To create your customer account and your first GLPI Network Cloud instance, go here: <https://myaccount.glpi-network.cloud/register.php>

![Alt text](/files/8KalgcmHqbbTNEbOanye)

Please enter your authentication information and the URL for your first GLPI instance.

Once your information is validated, click on Create my instance. You will be asked to wait during the installation of your instance.

Once the installation is complete, you will be taken to your customer area. You will see the following information:

* The URL of your GLPI Network Cloud instance
* The Super Admin account ID
* The associated password

![Alt text](/files/YgtDmBalOTEXIA5YCO05)

By clicking on **Go to my GLPI Network C1 Instance**, you will be redirected directly to the URL you have chosen. Feel free to test it and contact us if you have any questions! You will also find useful articles in our FAQ to help you to understand and start using GLPI.

If you have decided to switch to the paid offer, please, return to your customer area: <https://myaccount.glpi-network.cloud/> Your login details for the customer area are:

* Login: the email address entered at registration
* Password: The password entered at registration

After this step is complete, we invite you to read the first section of this article: **I already have an account and instance**.


# Authentication


# Activate SSO

Yes, it is possible, but note that GLPI Network Cloud offer does not allow compatibility between following tools:

* basic Apache authentication;
* Windows domain authentication.

You can use the following tools:

Authentication server like LemonLDAP NG, Shibboleth, etc;

* CAS;
* X509 certificate;
* oAuth (with oAuth plugin).

You can configure your authentication in the **`Setup`** > **`authentication`** menu.

For authentication via oAuth, make sure that oAuth plugin is installed and activated on your instance in **`setup`** > **`plugins`**.

Access the plugin's configuration by clicking on it or by **`setup`** > **`Oauth SSO applications`**

To setup oAuth authentication, follow this [article](https://glpi-plugins.readthedocs.io/en/latest/oauthsso/index.html)


# Authenticate with local LDAP

In this article, we will expose solutions to benefit from your local LDAP authentication on your GLPI Network Cloud instance.

## Opening your local directory

To benefit from your local LDAP directory, it is necessary to make it accessible from Internet.

That passes by the installation, on your infrastructure, of protocol LDAPS what will allow your directory LDAP and your instance GLPI Network Cloud to communicate in a protected way.

According to your infrastructure, it is also interesting to set up filtering to guarantee that only your instance GLPI Network Cloud can attack your LDAP directory from outside. ( IP address of your instance here )

1. You must prepare your environment for the use of the LDAPS protocol;
   1. LDAPS protocol enabled/accepted (depending on your environment);
   2. Port 636 open/accepted on your network from Internet/your GLPI Network Cloud instance.
2. You can finally configure the LDAP(S) authentication in your GLPI Network Cloud instance.

## Synchronize your local directory on a Cloud directory (Azure AD)

This adds an intermediary and requires more configuration but allows you to benefit from your local directory if you do not want to expose it directly.

1. Subscribe to Azure AD
2. Synchronize your local directory with Azure AD;
3. Choose an authentication method for your GLPI Network Cloud instance (LDAPS or Oauth SSO -> [our guide](/tutorials/authentication/cloud_azure_ad)).

## Dedicated VPN via the subscription of a GLPI Network Cloud Private offer

Subscribing to a GLPI Network Cloud Private offer will allow you to call upon our team to set up a dedicated VPN between your GLPI Network Cloud instance and your infrastructure.

1. Subscribe to a GLPI Network Cloud Private offer;
2. Migration or deployment of your private instance;
3. Ask for the implementation of a dedicated VPN;
4. Planning / Implementation / Validation of the VPN with a technician of our team.


# Integrate GLPI Network Cloud and LDAPS (Entra)

## Reminder of use

Let's first remember that using an Entra directory allows two features with GLPI:

* **Synchronize** users
* **Authenticate** them.

Authentication can be done in two ways:

* LDAPS authentication via directory synchronization (of users) in GLPI
* Oauth SSO authentication (sync is not required)

We will now detail the configurations of these features.

## Directory synchronisation and/or LDAPS authentication

Entra AD requires the use of the **LDAPS** protocol to be synchronized. Microsoft has fully documented the configuration of its environment for the use of LDAPS. We therefore invite you to follow the official documentation [here](https://learn.microsoft.com/en-gb/entra/identity/domain-services/tutorial-configure-ldaps) in order to prepare your Entra AD environment.

{% hint style="info" %}
**Note**&#x20;

Your Entra Tenant must have a sufficiently high license or the purchase of [Microsoft Entra Domain Services](https://learn.microsoft.com/en-en/entra/identity/domain-services/overview) may be necessary.
{% endhint %}

* Remember that you can determine the IP address of your GLPI Network Cloud instance by following the article [here](/tutorials/my-instance/find_ip_address), if you want to establish LDAPS access rules on your Entra AD environment.

{% hint style="warning" %}
**Warning**&#x20;

If your Entra AD environment is poorly prepared for LDAPS, it won't work on the GLPI side
{% endhint %}

* Also remember to create a ***service account*** (a user) in your directory, only dedicated to the interconnection between GLPI and your Entra AD directory.

Once your Entra AD environment has been prepared for LDAPS, go back to GLPI!

You must create an LDAP Directory type authentication source.

* Go to the **`Setup`** > **`Authentication`** > **`LDAP Directory`**
* Clicking on **`add`** to add a new directory
* We had to setup the new directory for LDAPS connections

![Alt text](/files/Uv841YYAwEG2ZOCixWJL)

Explanation of fields :

* **Name**\
  The name to enter here will be the one displayed in the liste of your directories, it doesn't influence the configuration.
* **Default server**\
  This parameter allows you to define if this directory should be used as a priority.
* **Active**\
  With this parameter, you can activate or not the directory
* **Server**\
  In front of IP or FQDN of you rLDAP server, add **`ldaps://`** , e.g : *ldaps\://Entra.mycompany.com* or *ldaps\://xxx.xxx.xxx*
* **Port**\
  Enter the port of your LDAP. LDAPS requires port 636
* **Connexion filter**\
  You can set a condition for the search. It possible to filter the user's search to a reduced number of records.

For Active Directory, use the following filter, which returns only no-disabled users (because machines are also considered users by AD):

*`(&(objectClass=user)(objectCategory=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))`*

**This filter is a standard example, you can modify it to your need.**

* **BaseDN**

{% hint style="success" %}
**`basedn`**

The basedn must be written without spaces after the commas. Also, the case must be the same
{% endhint %}

For standard use, the parameters to enter are very simple, for example :

**If** your **Server** = **`Entra.mycompany.com`**

**So** your **BaseDN** = **`dc=mycompany,dc=com`**

* **RootDN (for non-anonymous binds)**\
  Enter here the full DN of the service account that will authenticate with your directory
* **Password (for non-anonymous binds)**\
  Enter here the password of the service account that will authenticate with your directory. Note that when saving the configuration, this field will appear empty, this is normal, the password will be saved in the database.
* **Login field**<br>
  * For Entra AD with SSO Authentication! We will indicate the field userprincipalname
  * For Entra AD without SSO authentication! We will indicate the field samaccountname
* **Comments**\
  This field does not influence the configuration, it is only a text field allowing you to place an indication, a remark, etc.
* **Synchronization field**\
  In the schemas provided by default, we recommend, for example, using the “objectGUID” attribute (corresponding to the official unique identifier of an object); Be careful with this field, once configured it cannot be modified.

Once the fields are entered, click **Add** to save your directory.

**During registration, a connection test to your directory will be carried out by GLPI !**

## Additional options

* Once your LDAPS connection has been registered, return to the configuration of your directory on GLPI side.
* In advanced information, change the **Use Paginated Results field** to **Yes**
* We recommend changing the page size to **100**
* We recommend changing the **field maximum number of results** to **unlimited**

![Alt text](/files/Bej3bSXeX7UROGDvNT39)

Your directory is connected but you have to define options to synchronize.

* To do this, go to your directory configuration and use the **Users** and **Groups** tabs by customizing the LDAP attributes you want to synchronize and the settings that are useful to you. This section is complete.


# Setting up LDAP

GLPI interfaces with LDAP directories in order to authenticate users, control their access, retrieve their personal information and import groups.

All LDAP v3 compatible directories are supported by GLPI. This is also applies for Microsoft Active Directory (AD). There is no limit for the number of directories filled: of course, the higher the number, the longer the search for a new user to authenticate.

***

## LDAP (port 389)

First, it is necessary to configure the directory in GLPI and test the connection:

* Hover over the "**Configuration**" menu located in the main menu of GLPI.
* Choose "Authentication".
* Several options of external authentication will be offered to you. Choose "**LDAP Directories**".
* To add an AD / LDAP directory to your list, click on the "**+ Add**" icon.
* You will access the configuration page of an AD / LDAP server.

![Alt text](/files/jRJjCIFq0j2VOf2EigdE)

***

## Explanation of the fields:

* **Preconfiguration**

These two clickable links will allow you to load or delete default values ​​for other fields, in particular for configuring an Active Directory.

* **Name**

The name you enter here will be the one displayed in the list of your directories, it does not affect the configuration.

* **Default server**

This parameter allows you to define whether this directory should be used as a priority or not.

* **Active**

This parameter allows you to activate / deactivate this directory after its creation. This parameter will of course be modifiable at any time.

* **Server**

Here you will need to enter the FQDN of your server or its IP address.

* **Port**

Enter the port required for connection to your directory here. By default the port is preloaded in 389.

* **Connection filter**

We can set up a condition for the search. This allows you to filter the search for users by a reduced name of records.

For Active Directory use the following filter, which returns only users who are not deactivated (because machines are also considered as users by AD):

*(&(objectClass=user)(objectCategory=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))*

* **BaseDN**

Attention, the *basedn* must be written without spaces after the commas. In addition, breakage is important.

The parameters to enter are very simple, for example:

If your server is = *ldap.mycompany.fr*

So your basedn = *dc=mycompany,dc=fr*

* **Account DN (for non-anonymous connections)**

Enter here the full DN of the service account that will authenticate with your directory

* **Account password (for non-anonymous connections)**

Enter the password for the service account that will authenticate your directory here. Note that when saving the configuration, this field will appear empty, this is normal, the password will be saved in the database.

* **Identifier field**

By default, for an LDAP directory, the value will be placed on the "uid" field

For an Active Directory, we will prefer the "samaccountname" field

* **Comments**

This field does not influence the configuration, it is only a text field allowing you to place an indication, remarks, etc.

* **Synchronization field**

In the diagrams provided by default we recommend for example to use:

* For Microsoft Active Directory: the attribute "objectGUID" (corresponding to the official unique identifier of an object);
* For a directory based on OpenLDAP: the attribute "entryUUID".

Pay attention to this field, once configured it cannot be modified.

***

## LDAPS (port 636)

If you want to use LDAPS, you have to modify some data:

**Server**: In front of FQDN of your LDAP server, add **ldaps**: //, ex: ldaps: //mon.ad.com

**Port** : The port becomes 636

Once your directory has been saved, return to it to edit its configuration.

In the **Advanced Information** tab, change Use TLS to Yes.

## References

[GLPI documentation "LDAP Directories"](https://glpi-user-documentation.readthedocs.io/fr/latest/modules/configuration/authentication/ldap.html)


# Setting up LDAPS Google

This procedure guides you step-by-step through configuring LDAPS with Google and connecting it to GLPI.

{% hint style="warning" %}
LDAPS with Google requires a specific license. Please refer to [Google Support](https://support.google.com/a/answer/6043385) to verify if your license is sufficient.
{% endhint %}

4 steps are necessary to correctly configure your LDAPS.

1. Add a new LDAP client
2. Configure access permissions
3. Create a certificate
4. Connect your LDAP client to GLPI

***

## Add a new LDAP client

### Application Creation

<figure><img src="/files/mObs8cXB1fZHR2nILpSD" alt=""><figcaption><p>Add a Google LDAP client</p></figcaption></figure>

* From the [Admin Console](https://admin.google.com/), navigate to **`Apps`** > **`LDAP`**
* Click **`Add Client`**
* **Name** the client and add a description if needed
* Click **`Continue`**

***

## Configure Access Permissions

You must then set the level of access this LDAP client will have.

<div align="left"><figure><img src="/files/BBWeIM7IQTs0sVAyCAID" alt="" width="563"><figcaption><p>Manage application permissions</p></figcaption></figure></div>

### Verify user credentials

When a user tries to sign in to the application, this setting specifies which organisational units and groups the LDAP client can access to verify the user’s credentials. Users who aren’t in a selected organisational unit and groups can’t sign in to the application.

<a href="https://support.google.com/cloudidentity/answer/9058751?hl=en-GB#user-credentials" class="button secondary">More info</a>

### Read user information

This setting specifies which organisational units the LDAP client can access to retrieve additional user information.

<a href="https://support.google.com/cloudidentity/answer/9058751?hl=en-GB#user-credentials" class="button secondary">More info</a>

You can also select the attributes that can be read by the LDAP client:

* System attributes
* Custom public attributes
* Custom private attributes

Click View attributes to check each category of each attribute.

### Read group information

This setting specifies whether the LDAP client can check a user’s group memberships for purposes, such as a user’s role in the application.

<a href="https://support.google.com/cloudidentity/answer/9058751?hl=en-GB#user-credentials" class="button secondary">More info</a>

Once all these options are configured, click **`Add LDAP Client`**.

***

## Create a Certificate

* The certificate is logically generated upon application creation. If not, click on your application and go to the **Authentication** section.

<figure><img src="/files/PiYIovlGqNwmfT6CxTzC" alt=""><figcaption><p>Generate a certificate</p></figcaption></figure>

* Then click **`Generate new certificate`**.
* Download the certificate and its key, transfer it to the GLPI server, and unzip it into the desired folder.

<figure><img src="/files/EX3IjSOym509tV9vKvkW" alt=""><figcaption><p>Download the certificate</p></figcaption></figure>

{% hint style="danger" icon="file-certificate" %}
If you have a **Cloud instance** (public or private), the certificates must be **sent to support** so they can be **installed on your instance**. Please **contact support** through the usual channel to make this request.
{% endhint %}

***

## Connect Your LDAP Client to GLPI

<figure><img src="/files/D3wQT8YhLhndTOT650dK" alt=""><figcaption><p>Add LDAPS from GLPI</p></figcaption></figure>

* From **`Setup`**> **`Authentication`** > **`LDAP Directory`**, click **`+ Add`**
* Enter the information related to your LDAPS:
  * **Server**: `ldaps://ldap.google.com`
  * **Port**: `636`
  * **BaseDN**: Enter your domain (e.g., `dc=my_domain,dc=com`)
* Click **`+ Add`**
* From the **Advanced Information** tab, enter the path to the certificate and its key in the corresponding fields (refer to the previous step if needed).

<figure><img src="/files/liVohAofI1gqg1VYx1MK" alt=""><figcaption><p>Add certificates from GLPI</p></figcaption></figure>

***

## Test LDAPS

* Go to the **Test** tab to verify that your LDAPS is functioning correctly.

<figure><img src="/files/FJAXMVGpI6w8IGhBnFZI" alt=""><figcaption><p>Test your LDAPS</p></figcaption></figure>

You can now go to **`Administration`** > **`Users`** > **`LDAP Directory Link`** and import your users and groups.

<figure><img src="/files/9UZX2xiWCJfa7uLlUIPQ" alt=""><figcaption><p>Import users from LDAPS</p></figcaption></figure>


# Automatic actions


# Setting up automatic actions

In most cases, this problem comes from the **execution mode** of the automatic action.

In **GLPI** mode, it is normal for your actions to have trigger problems at night / weekend, because these actions are only triggered by user activity in **GLPI** interface.

In **CLI** mode, however, automatic actions will be triggered by our internal system, regardless of activity in **GLPI**.

**CLI** mode is therefore recommended, it is activated by default on paid instances (triggering every 15 minutes), if you are in a test period, do not hesitate to contact us, we can activate it on demand.

## References

[Documentation GLPI "Configure automatic actions"](https://glpi-user-documentation.readthedocs.io/fr/latest/modules/configuration/crontasks.html)


# Check automatic actions

## On-premise and GLPI Network Cloud

To check the status of your automatic actions, there is an automatic action whose role is to check the status of the others.

* Go to the menu **`setup`** > **`Automatic actions`**, and select the **`watcher`** automatic action.

This automatic action will send you, by e-mail (if you have correctly configured Notifications), the actions in error. More precisely, these are all actions whose status **remains indefinitely on "In progress"**.

It is also possible to manually check the status of an automatic action in its configuration page, and to restart it by clicking on the **`Reset`** cross just to the right of the current execution status:

![Alt text](/files/qVFymRB1sVokliQmneoN)

## GLPI Network Cloud ONLY

{% hint style="info" %}
**To know**

&#x20;If you use the "CLI" execution mode (which is recommended), and you have requested activation, our internal system checks for blocked automatic actions every 6 hours and unblocks them automatically.
{% endhint %}

## References

[Documentation GLPI "Configure automatic actions"](https://glpi-user-documentation.readthedocs.io/fr/latest/modules/configuration/crontasks.html)


# General


# API V2

## Concept

When using the GLPI API, communication occurs in a universal language called JSON (a very simple text format to read) and relies on the standard web network (HTTP), with 4 main actions:

* **GET (Read)**: Give me the list of computers at the Lyon site.
* **POST (Create)**: Create a new ticket with the title 'Internet outage'.
* **PUT/PATCH (Update)**: Change the status of computer #45 to 'Under repair'.
* **DELETE (Delete)**: Delete ticket #1234.

Each request is sent to a specific URL, called an Endpoint (e.g., `https://my-glpi.com/api.php/Ticket`).

***

## What is it for?

The API allows, among other things, to automate time-consuming tasks and simplify repetitive actions:

* **Supervision (Monitoring)**: Instead of sending a simple email, the API can automatically create a critical ticket and assign it to the network team in GLPI.
* **Human Resources**: When the HR department adds an employee to their software, it automatically transmits the data to GLPI via the API to create a user account, generate a PC preparation ticket, and assign a software license.
* **External Reporting**: A Python script that queries the API every evening to retrieve the number of open tickets and display it on a screen in the open-space.

***

## Creating an Oauth Client

To use the API, GLPI requires an OAuth client to be configured. This client will generate a **`Client ID`** and a **`Client secret`**, which are essential for authorizing API usage.

* From **`Configuration`** > **`OAuth clients,`** click on **`+ Add`**
* Enter:
  * **A name**
  * The relevant **`scopes`**: email, user, api, inventory, status, graphql
  * The **authorization type** (grants): Password, Clients credentials, Authorization code
* **Save** your OAuth client
* Click on your OAuth client, and note the 2 values:
  * **`Client ID`**
  * **`Client secret`**

<figure><img src="/files/0zFjBhmr3qi00Gp1YgwG" alt=""><figcaption><p><em>OAuth Client Creation</em></p></figcaption></figure>

***

## Method 1 - API Endpoints

The recommended method is to use the **`API Endpoints`** feature natively available in GLPI. You can find the URL at:

* **`Configuration`** > **`General`** > **`API`** > **`API Endpoints`**
* Or at the address <https://my_instance/api.php/v2.2/doc>

{% stepper %}
{% step %}

### Connect the OAuth Client

* From **`Configuration`** > **`General`** > **`API`** > **`API Endpoints`**, click on **`Authorize`**
* Enter the **`Client ID`** and **`Client secret`** noted in the previous step
* Select the desired scopes
* Click on **`Authorize`**
* Validate the consent screen

<figure><img src="/files/ko4kRIGM0mclkBhAGp5t" alt=""><figcaption><p>Available authorizations</p></figcaption></figure>
{% endstep %}

{% step %}

### Usage

* From **`Configuration`** > **`General`** > **`API`** > **`API Endpoints`** or <https://my_instance/api.php/v2.2/doc>, select the module you need

<figure><img src="/files/P8Y2iubW05qcC0BlzFE1" alt=""><figcaption><p>API's objects list </p></figcaption></figure>

* In our example, we will display ticket with **`id 60`**
* From **`Administration`**, select <mark style="background-color:$primary;">**GET**</mark>\*\* /Assistance/Ticket/{id}\*\*
* Click on **`Try it out`**
* Enter the **ticket number**
* Click on **`Execute`**

<figure><img src="/files/tAMmG7p51DsLNTlidnzH" alt=""><figcaption><p>Enter the API request parameters</p></figcaption></figure>

**Response**:

<figure><img src="/files/bdHXUcIkMO8VrPg8LlJa" alt=""><figcaption><p>Response to the request</p></figcaption></figure>

* In this first box, you will find:
  1. **Curl**: The request used
  2. **The Request URL**
  3. **The request response**: the content of our ticket
  4. **The header response**: a list of parameters in "Key: Value" format (request weight, timestamp, formatting, etc.).
* In another box, you will find the raw values of the request, i.e., the schema used.

<figure><img src="/files/tPZWVboYzNU4n6jTa2pm" alt=""><figcaption></figcaption></figure>

* It is also possible to view the schema and the expected value type in list mode by clicking on **`Schema`**

<figure><img src="/files/xLZKFH606lUy9NGd3m9p" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

***

## Method 2 - Via curl requests

{% stepper %}
{% step %}

### Token Initialization

Enter this command in a terminal:

<pre class="language-viml"><code class="lang-viml">curl -X POST 'https://<a data-footnote-ref href="#user-content-fn-1">MY_INSTANCE</a>/api.php/token'
--header 'Content-Type: application/x-www-form-urlencoded'
--data 'grant_type=password'
--data 'client_id=<a data-footnote-ref href="#user-content-fn-2">MY_CLIENT_ID</a>'
--data 'client_secret=<a data-footnote-ref href="#user-content-fn-3">MY_CLIENT_SECRET</a>'
--data 'username=<a data-footnote-ref href="#user-content-fn-4">MY_USER</a>'
--data 'password=<a data-footnote-ref href="#user-content-fn-5">MY_PASSWORD</a>'
--data 'scope=api'
</code></pre>

A similar result will be returned:

{% code overflow="wrap" %}

```json
{"token_type":"Bearer","expires_in":3600,"access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiI3NDhhMjZmMDYzOTE5NWRlNmE0ZWY3OTRmMzJjZWFjYmFiYWIyOGM2MmI5NDU5YTM5NDMxOWVhNzgxZTY2ZTgyIiwianRpIjoiZmZjMDY2MmU1ZDIwYWQyMTI5NTc2NGFjNTk5NmMzOGM1YmJmYThiYzM3YTE5MTI5MGM2YWFkYzg1YWZmMmY3YTQyYmY1NWJkNzc2NDI4NjAiLCJpYXQiOjE3NzcwMjU4MzUuNDE4NzQ4LCJuYmYiOjE3NzcwMjU4MzUuNDE4NzUxLCJleHAiOjE3NzcwMjk0MzUuNDEyNTQ2LCJzdWIiOiIzMyIsInNjb3BlcyI6WyJhcGkiXX0.KGwELLimKR8Eh6WzDk0BHlQWBDLwHTh2Weg8g2um71CxdgfeRReJRH4gcCqlDmdACZmf6ENoOwAarjZItlBaR7FECgllCDW1w792VvD6SbK8CKD316k2To3mp7bVh9qdPO28IL5W0fdnReEeA7JHyZfQyjxmOqVeejXf5YPOXuDcHmYbbR3bITQT8FlQCJEvYRctAgM59XLocTCySelaO-D_YXOYG0zGi5svb3X-bZjOdsiRnp3L3lqbB-DIhCSknLo63on7HK8Y2HGcCdU5HJbp4BOEiYj9YaBrFUzyetgAYPuuca4ZHsnjsJOAJOu0-iieIQq_iDAx1zSvgBGPng","refresh_token":"def50200449acd66b193093a5a9f8f392366ef97624b4760f5601ea177c202dcaa984b3415c5e6c7f79ec84d8ba5ce27b96880bd2c1eb1db2cb34776473b2ef54e5040b9f7e64d601f8f5f5f628c4b39e63354b07568fa9337cb915cc41b98b02277ea1f9915b7326a44449b46adc8970206dcda7ab2058bc81584884d777ec7f7c5071f1b41f8d003854ca128f38c9546a9c61d8a151bf7b36b4217010afc70cb24147c0c3a508d3f7df598d04b1e1d6a97aa8ce01874122f83befaa28d0816910ae610e448d111abe94f7ea42c31cabd5b3c6d9c9b2125e81b0c8c556172fb25511c97db66d16f0244614e99a4a934f1cdd695e6a48b5f0de396a70189ff79b7d3f9d3e52694c343f1de04238b5b77616e3e786c52b1cc38ba928a37f9e21baafde64088111d02990876b927cdf93976774164a94a2e3b8e706bdae64df4795727204035548cf79b5aac54ebbd497e762cfe7b47bbc4aa6c65f66379d52f6bd3ef33b35b8af3d2789141fa9a58cb767aab31197219a676b6522d1ca1dbd081a84fef91788572118cdd4df7f0e8180720ddcebd8c23857581f33677630523fe94412e841d57d2a8"}
```

{% endcode %}

{% hint style="info" %}
The **`access token`** is the important information that will be requested for each command you type.
{% endhint %}
{% endstep %}
{% endstepper %}

***

## Example Commands

{% hint style="danger" %}
If you do not wish to fill in certain fields in your requests, you can either indicate the value **`"null"`** (e.g., **`"sla_ttr": null`**) or remove them from your request. The essential thing is that your `json` is correctly structured. All values containing an **`"id": 0`** must also be replaced by the value **`null`**
{% endhint %}

### Tickets

#### Create a ticket:

{% hint style="warning" %}
**Limitation**:

The expected format for dates is **`"YYYY-MM-DD HH:MM:SS"`**. The variable **`$date-time`** is not applicable at this time (currently being corrected by the technical teams).
{% endhint %}

<pre class="language-vim"><code class="lang-vim">curl -X 'POST' \
'https://<a data-footnote-ref href="#user-content-fn-1">MY_INSTANCE</a>/api.php/Assistance/Ticket' \
-H 'accept: application/json' \
-H 'Accept-Language: en_GB' \
-H 'Authorization: Bearer <a data-footnote-ref href="#user-content-fn-6">MY_TOKEN</a>' \
-H 'Content-Type: application/json' \
-d '{
  "name": "string",
  "content": "string",
  "user_recipient": {
    "id": 0
  },
  "user_editor": {
    "id": 0
  },
  "is_deleted": false,
  "category": {
    "id": 0
  },
  "location": {
    "id": 0
  },
  "urgency": 1,
  "impact": 1,
  "priority": 1,
  "date_creation": "YYYY-MM-DD HH:MM:SS",
  "date_mod": "YYYY-MM-DD HH:MM:SS",
  "date": "YYYY-MM-DD HH:MM:SS",
  "date_solve": "YYYY-MM-DD HH:MM:SS",
  "date_close": "YYYY-MM-DD HH:MM:SS",
  "type": 1,
  "external_id": "string",
  "request_type": {
    "id": 0
  },
  "sla_ttr": {
    "id": 0
  },
  "sla_tto": {
    "id": 0
  },
  "ola_ttr": {
    "id": 0
  },
  "ola_tto": {
    "id": 0
  },
  "sla_level_ttr": {
    "id": 0
  },
  "ola_level_ttr": {
    "id": 0
  },
  "global_validation": 1,
  "status": {},
  "entity": {
    "completename": "string"
  },
  "team": [
    {
      "name": "string",
      "type": "string",
      "role": "string"
    }
  ]
}'
</code></pre>

#### Retrieve the content of a ticket:

<pre class="language-vim"><code class="lang-vim">curl -X 'GET' \
'http://<a data-footnote-ref href="#user-content-fn-1">MY_INSTANCE</a>/api.php/Assistance/Ticket/<a data-footnote-ref href="#user-content-fn-7">ID</a>' \
-H 'accept: application/json' \
-H 'Accept-Language: en_GB' \
-H 'Authorization: Bearer <a data-footnote-ref href="#user-content-fn-6">MY_TOKEN</a>'
</code></pre>

#### Retrieve the solution of a ticket:

<pre class="language-vim"><code class="lang-vim">curl -X 'GET' \
'http://<a data-footnote-ref href="#user-content-fn-1">MY_INSTANCE</a>/api.php/Assistance/Ticket/<a data-footnote-ref href="#user-content-fn-7">ID</a>/Timeline/Solution' \
-H 'accept: application/json' \
-H 'Accept-Language: en_GB' \
-H 'Authorization: Bearer <a data-footnote-ref href="#user-content-fn-6">MY_TOKEN</a>'
</code></pre>

#### Retrieve the documents of a ticket:

<pre class="language-vim"><code class="lang-vim">curl -X 'GET' \
'http://<a data-footnote-ref href="#user-content-fn-1">MY_INSTANCE</a>/api.php/Assistance/Ticket/<a data-footnote-ref href="#user-content-fn-7">ID</a>/Timeline/Document' \
-H 'accept: application/json' \
-H 'Accept-Language: en_GB' \
-H 'Authorization: Bearer <a data-footnote-ref href="#user-content-fn-6">MY_TOKEN</a>'
</code></pre>

### User

#### Create a user:

<pre class="language-vim"><code class="lang-vim">curl -X 'POST' \'https://<a data-footnote-ref href="#user-content-fn-1">MY_INSTANCE</a>/api.php/Administration/User' \
-H 'accept: application/json' \
-H 'Accept-Language: en_GB' \
-H 'Authorization: Bearer <a data-footnote-ref href="#user-content-fn-6">MY_TOKEN</a>' \
-H 'Content-Type: application/json' \
-d '{
"username": "string",
"realname": "string",
"firstname": "string",
"phone": "string",
"phone2": "string",
"mobile": "string",
"emails": [
{
  "id": 0,
  "email": "string",
  "is_default": true,
  "is_dynamic": true
  }
],
"comment": "string",
"is_active": true,
"is_deleted": false,
"password": "string",
"password2": "string",
"location": {"id": 0},
"authtype": 1,
"last_login": "YYYY-MM-DD HH:MM:SS",
"default_profile": {"id": 0},
"default_entity": {},
"date_creation": "YYYY-MM-DD HH:MM:SS",
"date_mod": "YYYY-MM-DD HH:MM:SS",
"title": {"id": 0},
"category": {"id": 0},
"registration_number": "string",
"begin_date": "YYYY-MM-DD HH:MM:SS",
"end_date": "YYYY-MM-DD HH:MM:SS",
"nickname": "string",
"substitution_start_date": "YYYY-MM-DD HH:MM:SS",
"substitution_end_date": "YYYY-MM-DD HH:MM:SS" }'
</code></pre>

#### Delete a user

<pre class="language-vim"><code class="lang-vim">curl -X 'DELETE' \
'https://<a data-footnote-ref href="#user-content-fn-1">MY_INSTANCE</a>/api.php/Administration/User/<a data-footnote-ref href="#user-content-fn-7">ID</a>?force=true' \
-H 'accept: */*' \
-H 'Accept-Language:  en_GB' \
-H 'Authorization: Bearer <a data-footnote-ref href="#user-content-fn-6">MY_TOKEN</a>'
</code></pre>

### Profile

#### List profiles

<pre class="language-vim"><code class="lang-vim">curl -X 'GET' \
'https://<a data-footnote-ref href="#user-content-fn-1">MY_INSTANCE</a>/api.php/Administration/Profile' \
-H 'accept: application/json' \
-H 'Accept-Language: en_GB' \
-H 'Authorization: Bearer <a data-footnote-ref href="#user-content-fn-6">MY_TOKEN</a>'
</code></pre>

### Entity

#### List entities

<pre class="language-vim"><code class="lang-vim">curl -X 'GET' \
'https://<a data-footnote-ref href="#user-content-fn-1">MY_INSTANCE</a>/api.php/Administration/Entity' \
-H 'accept: application/json' \
-H 'Accept-Language: en_GB' \
-H 'Authorization: Bearer <a data-footnote-ref href="#user-content-fn-6">MY_TOKEN</a>'  
</code></pre>

#### View entity details

<pre class="language-vim"><code class="lang-vim">curl -X 'GET' \
https://<a data-footnote-ref href="#user-content-fn-1">MY_INSTANCE</a>/api.php/Administration/Entity/<a data-footnote-ref href="#user-content-fn-8">ID</a>' \
-H 'accept: application/json' \
-H 'Accept-Language: en_GB' \
-H 'Authorization: Bearer <a data-footnote-ref href="#user-content-fn-6">MY_TOKEN</a>'
</code></pre>

### Status

#### View GLPI service status

<pre class="language-vim"><code class="lang-vim">curl -X 'GET' \
'https://<a data-footnote-ref href="#user-content-fn-1">MY_INSTANCE</a>/api.php/status' \
-H 'accept: */*' \
-H 'Accept-Language: en_GB' \
-H 'Authorization: Bearer <a data-footnote-ref href="#user-content-fn-6">MY_TOKEN</a>'
</code></pre>

[^1]: Replace with the name of your instance

[^2]: To be modified by the ID of your previously created client

[^3]: To be modified by the previously created customer secret

[^4]: To be modified by your user

[^5]: A modifier par le mot de passe utilisateur

[^6]: To be modified by the previously generated token

[^7]: Replace the ticket ID

[^8]: Replace the entity ID


# Fields unicity

To avoid duplicates, the **`uniqueness of fields`** function allows you to refuse hardware imports if one of the fields set is identical to another field of the same type of hardware. For example, 2 computers with the same serial number.

* From **`setup`** > **`field unicity`**, click on **`add`**
* Add a :
  * a **`name`**
  * A **`comment`** (optional)
  * Set **`active`** to **`yes`**
  * The **`type`** of item targeted (computer, telephone, user, etc.)
  * Select the **`filed`** that will be considered unique
  * Indicate whether the **`import`** should be **`refused`** or **`accepted`**.
  * Indicate whether a **`notification`** should be sent

{% hint style="warning" %}
**Sub-entity**

If necessary, remember to tick **`sub-entity`** in the top right-hand corner so that your field can be checked in all the sub-entitles in which uniqueness is created.
{% endhint %}

![Alt text](/files/oMD9pHo8nEx9R4V0DZqI)

If a duplicate is created, an error message will appear:

<div align="left"><img src="/files/Hao6LqLXnPbMlmJIsnGK" alt="Alt text"></div>


# Managing dashboards

Dashboards are already present when you install GLPI:

* **Central**: displays overall information (represents number of PCs, telephones, monitors, etc., number of users and groups, number of tickets, problems, changes, etc.)
* **Assets**: shows the elements of the portfolio with computer-type graphics by status, by manufacturer. Computers by type, network hardware by manufacturer, and more.
* **Assistance**: lists tickets and their status. Graphs are available such as tickets by status and month, top ticket categories, number of incoming tickets, assigned tickets, etc.
* **GLPI inventory reports**: shows the number of agents, tasks, elements in the fleet, etc.

All these tables are of course modifiable.

## Creating a new dashboard

***

### Added new dashboard

In this example, we will add a global view of the number of tickets and their status as well as an assignment filter by user or group.

* From the main GLPI view (by clicking on the logo at the top left), click on

![Alt text](/files/3NxvXze6VQJFe5yHWvfa)

* Enter a name for your dashboard then click on **`add`**
* Position your mouse where you want to position your tile and click on
* In the window for selecting the type of data to display, choose the one that suits you (here ticket summary)
* Depending on the data selected, you may be asked to choose the type of chart that will be displayed

![Alt text](/files/rXQTGOuO6LroIpW2UQwV)<br>

<mark style="color:red;background-color:red;">**1.**</mark> Select the background of your tile\ <mark style="color:red;background-color:red;">**2.**</mark> Select chart type\ <mark style="color:red;background-color:red;">**3.**</mark> Select the gradient from the palette (shade of gray displayed per tile)\ <mark style="color:red;background-color:red;">**4.**</mark> Select the number of data to display (the number of data reflects the number of statuses your tile will display)\ <br>

* Click on **`edit`**
* You can enlarge your tile by selecting and stretching it

![Alt text](/files/zCRZRoUSJPWJTvvE5m17)

You can then add as many tiles as you want.

***

### Add filter

The filter will display the result of the tile for a given element. In our example, for a particular group.

* Click on **`add filter`**

<div align="left"><img src="/files/UNtt9073VHjrZzufdV0Y" alt="Alt text"></div>

* Select **`technician group`**
* Click on **`add`**
* When you are satisfied with your dashboard, click on to exit edit mode

If you want to display all the tickets in a group, you can now do so by selecting the desired group from the technician group filter

<div align="left"><img src="/files/gzQbw0nO1TD8h6T6aGUX" alt="Alt text"></div>

You can also access the items by clicking on the desired status. For example, if I want to display all tickets in **`pending`** status for **`group 1`**, I choose group 1 in the filter and then click on the pending line to display the result in the support tab.

## Dashboard options

In the menu at the top right, you can see a number of possible options:

<div align="left"><img src="/files/JlX5slWfVcm4Z0eYwI8J" alt="Alt text"></div>

***

### Refresh data

![](/files/c4RbjiFjwyrEIu1ewqVs) Allows you to update the data in order to have a result in real time

***

### Clone a dashboard

![](/files/Uklh5eInCpllxy8uVo9M) Allows you to clone a dashboard. It will have the same name with a **`copy`** mention. You can of course modify the name of the table and all the data it contains

***

### Share a dashboard

![](/files/4dW7ap4aFxMbcWtM4lSQ)it is possible to share the dashboard in several ways

<div align="left"><img src="/files/oOVzaPUqrmS4LDWwnNmH" alt="Alt text"></div>

\ <mark style="color:red;background-color:red;">**1.**</mark> **Direct link**: this public link can be communicated. It will be accessible without identification and will be displayed in full screen. Only viewing this dashboard will be possible (except if the recipient has a GLPI account on the instance with the necessary authorizations to modify it)\ <mark style="color:red;background-color:red;">**2.**</mark> **Iframe**: allows insertion into a web page\ <mark style="color:red;background-color:red;">**3.**</mark> **Share with targets**: allows sharing with other profiles, entities, users or groups.\ <mark style="color:red;background-color:red;">**4.**</mark> **Personal**: Specify whether this dashboard is private or not. A personal dashboard is not visible to other administrators unless you explicitly share it<br>

***

### Delete a dashboard

![](/files/JxulAPCCQOh6wOfMb0yZ)Delete a dashboard using this icon

***

### Edit a dashboard

![](/files/GUxHlaqICNDTIIBwIlJ5)Allows you to edit the dashboard you are on and modify its elements.

***

### Show full screen

![](/files/L7JVG1EF2TiJCjtC3ATs) Display your table in full screen, this allows for example, to obtain a monitoring screen on elements of your fleet or assistance.


# Setting up your calendar

{% embed url="<https://www.youtube.com/watch?t=&v=qdS_1y3wUeo>" %}

***

## Define a business opening period

* From **`setup`** > **`dropdowns`**, enter **`calendar`** and click on **`calendars`**.

<div align="left"><img src="/files/OgFeqPmJy1hUdDRCgp0k" alt="Alt text"></div>

* Click on **`add`**
* Name your calendar,
* In the **`time ranges`** tab, select the 1st **`day`** of opening and the **`start`** and **`end`** times of the day. If you need to create a lunch break, you will need to create 2 entries per day (e.g. Monday 9am-12pm then Monday 2pm-7pm).
* Click on **`add`** for each entry you make

![Alt text](/files/JJKHhjn2XDjV4koBXnAu)

{% hint style="success" %}
&#x20;**Different days and times for each entity**\
You can create several opening times on different entities. For example :\
\
\- **Entity A**: Monday to Friday, 9am to 7pm\
\- **Entity B**: Monday to Saturday from 8am to 6pm<br>

<img src="/files/oNzxgDOhl7xPGZYPKpqm" alt="" data-size="original"><br>
{% endhint %}

## Create a closing date/period

* From **`setup`** > **`dropdowns`**, enter **`closing`** and click on **`closing periods`**.

![Alt text](/files/byxI4aEhdoX3zb2mYMpE)

* Click on **`add`**,
* enter a name,
* a start date,
* an end date,
* and a recurrence.

![Alt text](/files/9ZGufpskDRIwd2rCRIKb)

!!! tip "Recurrence information" If you add a **recurring period**, for example from Monday 7 August 2023 to Sunday 20 August 2023. The recurrence will apply to the same dates the following year, i.e. from Wednesday 7 August 2024 to Tuesday 20 August 2024. Please check that your information is consistent before validating a recurrence.

## Defining a closing date/period for an entity

Requirements within a company are not always the same. For example, in entity A, closing days may differ from entity B. You can therefore set up different closing days and separate holidays.

If this is your case, make sure you create opening days and times in the correct entities (you can always skip the transfer list if you make a mistake).

* From **`setup`** > **`dropdowns`**, enter **`calendar`** and click on **`calendars`**

![Alt text](/files/hvEikIzwI3K9riIYkA1U)

* click on the calendar that is to receive a different day/period of holidays, click on **`closing periods`**,
* in the **`closing periods`** tab, select the period created earlier,
* click on **`add`**

## Delete a holiday date/period

* From **`setup`** > **`dropdowns`**, enter **`closing`** and click on **`closing periods`**.
* Click on the period you wish to delete,
* click **`delete permanently`**.

![Alt text](/files/f32rlNHT97T6xUpZWQzS)

If you have several to delete, you can skip the select-entries, **`actions`** then **`delete permanently`**.

!!! Warning "Caution" This will permanently delete the entry for **ALL** entities

## For more options

You can also download the [Holiday](https://glpi-plugins.readthedocs.io/en/latest/holidays/index.html) plugin to enter mass holidays or specific to certain countries or regions.


# Helpdesk


# Add a task

## Creation

Enter the ticket that requires a task to be added. Click on **`answer`** > **`create a task`** (or on create **`tasks`** directly depending on the configuration of your interface):

<div align="left"><img src="/files/djGoUOXwlNaTAoiQqc2Q" alt="Alt text"></div>

or

<div align="left"><img src="/files/4NepOPpbTbKXhKq5zxdX" alt="Alt text"></div>

## Add a follow

As with tracking, you have a text field to indicate the nature of the Task. You can define whether the Task will be public or private. What differentiates the Task from the Tracker is its right-hand menu.

![Alt text](/files/dGULpY4fXFR5rH0L129j)

## Type of task

This will allow you to define the status of the Task when it is added: **Information / To Do / Done**.

<div align="left"><img src="/files/kBybC0ye9n9w5wZj8ayT" alt="Alt text"></div>

***

### Execution time

GLPI lets you define its execution time (this data can be modified later):

<div align="left"><img src="/files/McfaouZgJBOABjv7CJtq" alt="Alt text"></div>

***

### Users and groups

You can define which user or group will be assigned to this Task:

<div align="left"><img src="/files/sxNeMtqNJCrRJfliEXh9" alt="Alt text"></div>

***

### Planning

As mentioned above, the best thing about a Task is its scheduling. To do this, click on the **Schedule this Task** button, which will display the scheduling options.

<div align="left"><img src="/files/3HXDnkBOvIk54DKUS6HM" alt="Alt text"></div>

***

### Duration

You will be able to set a date, start time and duration for the Task. Click on the icon on the right to unfold the calendar:

<div align="left"><img src="/files/vyC01po6WF3MgxTUO8sy" alt="Alt text"></div>

***

### Save

Once you have entered your details, click on the **`Add`** button to save the Task.

<div align="left"><img src="/files/lBhVc9zJA0Tv8rw7CeSd" alt="Alt text"></div>

Unlike Follow-ups, when adding a Task, you can only select a status for **Tickets**, the choice of status is not available for Problems and Changes. The ticket will automatically change its status to **`processing (planned)`**.


# Add changes

{% hint style="info" %}
**Link with a problem**

This procedure is linked to the procedure for establishing a [problem](/tutorials/helpdesk/problem)
{% endhint %}

A **`change`** is a modification, addition or deletion of an element of a company that may have an impact on procedures, infrastructure, etc. A change is often a relatively major event and requires follow-up. It may be linked to a problem and/or one or more tickets.

The change is created as a problem. Additional inserts are available to identify the **`impacts`**, **`monitor the points`** that will have been modified, and draw up a **`plan`** for deployment and fallback if necessary.

## Create a change

* From **`assistance`** > **`changes`**, click on **`add`**
* Fill in the **`title`** and **`description`** fields (they will already be pre-filled if you create a change from a problem).
* The tabs on the right of the screen are standard, you probably already know them from tickets.
* In analyses, 2 new inserts are available:
  * Impacts\*\*: generally lists the impacts of the problem
  * Checklist': the checkpoints to be carried out (or that have been carried out) before any changes are implemented.

![Alt text](/files/8S2XscVg11eUf0LP2alq)

## Track the change

***

### statuses

Different statuses are available for the changes and can be adapted as the change evolves.

| Status        |
| ------------- |
| New           |
| Evaluation    |
| Approval      |
| Accepted      |
| Pending       |
| Testing       |
| Qualification |
| Applied       |
| Review        |
| Closed        |
| Cancelled     |
| Refused       |

***

### Action plan

When a change is implemented, an action plan must be devised to minimise the impact on production systems.

In our example, the change is the result of a problem that has arisen. Once the causes have been identified, an action plan must be put in place to prevent the problem recurring.

![Alt text](/files/tmD4J7wRjPOtJCBw23g2)

* In your change, a **`plan`** insert is available covering 3 phases:
  * deployment plan,
  * fallback plan,
  * checklist.

This insert should be filled in with as much detail as possible.

![Alt text](/files/iukWtYXA5BAApz7PNzPD)

## Change validation (optional)

Once this insert has been updated with the necessary actions, it can be submitted for validation if required. A minimum threshold can be assigned to validate the change.

* From the **`validation`** tab, click on **`send a request for approval`**.
* Select the validation recipient
* enter a comment
* Click on **`add`**

If the validation is positive, you can then put the actions in place. If the validation is negative, you will need to improve your process to obtain validation of the change.

![Alt text](/files/9eoCK3mNboDsF3wPMYjt)

## Estimating the cost

You can also estimate the cost of the change. In our case, adding a new server (hardware cost + human cost)

* From the **`cost`** tab for your change, add all the expenses associated with implementing the change.

![Alt text](/files/ekKNYdJ2ZFutDymSaphE)

## Project

If necessary, you could add a project. For example, if the change you make has repercussions on other departments, you could decide to implement the same solutions for all the other departments. In this case, it could be linked to a business development project.

## Tickets

If this change is the result of one or more tickets, you can join them in the **`tickets`** tab.

![Alt text](/files/lq2YG3zfC3MWvLibn4Vy)

## Items

You can indicate all the elements that are impacted or linked by this change.

* Click on **`add an item`**.
* Click on the type of element to be added (here **`indicators`**)
* And choose the element(s) concerned

![Alt text](/files/GvmvUVNeM3KXOFhJ2dBo)

## Impact analysis

The impact analysis allows you to see the linked elements and to have an overview of the impact that a breakdown in the infrastructure could have.

* To add an item, click on
* Select the type of equipment you wish to add
* Choose the item from the available list
* Use the icon to join elements.
* With the icon you can manage the colours of the relationships between elements.

![Alt text](/files/C7mWSm9YozC73VRXRFUf)

{% hint style="info" %}
**Impact analysis**

To use the impact analye, the materials must have been created previously, either through inventory feedback or manually.
{% endhint %}

## Knowledge base

You can attach one or more items from the knowledge base

* Click on **`attach to a knowledge base entry`**.
* Select the item you want
* Click on **`add`**

## Closing

Each company has its own validation process. From an ITIL perspective, changes can be considered closed once testing and qualification have been completed. Once the change has been applied and reviewed, it can then be considered closed and the release to production is considered definitive.


# Creating ITIL Category

## Creating the category

* From **`configuration`** > **`titles`**, enter **ITIL** in the **search box**.
* Click on **`ITIL category`**.

![Alt text](/files/3mKwK30qiNWeiB3F3cI4)

* Click on **`add`**.
* Enter the necessary information

| Title                                | Data                                                        |
| ------------------------------------ | ----------------------------------------------------------- |
| Name                                 | Name of the category visible from the ticket interface      |
| Comments                             | Comment visible from the standard interface                 |
| As a child of                        | Possible dependency                                         |
| Technician in charge of the hardware | Technical manager can be assigned automatically if required |
| Group in charge of the hardware      | Technical group can be automatically assigned as required   |
| Knowledge base                       | Link to a knowledge base article                            |
| Code representing ticket category    | Internal code for ITIL categories                           |
| Visible in the simplified interface  | Visible or not from the simplified interface                |
| Visible for an incident              | Visible or not for an incident                              |
| Visible for a request                | Visibility or not for a request                             |
| Visible for a problem                | Visibility or not for a problem                             |
| Visible for a change                 | Visible or not for a change                                 |
| Template for a request               | Link a request template                                     |
| Template for an incident             | Link an incident template                                   |
| Grandfather for a change             | Link a change template                                      |
| Problem template                     | Link a problem template                                     |

{% hint style="info" %}
**Note on visibility**

Visibility indicates whether the category will be selectable from the assistance interface. If it is set to **`no`**, the category will be visible but not selectable. For example, to limit the selection of root categories and force users to refine their request by selecting a child category (rather than **`software`** choose **`software`** > **`email`**).

<img src="/files/Tx1srxtZpVDjglcq7ZYC" alt="" data-size="original">
{% endhint %}

{% hint style="info" %}
**Note on templates**

Templates can be used to simplify the interface with users. For example, you can pre-fill fields, hide some or force others to be filled in. See the chapter on **`Add templates`**.
{% endhint %}

* Once your category has been created, click on **`add`**.

![Alt text](/files/7j0kATFR426D60kU1L1Z)

## Link a category to a template

* For linking a category to a template and, for example, when a user selects the ITIL category **`mailbox`**, the template loads its content to the ticket, [read here](/tutorials/helpdesk/create_templates#link-your-template-to-your-category)


# Add an external planning

It is possible, in GLPI, to add an external calendar so that the events of a diary can go up in GLPI (personal calendar of the diary Google, Microsoft, etc. of a technician for example). This avoids the need to schedule an intervention when the technician is already scheduled for another task but does not appear to be busy in the GLPI schedule.

It is possible to integrate any calendar that can be shared in **`.ics`**.

{% hint style="warning" %}
**Bi-directional calendar**

At this time, **it is not possible to obtain bi-directonnality** of calendars. You cannot add an event to the GLPI calendar that will then be reflected in the technician's external calendar (Google, Microsoft, etc.).
{% endhint %}

## Google

To integrate Google calendar into GLPI, it must be public:

* From your calendar, click on in the top right-hand corner.
* Then **`Settings`**.
* In **`Settings for my calendar`**, click on the calendar concerned
* In **`Access permissions for events`**, click on **`Make available to public`**.

![public agenda](/files/ZpfrBeVfqEVN3wEQz1X1)

* In **`Integrate calendar`**, copy the URL from **`Public address in iCal format`**.
* Then go to the chapter [Setup GLPI](#setup-glpi)

![public shared](/files/5Z6psz6qYiFavyuSAfGP)

## Microsoft

To integrate a calendar from Microsoft, you need to publish it. Cela rend le calendrier public. You can then choose which information will be visible.

* Go to **`settings`** at top right
* From your mailbox (Web version here), go to **`calendar`**
* Then **`Calendar`**
* And then **`Shared calendars`**.
* In the box **`Publish a calendar`**, select the calendar concerned
* Choose the type of permissions
* Cliquez sur **`Publish`**

![publish calendar](/files/xaBqjOpGkCQwBrnrABsV)

* 2 links will appear, copy the **ICS** link

![copy the ICS link](/files/2IDGAVMwRgjk3QWRiygE)

* Then go to the [Setup GLPI](#setup-glpi)

## Setup GLPI

* From Assitance > Planning
* Click in the Schedules box
* Add the necessary information, remembering to paste the link from your schedule that you copied earlier&#x20;
* Click on Add

![add calendar](/files/ZchF87vMbDedXiX93Mon)

Your calendar events are now visible in the GLPI schedule

![event calendar](/files/aJZWF3B1XxOHd5Ddpb8I)


# Managing problems

A problem is the source of incidents that can be tracked in GLPI. Symptoms, causes and impacts can be referenced. Problems are most often reported by technicians rather than users.

{% hint style="info" %}
**Example of problems and related changes**

&#x20;In this example, we will take a problem to which a change will be linked. This is one case among many, the aim being to see the possible links between elements, **`tickets --> problems --> changes`**.
{% endhint %}

{% hint style="success" %}
**Concrete example**

The accounting department reports major slowdowns on the file server. Tickets have alerted the IT department, which has to take the requests into account, analyse the source of the problem and act accordingly.
{% endhint %}

## Create a problem

A problem is created like a ticket.

* From **`assistance`** > **`problems`** click on **`add`**
* Fill in the fields required to report a problem

The special feature of problems is that a **`analyses`** insert is available. In this box, you can enter :

* Symptoms
* Impact
* Causes

![Alt text](/files/YxUThrv53o30fpQeTG51)

<div align="left"><img src="/files/RKdmMlB6y3uIAT9oxYyK" alt="Alt text"></div>

* Click on **`add`**

***

### Link tickets

Problems are often created following feedback from user tickets. You can attach all related tickets to your problem to get a more global view of the impact.

![Alt text](/files/VtqNDYTFAen7EfZRjNsl)

***

### Linking a change

You can link a change if the problem requires a modification to an element of the infrastructure, a procedure, etc.

Please refer to the article [change](/tutorials/helpdesk/changes) if this applies to you. This section continues the example and shows you how to create and track a change.

***

### Add a cost

The estimated cost of the problem can be added in order to evaluate the expenses incurred.

* Click on add a cost
* Add a name
* Indicate the duration of the problem
* Indicate the different types of cost (time, fixed, material)
* Indicate the budget affected (the total cost will be directly deducted from the budget indicated)
* Indicate the start and end dates of the problem

![Alt text](/files/uVrBXJeyyQlYIG93a4Bo)

## Project

If the case requires it, you could add a project. For example, if the problem had repercussions on other departments, a project may need to be set up to improve the company's processes or infrastructure. The problem may be linked to a change that gives rise to a project that may impact several departments.

## Items

You can add elements affected by the problem. By elements, we mean any element of the park

* From the **`add an item`** section, select the type of item concerned from the drop-down list
* Select the item(s) concerned
* Click on **`add`**.

![Alt text](/files/Fj2laPHxsMU2SimbmZqQ)

## Impact analysis

The impact analysis enables you to see the linked elements and to have an overview of the impact that a breakdown in the infrastructure could have.

* To add an item, click on
* Select the type of equipment you wish to add
* Choose the item from the available list
* Use the icon to attach items
* With the icon, you can manage the colours of the relationships between elements.

![Alt text](/files/Rgkk0p9ilalrbWcrd6lH)

{% hint style="info" %}
**Impact analysis**

To use the impact analye, the materials must have been created previously, either through inventory feedback or manually.
{% endhint %}

## Note

It is possible to add notes. The note is a free text field with no formatting facility.

## Knowledge base

You can add one or more articles to the knowledge base.

* In the **`Link to a knowledge base entry`** section, add the article(s) you wish to add.


# Add a pending reason

{% embed url="<https://www.youtube.com/watch?v=WIAOUtzrNGE>" %}

***

A reason to wait allows you to put a ticket on hold, send automatic reminders and resolve the ticket if it has not received a response. All these actions are subject to conditions:

* the interval between automatic follow-ups,
* the number of follow-ups before resolution,
* setting up a follow-up template,
* implementation of a solution template.

## Create the pending reason

Go to **`setup`** > **`dropdowns`** and enter **`pending reasons`** in the search box.

![Alt text](/files/PNP89390YwQvICApRR3U)

Click on **`add`**

Name your pending reason

## Setting up the dunning option

What happens next will depend on your needs. Start by defining the **`automatic follow-up frequency`**. In our example, we're going to carry out **`every 3 days`**.

<div align="left"><img src="/files/5PFFNMUUi1YVdBEyPmr4" alt="Alt text"></div>

## Setting up the resolution option

We're going to define that a ticket can be closed after 3 follow-ups.

<div align="left"><img src="/files/shbgplmazZrDNFhiW8nt" alt="Alt text"></div>

## Define a follow-up template

This template will be used to send out reminders. Click at the end of the follow-up template field

<div align="left"><img src="/files/1Dzfq9bW1X4rFSPYhAia" alt="Alt text"></div>

Name your template and indicate the source of the tracking (helpdesk in our case)

Then enter the content of your follow-up, which will be sent to your contact person

<div align="left"><img src="/files/NolUuiSETibi3rjky8zv" alt="Alt text"></div>

Add this follow-up and then select it from the drop-down list

<div align="left"><img src="/files/y2eCQhJG2kjaEVPNGmB7" alt="Alt text"></div>

## Define a solution template

When this template is added to the ticket, it will close the ticket.Repeat the same process as for the follow-up templateClick on the at the end of the solution template field

<div align="left"><img src="/files/Z30e3WISG7CmrGguAQUv" alt="Alt text"></div>

Name your templateSelect the **`solution incident`** option so that the ticket can obtain the **`resolved`** statusAdd your follow-up and select it from the drop-down list.

Your pending reason is now ready, all you have to do is click on **`add`**

## Adding a reason for pending to a ticket

When you respond to a ticket, you'll be able to click on the **pause** symbol and select the pending reason you've just created

![Alt text](/files/FGJqzKPsSus7GetIB9AX)

## Automatics actions

{% hint style="danger" %}
**Warning**

Pending reasons depend on the **`pendingreason_autobump_autosolve`** automatic action. Check that this is active and correctly set (**`setup`** > **`automatic actions`**)

<img src="/files/fsweq3ksvl1N97S0x6WG" alt="" data-size="original">
{% endhint %}


# Creating Templates for Tickets

## Add templates

Templates can simplify user requests by pre-filling fields, hiding some or forcing certain fields to be filled in.

In our example, we'll create an incident template to help users report incidents correctly.

* From **`Setup`** > **`Dropdowns`** > **`ITIL category`**, select your category
* Click on **`incident template`**.
* Enter the name of your template
* Close the template creation confirmation window, then click on de **`template for an incident`**.
* Select the newly created template

![Template](/files/bWuhUrduE6R5uvkXNpbY)

***

### Mandatory fields

You can add mandatory fields for the simplified interface and/or the standard interface. They will be marked with a <i class="fa-asterisk" style="color:$danger;">:asterisk:</i>

In our example, we're going to force the user to fill in the **`description`** and the **`emergency`**.

* Select description from the drop-down list, then **`add`**.
* Do the same with **`emergency`**.

![Add mandatory field](/files/JhKaqoiESGteYmFn2G8D)

***

### Predefined fields

To guide your users, you can pre-fill fields to make the interface more interactive. This will give you as many elements as possible to help you resolve the incident. In our example, we'll fill in the description field to make it as complete as possible.

* In the **`predefined fields`** tab, select **`description`**.
* Fill in the information you deem necessary
* Click on **`add`**

![Add predefined field](/files/0Z0YQMOOOKj1WQp4bTNp)

***

### Hidden fields

Hidden fields avoid overloading the user interface and simplify the writing of the incident.

* In the **`hidden fields`** tab, add the fields you don't want to appear in the standard and/or simplified interface.
* Click on **`add`**

![Add hidden field](/files/orC77yXqWGIXNpaxOjFc)

***

### Preview

You can view the rendering of the simplified and standard interface in the corresponding tabs

***

### ITIL Category

The "ITIL category" tab lets you see which category your template is available in.

![Add ITIL Category](/files/00djHCbHfRdlbDzxBqC9)

You can add different templates for each type of category (request, incident, change, problem). You can also use the same template for several category types.

***

## Link your template to your category

{% hint style="info" %}
**Note**

If you want to know more about categories, you can use [this article](#itil-category)
{% endhint %}

* From **`Setup`** > **`Dropdowns`**, select the relevant category
* In the field for which you want your template to appear, select it from the drop-down list
* Click on **`save`**.

![Link ITIL cetagory to a template](/files/S1hvpqKYinswn3Ol7dYf)

From now on, when a user selects the ITIL **`mailbox`** category, the template will be selected.

![Overview](/files/coHMhz1byXMHBoQAEO0m)

{% hint style="success" %}
**Insert `description`**

The description box has been forced to prevent the user from leaving the default values, so modifying the default values ​​will be necessary, otherwise an error message will appear.

<img src="/files/EKoJsmWlADAWkPOKVzch" alt="" data-size="original">
{% endhint %}


# Using survey satisfaction

Native satisfaction surveys are available from GLPI. A star system is used to rate the quality of the ticket response and a comment can be left. The requester receives an email allowing him to respond to this survey, but it is also possible to respond directly from the ticket in the **`Satisfaction`** tab.

The following settings can be modified for each entity, allowing you to obtain different behaviour according to your needs.

## Set up satisfaction surveys

***

### Add the survey from the entity

* From **`Administration`** > **`Entities`** > *Entity required* > **`assistance`** >**`Configuring the satisfaction survey`**
* Complete the various tabs:
  * **Internal** or **External** survey
  * **Create survey after**: as soon as possible up to 90 days
  * **Rate to trigger survey**: randomly triggers surveys at the specified rate. If the unspecified option is selected, surveys will not be sent. Rate can be set between 10 and 100%.
  * **Duration of survey**: closes the survey after 180 days. It will not be closed if you choose unlimited.
  * **For tickets closed after** : Defines a date on which surveys will be sent.
  * Click on **`Save`**.

{% hint style="info" %}
**External survey**

If you use external surveys, the list of [available tags](#user-content-fn-1)[^1]\(1) will appear so that you can enter them in the survey URL. The survey URL must also be filled in so that the user can be redirected to your satisfaction tool.
{% endhint %}

{% hint style="success" %}
**Survey by entity**

This setting can be changed for each entity or inherited from the parent entity
{% endhint %}

## Set up notifications

***

### Sending the survey

Check that from **`Setup`** > **`Notifications`** > **`Notifications`**, the **`Ticket satisfaction`** notification is present. If this is not the case, you can create it with the following parameters by clicking on **`Add`**. The satisfaction survey template already exists, so all you have to do is add it to your survey, whether external or internal (it can of course be customised).

![Alt text](/files/GCUQicjaJmmfk9iUkhPI)

***

### Response to survey

From **`Setup`** > **`Notifications`** > **`Notifications`**, the notification **`Ticket satisfaction answer`** is created. It is sent to the requester and the technician in charge of the ticket to inform them that the response to the survey has been completed. You can of course modify this information or deactivate the notification if you wish.

## Modifying an enquiry

Only the requester can modify the response to their survey (if it is not closed according to the settings you have chosen). It is possible to retrieve the survey email or go to the ticket in question in the satisfaction tab. Modifications to the survey will be included in the ticket's **`historical`** tab.

## Statistics

It is possible to see the level of satisfaction of a particular ticket (from the ticket satisfaction tab), or to have more global statistics from **`Assistance`** > **`Statistics`** (this right can be added/removed from **`Administration`** > **`Profiles`**, **`assistance`** tab of the selected profile). These statistics are available for :

* Tickets
* Problems
* Changes

![Alt text](/files/46icMoPylNIYCj0BlRnV)

[^1]: * \[TICKET\_ID]
    * \[TICKET\_NAME]
    * \[TICKET\_CREATEDATE]
    * \[TICKET\_SOLVEDATE]
    * \[REQUESTTYPE\_ID]
    * \[REQUESTTYPE\_NAME]
    * \[TICKET\_PRIORITY]
    * \[TICKET\_PRIORITYNAME]
    * \[TICKETCATEGORY\_ID]
    * \[TICKETCATEGORY\_NAME]
    * \[TICKETTYPE\_ID]
    * \[TICKETTYPE\_NAME]
    * \[SOLUTIONTYPE\_ID]
    * \[SOLUTIONTYPE\_NAME]
    * \[SLA\_TTO\_ID]
    * \[SLA\_TTO\_NAME]
    * \[SLA\_TTR\_ID]
    * \[SLA\_TTR\_NAME]
    * \[SLALEVEL\_ID]
    * \[SLALEVEL\_NAME]


# Setting up Service levels (SLA)

An IT Service Level Agreement (SLA) is a documented agreement between an IT service provider and a customer, defining the services required and the level of service expected. In GLPI, it is possible to enter these SLAs so that the level of service expected by a customer is in line with the contract signed between the 2 parties.

Setting up SLAs involves several stages:

1. Define intervention times via the calendar (working hours, on-call, etc. several possible calendars).
2. Definition of SLAs (Service Level Agreements)
   * Maximum Time To Own (TTO)
   * Maximum time to resolution (TTR - Time To Resolve)
3. Definition of OLA (Operational Level Agreement)
   * Maximum Time To Own (TTO)
   * Maximum time to resolve (TTR - Time To Resolve)
4. Implementation of SLA assignment rules (escalation level)
5. Set up SLA reminder notifications
6. Automatic action settings
7. Checking the cron

{% hint style="success" %}
**Optional steps**

Depending on the contract with your customer, not all of these steps may be necessary. For this example, we'll take as complete a case as possible in order to have a complete view of GLPI's possibilities in terms of SLAs.Add an SLA
{% endhint %}

***

### Create SLA

* From **Setup** > **Service levels**, click on **Add**.
* Add a **name** to your SLA
* In the calendar insert, select the one you want from the list.
* If nothing suits you, you can add a new calendar by clicking on . You can refer to the article [Calendar](/tutorials/readme-1/calendar) to add a new calendar.

{% hint style="warning" %}
**Important step**

&#x20;The calendar step is important because your SLAs will take into account the opening or intervention times that have been entered.
{% endhint %}

***

### Add SLA service level

***

#### Add a TTO

* In your SLA, click on **Add a new item**.
* Select **Time to own**.
* Add the desired value (generally defined by the contract). In our example, we'll take 4 hours.
* Click on **Add**

![Add TTO](/files/wRQ7VFloPUVxJRsSUVYr)

***

#### Add a TTR

* Click on **Add a new item**.
* Select **Time to resolve**
* Add the value you want (usually defined by the contract). In our example we'll take 5 days
* Indicate whether the last day of the SLA should be a working day
* Click on **Add**

![Add TTR](/files/HVo0y03QVDgvFn2MOt6d)

{% hint style="info" %}
To **summarize**

The ticket should therefore be:&#x20;

* taken care of within 4 hours
* resolved within 5 working days
  {% endhint %}

***

### Add OLA service level

OLAs are internal service levels; they have no impact on SLAs, but define a level of service internal to the IT department.

Adding an OLA is strictly identical to the SLA, so you can repeat the above process.

![Add OLA](/files/zjs7Ho3yJVXKIhGczamr)

***

### Escalation levels

The escalation level enables you to apply a rule before/after the deadline imposed by the TTO or TTR, whether positioned in the SLA or the OLA.

You can, for example, add a TAG, assign a priority, assign a default technician, etc.

The following operation can be repeated for each TTO or TTR included in an SLA or OLA.

{% hint style="success" %}
**Example**

"We're going to create 2 types of escalation level:

1. For the SLA TTO :&#x20;
   * If the ticket is still in **New** status, a **group of technicians** will be automatically **assigned**.
   * The **priority** will be changed to **Very high**.

2. For SLA TTR:
   * 2 days before the end of the TTR, SLAs will be reminded that the ticket is still open and must be resolved on time.
     {% endhint %}

You can, of course, add/modify/delete anything you like, just like any other GLPI rule.

***

#### SLA escalation level - TTO

* From **Setup** > **Service levels**
* In the SLA tab, click on the name of your TTO
* In the escalation level tab
  * Enter a **name**
  * Indicate when the **execution** is to take place (before/after or at the end of the TTO)
  * **Active** to **Yes**
  * Click on **Add**

![Escalation levels](/files/5zlsIynM4aezpPKfRIG3)

* Click on the **name** of your Escalation level to add a rule that will be applied.
* In the **Criteria** tab, click on **add a new criterion**.
* In our case, we will specify **Criteria - Status is new** (you can also add a category, a priority, etc.)
* Click on **+ Add**
* In the **Actions** tab, click on **Add a new action**.
* Specify ***Technician group*** > ***Add*** > ***the\_desired\_group***.
* Click on **Add a new action**.
* Specify ***Priority*** > ***Assign*** > ***Very high***

![Rules of escalation levels TTO](/files/emAZYWTgQh2Vig8vbFgO)

***

#### SLA - TTR Escalation levels

* From **Setup** > **Service levels**
* In the SLA tab, click on the name of your TTR
* In the escalation level tab
* Enter a **name**
* Indicate when **execution** is to take place (before/after or at the end of the TTR)
* **Active** to **yes**
* Click on **Add**
* Click on the **name** of your Escalation level to add a rule that will be applied

{% hint style="danger" %}
**Logical operator**

&#x20;We're going to change the logical operator to **OR** because we're going to indicate that if the status isn't **closed OR solved**, then the rule will have to be applied.

<img src="/files/jrT2VZNxjTyglwT8knCF" alt="" data-size="original">
{% endhint %}

* In the **Criteria** tab, click on **add a new criterion**.
* In our case, we'll specify **Criteria - Status not closed&#x20;*****OR*****&#x20;resolved** (2 different criteria)
* Click on **Add**
* In the **Actions** tab, click on **Add a new action**.
* Specify ***Automatic reminders of SLA*** > ***Send*** > ***Yes***.
* Click on **Add**!

![Rules of escalation levels TTR](/files/ONK8JL0nvOI1IJwPFP5Z)

{% hint style="info" %}
**OLA**

You can, of course, repeat this procedure for OLAs
{% endhint %}

## Recipient of reminder notifications

Reminders are used by the **`Ticket Recall`** notification and use the ticket template. By default, the recipients of this notification are left blank. This step is therefore necessary so that the people concerned by SLA reminders can receive the notifications.

* From **Setup** > **Notifications** > **Notifications**, search for **`Ticket Recall`** in the list.
* In the **Recipients** tab, select the desired values (profile, groups, ticket group, requester, entity administrator, etc.).
* Click **Update** to confirm your changes.

![Recipients ticket recall](/files/XOvrxrbITFH9X7JEXa0H)

## Automatic actions

In order for SLA actions to be carried out, the **`slaticket`** action must be activated.

* From **Setup** > **Automatic actions**, find the **`slaticket`** action.
* Make sure it is :
  * **scheduled**
  * in **CLI** mode
  * with a minimum frequency of **5 minutes**.
* Click on **Save**.

## Cron

For on-premise instances, please check that your **cron** is correctly configured. Please refer to the [official documentation](https://glpi-user-documentation.readthedocs.io/fr/master/modules/Setup/crontasks.html#configure-automatic-actions)


# Inventory


# Computer inventory

Since GLPI 10, inventory is now native. For advanced tasks, the [GLPI Inventory](/doc-plugins/plugins-glpi/glpi-inventory) plugin is required (network discovery and inventory, VMware host inventory, data collection and package deployment; the GLPI agent is still required). The plugin is available from the marketplace.

{% hint style="info" %}
**Information**

Inventory escalation is of course compatible with Cloud instances
{% endhint %}

## Install Agent

You will need to install the agent to retrieve inventory.&#x20;

<a href="https://github.com/glpi-project/glpi-agent/releases" class="button secondary">Download GLPI Agent</a>

During installation, you will be asked to complete several steps.

## Setup the agent

* We suggest that you go through the full installation so that you can validate any requirements you may have (certificates, type of installation, etc.).

<div align="left"><img src="/files/eEno1lnxwoNGat84vpMD" alt="Complete installation of the GLPI agent"></div>

* The next step will allow you to identify your GLPI server.&#x20;
  * &#x20;**`https://my_instance.com/`**

<div align="left"><img src="/files/d2xfMyc8ZQgQHXnPfS01" alt="URL indication"></div>

* You can then choose how the agent runs. 3 modes are possible:

<div align="left"><img src="/files/ICDAP7NgAlUZmnBouFvW" alt="Install as a service"></div>

1. **`As a service`**: the task is launched in the background and runs without any user or administrator action<br>
2. **`As a task`**: a scheduled task is programmed so that the agent is launched every X hours/days<br>
3. **`Manually`**: the agent will only be launched on request<br>

* During installation, it is also possible to ask for an inventory to be taken at the end of the operation.
* A monitor agent can be installed. It enables tasks run to be forced by the user. This icon will be visible in the notification bar:

<div align="left"><img src="/files/xRs7H8JXsgrDOifozOQb" alt="Open GLPI Agent monitor"></div>

<div align="left"><img src="/files/Yx5FwdURna0KaLe4bchj" alt="Interface GLPI Agent monitor"></div>

The next steps will be up to you (certificate, proxy, etc.).

* You will also be able to identify a tag depending on how your GLPI is set up so that your PCs can be sent to the right entities, locations, etc.

<div align="left"><img src="/files/VzI3qC9oQwAPIt0uVh0R" alt="Tag Agent GLPI"></div>

* You can also ask for the user's virtual machines to be inventoried. They will be visible in the **Virtualisation** tab of the PC file:

![Inventory completed](/files/XhsAy4MSe42HZISiVKG3)

* You can also scan the user profiles to bring up any software found in the **software** tab of your GLPI server.

Once the installation is complete, if an inventory has been requested, it will now appear in the **computers** tab a few minutes after installation.

## References

[Documentation GLPI "Module assets - Computer"](https://glpi-user-documentation.readthedocs.io/fr/latest/modules/assets/computers.html)




---

[Next Page](/llms-full.txt/1)

