Formcreator
Requirements (on-premise)
10.0.x
8.1
8.2
11.0.0
8.2
8.4
Version 3.0.0 of the plugin, called Formcreator Migration Tool, has been designed to prepare the migration of Formcreator forms to the Forms module (native forms introduced in GLPI 11).
With the many successive versions of Formcreator, the structure of the tables may have varied over time. Version 3.0.0 ensures a predictable and consistent state of the data before migration to GLPI 11, in order to simplify the migration script integrated into the GLPI core.
You can therefore upgrade your instance directly to GLPI 11.x from any previous version of GLPI and Formcreator.
Example: From GLPI 9.5.2 with Formcreator:
Install GLPI 11 and this plugin (v3.0.0) directly
Execute the table migration via the plugin
Run the GLPI core migration
A dedicated interface guides you through the different steps of the migration.
This plugin should be installed only for the duration of the migration, and then uninstalled once the operation is completed.
FormCreator is a plugin which allow creation of custom forms of easy access.
Install the plugin
Go to the marketplace. Download and install the plugin Form Creator

Features
Direct access to forms self-service interface in main menu,
Highlighting forms in homepages,
Access to forms controlled: public access, identified user access, restricted access to some profiles,
Simple and customizable forms,
Forms organized by categories, entities and languages,
Questions of any type of presentation: Textareas, lists, LDAP, files, etc,
Questions organised in sections. Choice of the display order,
Possibility to display a question based on certain criteria (response to a further question),
A sharp control on responses from forms: text, numbers, size of fields, email, mandatory fields, regular expressions, etc,
Creation of one or more tickets from form answers,
Adding a description per fields, per sections, per forms, entities or languages,
Formatting the ticket set: answers to questions displayed, tickets templates,
Preview form created directly in the configuration,
Translation of forms to serve them in several languages.
You can take an look to the full changelog from plugin sources.
Install the Plugin
Uncompress the archive.
Move the
formcreator
directory to the<GLPI_ROOT>/plugins
directoryNavigate to the Configuration > Plugins page,
Install and activate the plugin.
The plugin's directory must have the same name as the plugin:
Good: [glpi/plugins/formcreator]{.title-ref}
Bad: [glpi/plugins/formcreator-master]{.title-ref}
Bad: [glpi/plugins/formcreator-0.90-1.3.2]{.title-ref}
Only one directory must contains the plugin's files of a single plugin in the GLPI plugins directory. Don't rename the plugin's directory for backup, move it!
Service catalog
The service catalog is a replacement for the GLPI's simplified interface.
It is enabled on a per entity basis and exists in two flavors
simplified
extended
To enable it, edit an entity, open the [Forms]{.title-ref} tab and set the field [Helpdesk mode]{.title-ref} to [Service catalog simplified]{.title-ref} or [Service catalog extended]{.title-ref}. This setting handles inheritance from parent entity to children entities.
Users using the simplified interface will benefit a new interface allowing them to:
browse forms and FAQ with the unified interface
follow the process of their requests
book assets
view their feeds
Users using the extended interface have a more complete view on their requests.
Forms with [Direct access on homepage]{.title-ref} enabled will appear in the interface. Users may search by browsing the categories on the left of the screen, and may also search for forms with a natural language search engine.
By default FAQ items in the Knowledge Base also show with forms. The only prerequisite is to associate form categories to knowledge base categories (in [Setup > Dropdowns : Forms > Form categories]{.title-ref}).
It is possible th have a distinct display of FAQ in [Administration > Entities > Forms]{.title-ref}. When Distinct menu entry is selected the service catalog shows a new menu entry on the left. FAQ are browsable by category and key words.
Overview
The service catalog shows several counters on the top left corner. Those counters show all requests involving the current user as a author, requester, observer, assigned or validator.
The requests displayed here are
tickets created without Formcreator
tickets generated by forms havung only one target tickets
form answers when the form has no target ticket
form answers when the form has several target tickets
The request are spread over 4 counters
processing
pending
to validate
closed
RSS feeds
When users are allowed to view RSS feds, the service catalog shows a menu entry on the left to access them. RSS feeds administration is done in GLPI as usual.
Reservations
Users may book an asset with GLPI's reservation system, avaialble in the left menu of the service catalog.
Forms configuration
Form creation
Navigate to Administration > Forms.

