# Add Questions

Questions can be dragged from the left column into the middle one. A preview overlay will show you where the question will be placed.

Questions in the middle column can be re-ordered dragging them above or below other questions.

Notice some indicator icon on the right of each question:

* A green check: the question is **valid**
* A yellow warning sign: the question is **invalid**
* A down arrow: the question has some **jumps** set

![](https://3293478884-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F32OIF30CgrNUuRY6IjkW%2Fuploads%2Fgit-blob-b726cd3b9423392b552b773e11fb35aa87017ad3%2Fadd-inputs-1.png?alt=media)

Once a question gets selected (clicking on it, it also gets a purple colour), its settings panel appear on the right, divided in:

* Properties
* Advanced
* Jumps

## Properties

![](https://3293478884-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F32OIF30CgrNUuRY6IjkW%2Fuploads%2Fgit-blob-6057a3c619fdb40d64d0bc276c06e4a59c133f81%2Fadd-inputs-properties-panel.png?alt=media)

Here is where the basic properties for a question get set.

### Question Text

The **question** text is always set here.

Just type your question and you are good to go. You **MUST** have some text set for each question, or the question will be invalid.

{% hint style="warning" %}
A project can be saved only when **ALL** its questions are valid.
{% endhint %}

On this panel you also have the option to set a question as:

### Required

The answer is required by the user to proceed with the form.

### Title

the answer will be used to identify a single entry when viewing the entries on a device or on the server **(**[**Read title section for more info**](https://docs.epicollect.net/formbuilder/title)**)**

{% hint style="info" %}
If the question is of type README\_,\_ you can only specify some text to be shown, and basic formatting is available
{% endhint %}

{% hint style="info" %}
If the question is of type RADIO\_,\_ DROPDOWN\_,\_ or CHECKBOX, you can list all the possible answers here as well. Just click on "Add Answer" and modify the placeholder text with anything you want. You **MUST** have at least one possible answer set.
{% endhint %}

{% hint style="info" %}
For LOCATION, PHOTO, AUDIO, VIDEO, BRANCH, and GROUP you can only specify the question text.
{% endhint %}

## Advanced

![](https://3293478884-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F32OIF30CgrNUuRY6IjkW%2Fuploads%2Fgit-blob-bb475aff328a38a2a76225e6b2ceb9108fbd902a%2Fadd-inputs-advanced-panel.png?alt=media)

Advanced settings depend on the question types. If the question does not have any advanced setting the tab will be disabled.

### Initial Answer (default answer)

The input field on the device will be pre-filled with the value set here, think of it as a default answer.

### Regex

The answer MUST match a regular expression. A regular expression (regex) is a special text string for describing a search pattern. You can think of regular expressions as wildcards.\
You are probably familiar with wildcard notations such as `*.txt` to find all text files in a file manager. The regex equivalent is `.*\.txt` **(**[**What is a regex?**](https://en.wikipedia.org/wiki/Regular_expression)**)**

### Double Entry

**Require double entry verification:** two identical answers must be provided to proceed. It is useful for confirmation, like a code or an email.

### Uniqueness

**Make answer unique (form OR hierarchy):** the answer must be unique. You can select if you like to have it unique for any entries belonging to a form or just for the children of a particular entry (hierarchy). More on [**uniqueness.**](https://docs.epicollect.net/formbuilder/uniqueness)

### **Date & Time**

For DATE and TIME questions, **a selection of date or time format is available**. You also have the option to set the current date or time when the question is shown on the screen ("*Set initial answer to current date*" checkbox).

![](https://3293478884-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F32OIF30CgrNUuRY6IjkW%2Fuploads%2Fgit-blob-1673e67488158298f4e31284b745c2a3eb330765%2Fadd-inputs-advanced-date-panel%20\(1\).png?alt=media)

### Numeric (Integer or Decimal)

NUMERIC questions: a **min** and **max** value can be set. Also, there is the option for the question to be **decimal** (float) or **integer.**\\

![](https://3293478884-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F32OIF30CgrNUuRY6IjkW%2Fuploads%2Fgit-blob-f11e2e041a2b174d44705a70d7c9be0b82100b1b%2Fadd-inputs-advanced-numeric-panel.png?alt=media)

## Jumps

![](https://3293478884-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F32OIF30CgrNUuRY6IjkW%2Fuploads%2Fgit-blob-1148fd1b625f8948d100e474f21afc350cce7e7c%2Fadd-inputs-jump-panel.png?alt=media)

Jumps are a way to set up conditional logic on your questionnaire.

Jumps allow you to define that, based on the choice made by a user, they will 'jump' **forward** in a form to a question further along in the questionnaire or carry on to the next question. For example, if for question one in a form, the user selects choice one in the dropdown, jump them forward to question five, else continue on to question two.

Single or multiple jumps can be defined for a particular form input and can jump forward to any kind of form field (text or media) or to the end of a form. [**More on jumps**](https://docs.epicollect.net/formbuilder/jumps)**.**
