> For the complete documentation index, see [llms.txt](https://docs.eximee.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.eximee.com/documentation/documentation-en/budowanie-aplikacji/interfejs-uzytkownika/formularze/tworzenie-formularza/wlasciwosci-formularza.md).

# Form properties

Tab **Properties** allows configuration of parameters related to the behavior, appearance, and interaction of the form during runtime.\
These parameters affect how the form is presented to the user, how it communicates with services, and which interface elements are visible. Properties are grouped into thematic sections.

![Figure 1. Appearance of the "Properties" tab](/files/2181b7409d555c4770800138008f3e7d4a56a6c9)

## **Section "General"**

### **Application description**

A text field that allows you to add a short description or comment to the form project. This description is not shown to the end user, but it helps with identification in the repository and in team work.

### **Entry services**

This section contains a list of services that are attached to the application as startup services. These services will start at the beginning of the application's lifetime, if the activity condition is met. Entry services are executed sequentially, according to the order on the list. In edit mode, it is possible to add and remove an entry service and define the service launch condition.

<figure><img src="/files/f0ac54bdb7a229e75993f4ce489c565bd3180226" alt=""><figcaption><p><em><strong>Figure 2.</strong> Section "Entry services" with added services</em></p></figcaption></figure>

### **Services mapping input parameters**

{% hint style="info" %}
Availability of functionality depends on the license and may not be available in all deployments.
{% endhint %}

A section **Services mapping input parameters** allows you to connect services whose task is **to supply form fields** with data before it is started.\
These services are launched automatically **when entering the application** - both during standard opening of the form and in the case of its **unparking** (session resumption).

Thanks to these services, for example, you can pass customer data from an external system, set initial field values, or open the application on a specific page.

#### **Characteristics of mapping services**

* do not have **output parameters**,
* the result of the service's operation is **directly mapped to form fields or session variables**,
* may specify the page on which the form should open,
* run **always first** - even before entry services.

#### Implementation example (ServiceProxy)

To populate a field, the service should return in the map a key that will have the field identifier on the application and a value that will be assigned to it. Do not define **outputFields** for fields returned from the callService() method. To open the application on a specific page, pass the variable ***recentlyRequestedPageMid*** to the output map and pass the mid of the appropriate page to it.

{% code expandable="true" %}

```java
@Component
@Service(AbstractServiceProxy.class)
public class DemoMappingEntryService extends AbstractServiceProxy {

    private final static String TEXT_FIELD = "GesComplexComponent1.GesTextField1";
    private final static String PAGE_MID = "_recentlyRequestedPageMid";

    public DemoMappingEntryService() {
        this.name = "DemoMappingEntryService";
        this.description = "For test purposes ONLY!";
    }

    @Override
    public List<Map<String, String>> callService(Map<String, List<String>> map)
            throws ServiceProxyException {
        return Collections.singletonList(ImmutableMap.of(
                TEXT_FIELD, "Value passed from the DemoMappingEntryService service",
                PAGE_MID, "Page2"));
    }
}

```

{% endcode %}

{% hint style="info" %}
Demo application: demoSerwisMapujacyParametryWejscia
{% endhint %}

### **Exit services**

This section contains a list of services that are attached to the application as end services. These services will start before the end of the application's lifetime, if the activity condition is met.

### **Statistics**

This section contains options related to collecting statistics from the application. For each application, it is possible to specify which statistics should be collected and how often.

#### External statistics

Additionally, in the Statistics section, you can enable sending Google Tag Manager statistics. Read about the functionality itself in the GTM documentation: [GTM statistics](/documentation/documentation-en/budowanie-aplikacji/interfejs-uzytkownika/formularze/tworzenie-formularza/statystyki-gtm.md).

## **Section "Appearance"**

This section is responsible for configuring interface elements visible while filling out the application.

### **Side and bottom panel**

{% hint style="info" %}
Availability of functionality depends on the license and may not be available in all deployments.
{% endhint %}

Allows you to enable or disable the visibility of additional panels (e.g. a side menu with information, notifications, or content blocks). Panels can be used to display useful links or cross-sell elements.

Artifacts of type [Content (TextContent)](https://github.com/Consdata/eximee-docs/tree/main/budowanie-aplikacji/interfejs-uzytkownika/formularze/biblioteka-komponentow-bazowych/tresc-textcontent/README.md), selected from the repository. Editing the panel (adding a visibility condition, listeners, styles, or selecting a slot) requires clicking the pencil icon, and saving the changes requires clicking the save symbol. The placement of the added content is determined by the option **Slot**. Panels allow you to define multiple pieces of content that will be displayed one below the other.

<figure><img src="/files/9c1396c8ce930d493d8e2888caa3196f65e2a625" alt=""><figcaption><p><em><strong>Figure 3</strong></em><strong>.</strong> <em>Side and bottom panel - example of content definition</em></p></figcaption></figure>

<figure><img src="/files/708a9376d7c843596bd132488afe0f0725f62b94" alt=""><figcaption><p><em><strong>Figure 4.</strong> Sample appearance of the side panel on the application</em></p></figcaption></figure>

The content of the bottom panel is determined by setting the Slot option to the appropriate value, which depends on the implementation.

<figure><img src="/files/aa1bfa4439886300a5f16ba9afc658f7ba3a2760" alt=""><figcaption><p><em><strong>Figure 5</strong></em><strong>.</strong> <em>Sample appearance of the bottom panel on the application</em></p></figcaption></figure>

### **Visibility of steps**

Controls the display of the top horizontal progress bar (the so-called [form steps](/documentation/documentation-en/budowanie-aplikacji/interfejs-uzytkownika/formularze/tworzenie-formularza/kroki-i-strony-formularza.md)). Its hiding can be used in single-page applications or simplified processes.

In this section, you can define the visibility condition of the steps bar and indicate the elements that trigger this change (the so-called listening to elements).

<figure><img src="/files/987e39626616fa18c3c60c47418ea14c515a8634" alt=""><figcaption><p><em><strong>Figure 6</strong></em><strong>.</strong> <em>Example of a defined condition</em> <em>visibility of the steps bar</em></p></figcaption></figure>

<figure><img src="/files/e8e2e01b9a06c158e0dc662a9591764ac105276e" alt=""><figcaption><p><em><strong>Figure 7</strong></em><strong>.</strong> <em>Example of steps on the application</em></p></figcaption></figure>

### **Visibility of the navigation bar/button**

**Visibility of the navigation bar** allows you to determine whether the bottom navigation bar (with Back/Next/Submit buttons) should be visible. In the section **Visibility of the navigation button** only the condition for displaying the Next/Submit button is specified. In both sections, remember to indicate the elements that trigger the change (the so-called listening).

<figure><img src="/files/f14d50a3e044ddfaa4963831b23d5fa235fdd159" alt=""><figcaption><p><em><strong>Figure 8.</strong></em> <em>A section</em> "<em>Visibility of the navigation button"</em></p></figcaption></figure>

{% hint style="warning" %}
The currentPageId variable is not supported. For the navigation button visibility to work correctly, the currentPageMid variable should be used
{% endhint %}

### **Visibility of additional header element**

{% hint style="info" %}
Availability of functionality depends on the license and may not be available in all deployments.
{% endhint %}

Allows displaying an additional element in the first position of the page header (e.g. an icon, a button triggering an action). The type of element displayed may vary depending on the implementation and its presence is not guaranteed in all implementations.

### **Bottom Bar**

{% hint style="info" %}
Availability of functionality depends on the license and may not be available in all deployments.
{% endhint %}

Determines whether the form footer should be shown to the user. It can be hidden conditionally - e.g. on information or summary pages.

### **Panic Button (FAB)**

{% hint style="info" %}
Availability of functionality depends on the license and may not be available in all deployments.
{% endhint %}

Determines whether the floating button on the application page, opening an additional window (FAB - *Floating Action Button*) should be visible on the form.

#### **Visibility**

The button visibility is set in the subsection **Visibility**, where you specify the condition for showing the button and the element that should trigger this change (*listening*). This allows the button to be visible only in certain situations, e.g. after checking a box or in a given step of the application.

#### **Masking phone number**

In the section **Masking** you can define whether the phone number in the button popup should be masked (e.g. partially hidden). The number's visibility is determined by a condition and listening to the element triggering the change.

#### **Additional settings**

In the subsection **Additional data** you can indicate form components whose values will be passed to the button configuration - phone number, id or configuration version. This option is available only in selected implementations.

<figure><img src="/files/88d43a374260bbb00f1891063709b287a653a5c8" alt=""><figcaption><p><em><strong>Figure 9</strong></em><strong>.</strong> <em>Visibility of the "Panic Button" section with set conditions and parameters</em></p></figcaption></figure>

#### **Technical configuration**

The size and position of the browser window, as well as the website address it leads to, are defined for a given installation in the webforms.xml configuration file. Example values:

```xml
<floatingActionButton>
    <windowPositionX>100</windowPositionX>
    <windowPositionY>100</windowPositionY>
    <windowSizeX>100</windowSizeX>
    <windowSizeY>100</windowSizeY>
    <actionLink>http://consdata.pl</actionLink>
</floatingActionButton>
```

**Configuration parameters:**

* *windowPositionX* – distance of the window from the left edge (px)
* *windowPositionY* – distance of the window from the top (px)
* *windowSizeX* – window width (px)
* *windowSizeY* – window height (px)
* *actionLink* – website address opened in a new window; it can contain form variables available when the application starts, e.g.:

```
<actionLink>http://consdata.pl?nazwawniosku=${formId}&numerwniosku=${formInstanceNumber}</actionLink>
```

#### **Translations and text keys**

The labels on the component can be customized by adding translations in the main form template:

<table><thead><tr><th width="423">Translation key</th><th>Description</th><th>Default content</th></tr></thead><tbody><tr><td><code>iew.fab.need.help</code></td><td>title in the startup popup</td><td>“Need help?”</td></tr><tr><td><code>iew.fab.well.call.up</code></td><td>description in the startup popup</td><td>“We will call you back as soon as possible…”</td></tr><tr><td><code>iew.fab.order.call</code></td><td>button text in the startup popup</td><td>“Order contact”</td></tr><tr><td><code>iew.fab.thank.you.title</code></td><td>title in the thank-you popup</td><td>“We will call you back soon”</td></tr><tr><td><code>iew.fab.thank.you.desc</code></td><td>description in the thank-you popup</td><td><em>""</em></td></tr><tr><td><code>iew.fab.error.could.not.order.conversation.title</code></td><td>title in the error popup</td><td>“Failed to order a call”</td></tr><tr><td><code>iew.fab.error.try.again.desc</code></td><td>description in the error popup</td><td>“Try again in a moment”</td></tr></tbody></table>

{% hint style="info" %}
Demo applications: demoFab, demoFabZmienioneLitera
{% endhint %}

### **Loading progress style**

Defines how the loading indicator is displayed during form initialization. The default value is "preloader". Available styles may vary depending on the theme (e.g. progress bar, spinner, logo animation).

### **Conditional application titles**

Allows you to define different titles displayed in the form header depending on whether specified conditions are met. Each title has an assigned **visibility condition** (e.g. data-dependent), which allows the header to change dynamically depending on the application stage or the user's role.

#### **Title definitions**

Each title definition is presented in a separate table row. The given row contains:

* **Title key** – translation identifier or fixed text displayed in the form header,
* **Visibility condition** – logical expression that specifies when the title should be used,
* **Change-triggering elements (listeners)** – list of components or variables (separated by commas) whose change causes the condition to be re-evaluated,
* **Edit and delete buttons** – allow you to modify or delete the title definition row,
* **Save button** – visible while editing the row; saves the entered changes,
* **Reorder handle** – allows you to drag the title and set its priority (order of condition checking).

{% hint style="info" %}
Rows are processed **from top to bottom**, so if several conditions are met, the title from the topmost row will be displayed.
{% endhint %}

<figure><img src="/files/c269ece346c9ff5f3e67ddaa2d81a2ba03c3e3aa" alt=""><figcaption><p><em><strong>Figure 10.</strong> Example of four defined conditional titles</em></p></figcaption></figure>

{% hint style="warning" %}
If changing the application title depends on moving between pages, then use the variable *currentPageMid*. This will allow the title to change both when moving to the next page and when going back.
{% endhint %}

{% hint style="info" %}
Demo application: demoFormTitles
{% endhint %}

{% hint style="info" %}
Demo application: demoWlasciwosciSzablonuWniosku
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.eximee.com/documentation/documentation-en/budowanie-aplikacji/interfejs-uzytkownika/formularze/tworzenie-formularza/wlasciwosci-formularza.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