Click on the button to add a form +
Following fields must be populated:
Name: Name of the form.
Active: A form is inactive by default. You need to explicitly activate it when it is ready to use.
It is recommended to fill the Category field:
In the simplified interface, categories allow to tidy forms by Blocks.
If you want to use the service catalog you must use form categories.
Direct access on homepage: Direct access to the form from the GLPI's simplified interface.
Description: displays in the list forms.
Language: by default a form is set to the language of its creator. The form will be available only to users using the same language as the form. Choose All languages to make the form available to users without language restriction.
Header: displays when the form is displayed.
Need to be validate: If Yes a list of validators is displayed. This is a list of GLPI users (with the right Validate an incident or Validate a request (in its profile) on a compatible entity with the form's entity. The list of validators is a multiple choice list. If no validator is selected all of them are submitted when the form is being used.
Default form in service catalog: if Yes the form will display in the service catalog without being filtered by the current category or keywords.
When all fields are filled, click on the add button at the bottom of the page.
Sections
After clicking on the tab Question the following page displays:

You must create a first section. Sections are intended to organize questions in the form.

It is possible to setup conditions to show the whole section, based on the answers provided to questions located in other sections of the form.
Questions
Click on the link Add a question in a section of your choice.

The following page displays:

A question is made of:
a title: this is the label of the question in the form.
a type: see list below.
a section: the section containing the question. You can move a question to an other section with this field.
a description: it is displayed under the question in the form. Use it as a hint for the requester, telling him which content is expected.
a dropdown list Show field to enable a condition
It submits the following choices:
Always visible: the field is always displays
Hidden unless: The question is hidden except if answers to other questions matches a condition.
Displayed unless: The question is displayed except if the answers to other questions matches a condition.
Conditions may be multiple. To add or remove a condition two buttons are available:
Questions are organized on a 4 columns array. You can resize width of questions, reorder them using drag and drop and put up to 4 questions on the same row.
Types of question
There are about twenty types of questions available. Depending on the chosen type, you need to provide additional information.
Actors
This field allows you to choose one or several users:
in GLPI, available in Administration > Users
not in GLPI, by typing an email address
Checkboxes (multiple choices)
Add a line per value in Values. Default values may be set in Default values, one per line. If this field is empty, no checkbox will be ticked.
Date / Datetime / Time
This field allows to select a date, a datetime or a time from a mini calendar.
Description
This field only displays information. Use it to give more details about a question.
Dropdown
This field allows the user to choose a value among those available in a dropdown from GLPI (in Configuration > Dropdowns).
Email
The answer to this type of field must be a syntactically valid email address.
File
This field allows the requester to upload a file.
Float
This field must be a float value. Note you may use a regular expression to tighter restrict the answer.
GLPI Object
This field allows you to build a dropdown from a GLPI object among those available in the menus:
Assets
Assistance
Management
Tools
Administration
Hidden field
This field is hidden and allows to retrieve an arbitrary value when generating the target (ticket or change).
Hostname
This field is invisible. It allows to get the hostname of the computer used by the requester, assuming the DNS is able to properly resolve it from its IP address
Integer
This field must be an integer value. Note you may use a regular expression to tighter restrict the answer.
IP Address
This field is hidden and collects the IP address of the form requester. It does not show in the form.
LDAP select
This field allows you to create a dropdown list with objects from a LDAP directory:
Multiselect (multiple choice)
This field allows you to create a dropdown list with ability to select multiple items. Values are added one per line in the field Values. You may set default values, one per line in Default values*. If no default value is set then no item will be selected by default.
Request type
This field is a dropdown with "Incident" or "Request" choices. It can be used to set the request type of a ticket being generated by the form.
Radio buttons (one choice only)
Add a line per value in Values. A default value may be set in Default value. If this field is empty, no radio will be selected.
Select (one choice only)
This field allows you to create a dropdown list and set its items. Items are added one per line in Values. Default value may be set in Default value. If there is no default, no item is selected by default.
Tags
This is a hidden field to add a tag to the form for future processing.
Text
This field allows you to input a single line of text.
Text area
This field allows you to input several lines of text.
Urgency
This field allows you to select an urgency defined in GLPI.
Conditions
Conditions are expressions involving questions and sections which are evaluated in order to determine
if a question is displayed
if a section is displayed
if the submit button of a form is displayed
if a target (see below) must be generated
Available operators in an assertion are:
equals
not equals
less than
greater than
less than or equal
greater than or equal
is visible
is not visible
matches a regular expression
The condition expression can be used with the following rules:
Hidden unless: the item is hidden or not generated except when the expression is true
Displayed unless: the item is displayed or generated except when the expression is true
Access types
Three values are available:
Public access: Anonymous users may access the form; you may use it in an intranet.
Private access: Users having a GLPI account may access the form.
Restricted access: Only users having the specified profiles may access the form.
When a form is set to Public access it is possible to enable a simple captcha. This captcha should prevent spamming if a form is accessible from internet.
Targets
There are three types of targets for a form:
tickets
changes
problems
It is possible to generate any number of targets from a single form. Mixing types of targets is also possible.
To create a target click on the link Add a target
The following window is then displayed:
Choose a target name and type, then validate. The new target is created and is available for tuning.
Preview
This tab allows you to view how the form will be rendered and test it without activating it.
Form answers
This tab shows all answers saved for the form.
Categories
Menu : [Setup > Dropdowns : Forms > Form categories]{.title-ref}
Form categories allow you to arrange your forms list. Forms are displayed when they belong to the selected category or any sub category. When a form does not have any category, it is displayed when no category is selected or when the user selects "view all".
You can add or edit categories generally from the Setup menu : [Setup > Dropdowns]{.title-ref}.
You can also add new categories directly from the form page like all GLPI dropdowns.
They are defined by entities and can be translated since GLPI 0.85 like all other dropdowns.
Configuration

Render

Questions
After the creation of a form, create fields for the user to fill out.

The name of the questions will appear on the left and the field type selected on the right.
The Description will be under the input field.
Additional options may be displayed depending on the currently selected question type.
If validation of the input is desired, it can be implemented following PHP Regular Expressions.
If you want to show or hide questions depending on the answers of other questions, use the show fields area when editing a question. In the version 2.5.0 you may use more complex expressions checking for the content of several questions, and use logic operator OR and AND. The precedence of boolean operators applies, meaning that AND has precedence over OR.
Translation
In some cases a form should be available in several languages. Choose first in which language a form should be created. This language should be english (US or UK) or the language that most of target users understand. This is the fallback language if no alternative is found.
This language is also used as reference in the translation process. Then be sure that the chosen language is readable by the user who will translate the form.
To translate a form open the tab Form languages, then create all languages you need to provide to users.

Choose a language added to the form and click it to begin or resume translation, then select the tab Translations. Click the button New translation and a popup dialog will open and show a string to translate. Type the translation, and click save or validate with Enter on your keyboard.

If another string must be translated, it will show immediately. If no more string needs to be translated, a message will show instead.

When you close the dialog the list of translated strings is refreshed. You can edit a translation by clicking on it, delete one or several translations with the checkboxes on the left of the list and the Delete button**. You can also filter the list with the filter input box.

Targets
Targets are objects generated by FormCreator submission. If a form requires validation, the targets are delayed until approbation.
A target ticket defines the ticket generated by the form. You may have several targets per form.
Open the tab [Destination]{.title-ref} and create a target with a name and a type (currently ticket only).
Target ticket
A target ticket generates a ticket.

The ticket is build from scratch or from a ticket template available in GLPI. You may
customize the name of the target ticket to distinguish it from possible other targets,
customize the title and description of the ticket using questions and answers,
set tne destination entity of the generated ticket,
set a time to resomve (formerly due date),
set the type of ticket (request or incident),
set the associated elements,
set the category,
set the urgency,
set the location,
assign tags to the ticket if the plugin [Tags]{.title-ref} is available,
link the generated ticket to other tickets
define actors of the ticket.
define conditions to meet to generate the target ticket
Destination entity
Many choices are avaialble:
Current active entity: the entity of the requester who fills a form,
Default requester's entity: the default entity defined for the user who fills the form,
First dynamic requester's entity (alphabetical): sorts all dynamic entities of the requester alphabetically and selects the first one,
Last dynamic requester's entity (alphabetical): sorts all dynamic entities of the requester alphabetically and selects the last one,
The form's entity: the entity where is located the form being filled by the requester,
Default entity of the validator: the default entity of the validator who validates the request,
Specific entity: an entity set by the form's designer,
Default entity of a user type question answer: the default entity of a user choosen by the requester in a question.
From a GLPI object > Entity type question answer: the entity choosen by the requester from a question.
Ticket template
Sets predefined setings for the ticket from a template. All settings defined in the target ticket will override the values found in the template.
Request type
Sets the type of the generated ticket
Default or from a template: value set by GLPI when no type is set, or from a template, if any and if this template defiines a type
Specific type: either request or incident,
Equals to the answer to the question: the value is set from a request type question.
Associated elements
Sets associated elements to the generated ticket
None : self explanatory, Specific asset: an asset set by the designer of the form, Equals to the answer to a question: an asset set by the requester, from a question Last valid answer: an asset set by the requester, from the last visible question eligible for this purpose
Category
Sets the category of the generated ticket
Category fro template or none: sets the category from a template if any and if this template has a predefined category. None in all other cases,
Specific category: a category set by the form's designer,
Equals to the answer to a question: a category choosen by the requester,
lastr valid answer: a category from the last visible question of type category,
Urgency
Urgency fro template or none: sets the urgency from a template if any and if this template has a predefined urgency. None in all other cases,
Specific urgency: an urgency set by the form's designer
Equals to the answer to a question: a category choosen by the requester,
Location
Location from template or none: sets the location from a template if any and if this template has a predefined location. None in all other cases,
Specific location: a location set by the form's designer
Equals to the answer to a question: a category choosen by the requester,
Condition to show the target
The form's designer may restrict creation of the ticket depending on conditions.
Target change
A target change generates a change

The change is built from scratch. You may
customize the title, description, imapct, control list, deployment path, backup plan and checklist fields using questions and answers,
set the urgency from a value or a question
choose the entity of the change among many policies
set the time to resolve
define the actors of the change
set the category of the change
define conditions to meet to generate the target ticket
Target description templating
Target ticket and target change both have description template. By default the template uses the tag ##FULLFORM##
. This tag is a default template where all questions and sections are displayed in the same order as the form.
Each question has 2 tags
##question_x##
which is replaced by the label of the question. X is the ID of the question.##answer_x##
which is replaced by the answer to a question. X is the ID of the matching question.
Questions of type dropdown support more complex expression like ##answer_x.name##
. x
still means the ID of a question. the word after the dot is the name of a property available in the search options of the itemtype of the dropdown question.
As an example, consider a dropdown question which shows locations. The itemtype set by the form designer is "Location". The designer can render in the target many fields of the location selected by the requester, such address, postcode, state, building, and many other data. To find them, the admin may rely on the list available in the search filters for a location.
Issues lifecycle
Abstract
The service catalog relies mostly on a list of issues (or assitance request). Issues are created and maintained upon events related to tickets and form answers.
When a ticket is created from GLPI, then a new issue is created in the database. When this ticket is being updated, the issue is updated to reflect all relevant changes.
Form answers are created when a requester fills a form and submits it. When a form answer is created a new issue is created as well. As a form answer may or may not trigger the creation of tickets, issues behave differently depending on this quantity of generated tickets.
Ticket created from GLPI
When a ticket is created from GLPI, the issue reflects most useful information from this ticket.
Form answer without any generated ticket
When a form answer did not generate a ticket, or when the form answer generating tickets is waiting for validation, then the issue reflects the form answer.
Form answer with a single generated ticket
When a form answer trigered the creation of one and only one ticket, then the issue reflects this ticket. This is also true when the approval of a form answer triggers the creation of a single ticket.
Form answer with several generated tickets
When a form answer generated several tickets, then the issue reflects a list of those tickets. Each ticket is viewable by the requester, if he is granted to view it.
Status
Computation of status
Issues follow the lifecycle of tickets or form answers, depending on which object it reflects.
When an issue reflects a single ticket, its status takes into account the validation status of a ticket, if any. The validation status of the ticket takes precedence when the ticket is not solved and waiting for approval or has been refused. For all other cases, the issue shows the regular ticket status.
You may refer to the following table to have a quick view of how the status is computed:
Validation Status
NONE
WAITING
REFUSED
ACCEPTED
Ticket
Status
INCOMING
T
V
V
T
ASSIGNED
T
V
V
T
PLANNED
T
V
V
T
WAITING
T
V
V
T
SOLVED
T
T
T
T
CLOSED
T
T
T
T
T = status picked from Ticket
V = status picked from Validation
When an issue reflects several tickets then the status of each ticket is computed from the above description, and the least advanced status is used. If an issue reflects 3 tickets having statuses Waiting, Resolved and Closed, then the choosen status is Waiting. This means that an issue is closed oly when all its tickets are closed.
searching issues by status
The search engine shows many statuses. Some are shortcuts to search several statuses at once, like tickets, some are specific to the statuses of form answers.
new: new issues
processing (assigned): processing issues
processing (planned): planned issues
waiting: issues waiting for information from requester or waiting for validation by a valdiator
solved: issues solved or refused by a validator
closed: issues closed or accepted by a validator (this happens when no ticket has been generated after validation)
not solved: all statuses but solved or closed
not closed: all statuses but closed
solved + closed: issues solved or closed
all: any status
accepted: issues accepted by a validator
refused: isses refused by a validator
Exporting and importing forms
Abstract
Formcreator allows exporting and importing forms between instances of GLPI.
This feature is designed to let administrators develop forms on a testing environment and copy them on a production environment.
When a form is being imported the plugin searches for a matchng form in the database. This is done with the help of a random identifier created when a new form is instanciated. Each sub object (sections, questions, conditions, targets) also have a random identifier. This helps the plugin to find a matching item and update it if necessary. Thanks to this mechanism Formcreator is able to update a form when it is imported more than once.
Limitations
A form may contain relations to objects of GLPI itself (mostly users, groups, categories, entities). There is currently no reliable way to maintain relations between forms and GLPI's objects or assets accross instances. It is therefore highly recommended to develop forms on a testing environemnt with a reasonably recent copy of the production database.
The export / import feature does not support importing forms accros different versions of Formcreator. The version 2.10 shows a warning if it detects a attempt of importing forms from a previous version. In version 2.11 such imports are not allowed.
Exporting forms
Navigate to Administration > Forms
Use massive actions to export one or more forms. Clicking on the Post button will start the download of a JSON formated file. This file contains all forms selected for the export.

Importing forms
Navigate to Administration > Forms
Use the toolbar to import forms.

Select one or more JSON files created with the same version of Formcreator and validate.

Depending on the complexity and the quantity of forms the process may be slow. Please be patient.
Carefully check the messages when the import completes. You may get warnings and errors.
Import behavior
Entities
When Formcreator imports a form, it checks that the entity of the form exists and the user has right to update entities. If not, the form is ignored and trigger a warning.
Form categories
Form categories are created if they don't exist yet.
Users and groups
The users and groups found in target actors must exist. If not, the import of the form will stop with an error, leading to an incomplete form. Other forms will be imported.
Last updated
Was this helpful?