# Creating a Custom Field

To create a Custom Field, please go to `Settings` -> `Custom Fields` and click on "Create Field".

## Default Fields

{% hint style="warning" %}
Before creating a Custom Field, it might be useful to get to know the default fields which are already in place for each Client and Inventory.
{% endhint %}

{% content-ref url="../../working-with-clients/client-detail-view/default-and-custom-fields" %}
[default-and-custom-fields](https://rollouter.gitbook.io/guide/rollout-managers/working-with-clients/client-detail-view/default-and-custom-fields)
{% endcontent-ref %}

***

## Name, description and behaviour

The name of the Custom Field will be shown on the [Client Detail View](https://rollouter.gitbook.io/guide/rollout-managers/working-with-clients/client-detail-view) and [Delivery Sheet](https://rollouter.gitbook.io/guide/rollout-managers/working-with-clients/delivery-sheet). The description can help with distinguishing the Custom Field and is only displayed on the Settings page.

### Required Custom Fields

If a Custom Field value must be defined when creating a Client, you can check the "Field is required" checkbox and the user will be asked to provide a value for the field.

After the Client is created, the value of a required Custom Field can never be empty.

### Hiding Custom Fields on the Delivery Sheet

In case a Custom Field is only for internal use or simply not of interest to the person signing the Delivery Sheet, you can hide it by checking the "Hide on Delivery Sheet" checkbox.

***

## Choosing a Type

| Field Type                      | Usage                                                | Appearance                                                                                                                                                                                                                                                |
| ------------------------------- | ---------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Input                           | A single-line text.                                  | <img src="https://750384937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIeSHc7pNZWey2rD63q9j%2Fuploads%2Fa5xlpkImd7mpKBrGjagT%2Fimage.png?alt=media&#x26;token=b0c483b9-83e2-49a8-959f-feac69294375" alt="" data-size="original"> |
| Text Area                       | A multi-line text.                                   | <img src="https://750384937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIeSHc7pNZWey2rD63q9j%2Fuploads%2Fg2st8l8lPaF6lJopDjYg%2Fimage.png?alt=media&#x26;token=de4db619-f95b-4565-908c-c56fd80140eb" alt="" data-size="original"> |
| Selection                       | Selecting one out of the given options.              | <img src="https://750384937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIeSHc7pNZWey2rD63q9j%2Fuploads%2F2GobBvhCmP6RonTF6lsG%2Fimage.png?alt=media&#x26;token=ad398495-c77d-4386-91a9-7fc2b570a192" alt="" data-size="original"> |
| Multi-Selection with options    | Select multiple out of the given options.            | <img src="https://750384937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIeSHc7pNZWey2rD63q9j%2Fuploads%2FVUq97c7qG5TZwU5UjEis%2Fimage.png?alt=media&#x26;token=9cf73eb8-5b22-4d10-8b7c-21c96873a9a5" alt="" data-size="original"> |
| Multi-Selection without options | Define multiple and invididual options while in use. | <img src="https://750384937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIeSHc7pNZWey2rD63q9j%2Fuploads%2FVKD32G6FKnZQQpotgV6v%2Fimage.png?alt=media&#x26;token=093b5a2d-1107-4520-8da0-abb24c17c068" alt="" data-size="original"> |

## Adding validation via Regular Expressions

With [Regular Expressions](https://learn.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-language-quick-reference), the pattern of a text can be defined. By configuring one for your Custom Field, you can define how its value must look in order to be stored in the database.

This can for example be used to ensure a MAC address has the correct format:

| When creating the Custom Field                                                                                                                                                                                                                            | When trying to save an incorrect value                                                                                                                                                                                                                    |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <img src="https://750384937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIeSHc7pNZWey2rD63q9j%2Fuploads%2F666564GgiD8ifEAKvjK5%2Fimage.png?alt=media&#x26;token=332e8a7e-9287-480b-a08d-5615492c1c8c" alt="" data-size="original"> | <img src="https://750384937-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FIeSHc7pNZWey2rD63q9j%2Fuploads%2F4XQbMmavT7wG2GxV5BUC%2Fimage.png?alt=media&#x26;token=261c8956-9a3f-4679-97e7-e686cd74f301" alt="" data-size="original"> |
