Forms
A form is the questionnaire that collects the information needed to fill in a template. Every question on the form corresponds to one placeholder on the template, so once a form is filled out, Formaliq has everything it needs to generate the finished document.
You do not need to build a form from scratch. When you create a form from a template, Formaliq automatically creates one question for each placeholder in that template. From there, you can reorder the questions, group them into sections, and set rules for how they should be answered.
Question types
Every question on a form has a type, which controls what kind of answer it collects and how it's shown to the person filling out the form. When a form is generated from a template, Formaliq picks a type for each placeholder automatically (see Placeholder Prefixes for how to control that guess), but you can change a question's type at any time from its Edit Field panel.
Basic answers:
| Type | Collects | Notes |
|---|---|---|
| Text Input | A single line of text | |
| Text Area | Several lines of text | Configurable number of rows |
| Sensitive Text | A single line of text | Always encrypted, see Keeping sensitive answers extra safe |
| Sensitive Text Area | Several lines of text | Always encrypted, see Keeping sensitive answers extra safe |
| A single line of text | Validated as a proper email address | |
| Number | A number | Can optionally calculate itself, see Fields that calculate themselves |
| Date | A single date | Shown as a date picker |
| Dropdown | One choice from a list | |
| Radio Buttons | One choice from a list | Same choices as Dropdown, shown as buttons instead of a menu |
| Checkboxes | Any number of choices from a list | |
| Checkbox / Toggle | A yes/no answer | "Checkbox" and "Toggle" collect the same yes/no answer, just displayed differently |
| Rating | A star, number, or heart rating | Configurable maximum (3, 5, or 10) and style |
| Slider | A number picked from a range | Configurable minimum, maximum, and step |
Purpose-built answers, matching the special placeholders described on the Templates page, so the person filling out the form sees one clean question instead of several separate ones:
| Type | Collects | Notes |
|---|---|---|
| Full Name | First and last name | |
| Address | Street, address line 2, city, state, and zip code | |
| Phone | A single phone number | Format (123) 456-7890 |
| Phone (Complete) | A phone number and extension, with a country code | Format +1 (123) 456-7890 |
| Date Range | A start date and an end date | Checks that the end date isn't before the start date |
| Yes/No + Explanation | A yes/no answer plus an optional written explanation | For example, "Yes: customer has a premium membership" |
Structural types, for collecting more than one answer or organizing the form itself:
| Type | Collects | Notes |
|---|---|---|
| List/Array | A repeating group of questions | See Repeating questions for lists |
| Object/Group | A fixed group of related questions | Bundles several questions under one placeholder, e.g. {{customer.name}} and {{customer.email}}. Can nest one further group inside it |
Layout elements, for breaking a long form into readable steps. These don't collect an answer, so they have no Required, Hidden, Validation, Default Value, or Conditional Visibility settings:
| Type | Purpose |
|---|---|
| Section Break | A horizontal divider between groups of questions |
| Title Text | A large heading |
| Heading Text | A smaller heading |
| Paragraph Text | A block of instructional or explanatory text |
Editing a question's properties
Click any question on the form to open its Edit Field panel. The panel is organized into a few sections, and which ones appear depends on the question's type (layout elements like Section Break only show Basic Properties).
Basic Properties
Every question (other than layout elements) has:
- Label: the question text shown to the person filling out the form.
- Field Name: the underlying name used in the form's data and in
template placeholders, e.g.
clientName. Changing this does not rename the placeholder in the template itself. - Placeholder: greyed-out example text shown inside an empty input, for question types that accept typed text (not shown for choice, toggle, rating, slider, list, group, or purpose-built questions).
- Help Text: a short line of guidance shown under the question.
- Required field: the form cannot be submitted until this question is answered.
- Hidden field: the question exists but is not shown to the person filling out the form, useful alongside computed fields that fill themselves in silently.
- Sensitive: the answer is encrypted for extra protection, see Keeping sensitive answers extra safe.
Field Options
Several question types have their own extra settings:
- Dropdown, Radio Buttons, Checkboxes: the list of choices, one per line.
- List/Array: the sub-questions that make up each entry (each with its own label, name, and type), plus a minimum and maximum number of entries.
- Object/Group: the sub-questions bundled inside the group, including purpose-built types like Address or Phone. A sub-question can itself be another group, one level deep.
- Rating: the maximum rating (3, 5, or 10) and the display style (stars, numbers, or hearts).
- Slider: the minimum value, maximum value, step size, and whether the current value is shown next to the slider.
- Text Area: the number of rows shown.
- Number: whether the value is typed in or calculated automatically.
Validation Rules
Text, Email, and Text Area questions can require a minimum or maximum length, or a specific pattern using a regular expression. Number questions can require a minimum or maximum value. If an answer does not meet the rule, the person filling out the form sees a clear message explaining what needs to change. Other question types don't have extra validation beyond Required, since their format is already fixed (a valid date, a valid email, one of a fixed set of choices, and so on).
Default Value
Text, Email, Text Area, Number, Date, Checkbox/Toggle, Dropdown, Radio Buttons, Rating, and Slider questions can be given a default answer that's already filled in when the form loads, which the person filling it out can still change. Other question types don't currently support a default value.
Conditional Visibility
A question can be set to stay hidden until a specific answer is given on another question earlier in the form. For example, a question asking someone to "please explain" can stay hidden unless they chose "Other" on the question before it. This keeps the form shorter and easier to fill out, since people are only asked questions that actually apply to them.
Choose the source question, then an operator (equals, does not equal, contains, is empty, or is not empty), and, for most operators, the value to compare against. Layout elements can't be used as a source question, since they don't collect an answer.
This works alongside a template's own conditional logic: a question that only shows up under certain conditions is often connected to a section of the document that also only appears under those same conditions.
Keeping sensitive answers extra safe
Some questions ask for information that deserves a little extra care. Things like a Social Security number, a bank account number, a passport or driver's license number, a date of birth, or a credit card number. Mark these questions Sensitive and Formaliq encrypts every answer as soon as it's submitted, so only people in your organization who are allowed to view that submission can ever see the real value. Turn it on by checking the Sensitive box in a question's Edit Field panel. Always double-check this setting before sending a form out. For the fields you'll reach for most often, Sensitive Text and Sensitive Text Area are ready-made question types with this protection already turned on.
A sensitive question works just like any other, it can be required, hidden, validated, and shown conditionally. The one difference to know: because the answer is encrypted, it won't show up in submission search results.
Repeating questions for lists
Some forms need to collect more than one of something, such as a list of dependents, or a list of items on an order. A list question lets someone add or remove entries as needed, filling in the same small set of questions for each one. Each entry they add becomes one row in the finished document's table.
Fields that calculate themselves
Some values do not need to be typed in by hand because they can be worked out automatically from other answers on the form, such as adding up a list of amounts to produce a total. These fields fill themselves in and update automatically as the related answers change.
For example, say your form has a list question called items, and each
item in the list has its own price question. You could add one more
field, orderTotal, and give it this formula instead of asking anyone to
type it in:
sum(@items.price)
Every time someone adds, removes, or edits an item in the list, orderTotal
recalculates itself immediately, before the form is even submitted. You can
combine several fields the same way, for example @subtotal - @discount to
work out a final price, or reference another field's answer directly with
@fieldName. Available formulas include basic arithmetic (+, -, *,
/) and the aggregate functions sum, avg, min, max, and count.
A computed Number question can also be given a display format, so the result reads naturally instead of showing a raw number:
| Format | Example |
|---|---|
| Raw Number | 1234.5 |
| Currency | $1,234.56 |
| Percentage | 12.3% |
| 1 Decimal | 123.4 |
| 2 Decimals | 123.45 |
| Integer | 123 |
Next steps
Once a form is filled out and submitted, the answers become a Submission.