The Form Builder is a dynamic environment to create custom forms, form templates, and questionnaires to gain insightful feedback directly from your users. Build forms from scratch or use templates to quickly generate multiple forms from an existing set of questions.
Before you can create forms, templates, or questionnaires, you'll need to create the following groups in your Domo instance:
Each of these groups grants a unique set of permissions to its members while using the Form Builder. Members of the _FB_CreateForms_ group are granted permission to create and manage forms for their Domo groups. Members of the _FB_CreateTemplate_ group are granted permission to manage all questionnaires, templates, and forms for all Domo groups and users.
If you're a member of one of the groups mentioned above, you have been granted access to create and manage forms. To get started, open the form editor by clicking create form in the top right corner of the application.
Basic Form Definition
When creating a new form or managing an existing form, you can choose how users find and interact with your form by configuring the basic form definition:
- Tags - search for tags to locate a form faster
- Groups - restrict users who respond to your form to one or more groups (or none)
- Response Type - determine response limitations and formats
- Form Settings - choose how users interact with your form
Allow multiple users to contribute to the same submission; when loading an active submission , users may see other their peers' un-submitted responses.
One response per user
Each user may only submit one response, after which the user will not be allowed to submit another.
Multiple responses per user
Users can submit multiple responses.
Users can submit multiple responses; users may have multiple named sessions active at one time. When visiting the form, users will be prompted to start a new entry or resume an existing session.
To rename an existing session, click the name to activate the text entry, enter the desired title, and then click away from the text input.
Bulk response forms allow users to submit multiple responses simultaneously. To create a bulk response, open the bulk upload menu and choose download template.
The bulk response template is a formatted as a comma separated value file (.csv). By default, the first four lines are filled and include important metadata to ensure that, when uploaded, the file and responses can be parsed and submitted correctly. In order, the default values in the template are:
- Section ID
- Section Name
- Question ID
- Question Name
To submit a bulk response template, open the bulk upload menu and choose upload bulk responses, find the file containing your responses, and wait for the bulk response to process. If any errors are found, you will be notified and all responses will be rejected until the template have been resolved.
IMPORTANT: the first four lines in the bulk response template should remain unchanged; altered templates may be rejected when submitted
- Show submit button on every page - indicates whether the submit button is displayed on all pages or only the final page of the form
- Make all questions required
- Checked - requires that each user enters a valid response to all questions before submitting (does not apply to table sections)
- Not checked - users may choose not to respond to questions that have been marked as 'optional'
- Allow bulk response uploads - indicates whether users can perform bulk submissions (see Bulk Response under Response Types above)
NOTE: If the make all questions required setting is active, you will no longer be able to change the required setting for individual questions
When you're ready to start adding questions to your form, you'll want to start by adding a section. Each section you define in the editor will be displayed as a distinct page to users who submit a response to your form. You can use sections to your advantage if you keep related questions in the same section.
The Form Builder supports two types of sections:
- Item Sections - supports standard question types such as text inputs and dropdown selections
- Table Sections - use a table card to prompt users for itemized input
To add a section, click the add item section button or add table section button on the section management menu to the right of the form definition.
If you want to change the order in which sections appear in your form, click the reorder button, then click and drag the sections into the desired order.
To delete a section, find the section you wish to remove, click the options button, then choose delete .
Each newly added section is added without a name or title; it's recommended, but not required, that you give each section a name for easier navigation and management.
Item sections support the following item and question types:
|Icon||Name||Description||Multi Value Response Allowed|
|Title and Description||Additional metadata and contextual information; can be used to create logical breaks within a single section or simply to provide additional information.||No|
|Text||Prompt the user for free-form text response||No|
|Dropdown (i.e. select)||Limit user input to a list of configurable options||Yes|
|Date||Prompt the user for a date or date range||Yes|
|Image||Display an image in your form (does not support user input)||No|
|Lookup||A dropdown question for which the list of options is generated from the unique values of a table card (supports PDP)||Yes|
|File Attachment||Allows the user to attach a file as part of their response||No|
To add an item or question, click the icon in the item management menu at the bottom of the section definition. For more more information about item and question types, see Advanced Item Configuration below.
Table sections leverage Domo's table cards to display data and prompt users for input in a row/column format. To get started, under the Table Card sub-menu of the section, find and select the page where your table card resides. Then, the next dropdown control will be enabled and will display a list of table cards from the page you've selected. Select the table card you want to use and click connect to start the connection process.
NOTE: Table sections support PDP
Connecting a Table Card
To connect a table card to your table section, you must select one or more columns from the table whose values, when combined, can be used to uniquely identify every row. Some table cards may have a unique id column while others may require multiple identifier columns. In the example below, the identifier columns are: Region, State, and City. Once you've chosen your identifier column(s), click connect to complete the connection process.
After the connection process is complete, the table section will display the list of columns that make up the table card. You can change the input type of a column by choosing one of the available options in the menu option on the right hand side of the column's list entry. Table columns support the following input types:
NOTE: Identifier columns cannot be configured as input columns.
|Input Type||Description||Custom Column Supported||Existing Column Supported|
|None||No input control; displays existing data from table card||No||Yes|
|Checkbox||Select one or more rows from the table by checking a box||Yes||Yes|
Limit user input to a set of values configured in the form editor
Limit user input to the unique values from the column of a table card; select a page, card, and column to configure the lookup options
|Single Select (radio)||Choose/mark a single row from the table||Yes||Yes|
|Text||Allows freeform text entry||Yes||Yes|
Detects the type assigned to the table card's column to display the correct input control type.
You may add custom columns by clicking the add column button at the bottom of the column list. To change the name of a custom column, hover over the space where the name should be and click the grey box to activate the text editor. Enter the desired name then click away from the text input.
To delete a custom column or to change the visibility of an existing column, hover over the left side of a column's list entry and click the delete or visibility button.
Table Filters (Lookup Fields)
Under the Lookup Fields sub-menu of the section, you can add lookup fields that can be used to filter the table rows. Lookup fields are dropdown menus (select boxes) that contain the unique values from their assigned columns. When a user changes the selection in these lookup fields and applies the new selection, a filtered view of the table card is loaded so that only rows that match their filter configuration are displayed. To add a lookup field, select a column from the lookup field input control and click add lookup. To allow users to select multiple values in a single filter, check the multi-select box on the right side of the lookup field list entry.
To help manage how your table section is displayed and used, table sections support the following settings:
|Freeze identifier columns||Freezes the identifier columns to the left hand side of the table so they are always visible; aids users in identifying the distinct row which is being viewed or modified|
|Interdependent lookup fields||Causes the options in each table lookup field (table filter) to be filtered based on preceding selections|
|Prefer page filters over lookup fields||
If enabled, the table will be filtered based on the page filter configuration, allowing for a more rich filtering experience.
For instructions to enable page filters on your forms, see Using Page Filters.
Advanced Item Configuration
(for basic setup and description see Item Sections)
Configuration Supported By All Item and Question Types
All item and question types support an optional description which can be used to provide additional information and context for a question.
All items that take user input can be flagged as required, preventing form submission until a response has been provided ('title and description' and 'image' items do not support the required setting as they do not take user input).
Each question can be marked as required individually or all questions can be marked simultaneously by using the form level setting (see Form Settings).
Use the 'multiline' setting to display a larger text input (textarea)
Options Dropdown (Select) Questions
Enable the multiselect setting to allow users to choose more than one value for their response.
To prompt the user for additional information about their selection, you can add an explanation field by clicking to open the additional options menu and choosing include explanation field. You can choose the prompt's message by entering your desired note in the newly displayed text box. If left empty, the default message of 'Please explain your response' will be used.
Allow users to select a date range (start and end date) by enabling the date range setting.
To configure a lookup question select a page, card, and column from which to retrieve the options displayed in the select/input control.
Use page filters to filter available options
To quickly and easily locate the desired value(s), you can use page filters to narrow down the option list (see Using Page Filters for setup instructions).
Filter based on preceding lookup question responses
When you have several lookup questions built from the same table card in the same section, you can build a chain of dependence that uses the selected value of a preceding lookup question to filter the options available in subsequent lookup questions. When building the chain of dependence, here are some things to keep in mind:
- Lookup questions can only be made dependent on other lookup questions built from different columns of the same table card
- Lookup questions can only be made dependent on other lookup questions in the same section
- If the order in which the lookup questions appear in the section is altered, the chain of dependence may be broken and must be rebuilt for the questions directly affected by the change in order
- When viewing the dependent lookup questions in an active response session, child lookup questions are disabled (preventing user input) until their parent has a response
Allowed file types
You can restrict the format of the uploaded file to ensure it's always the correct type. If no type is selected, any file of a format supported by the Domo file service will be allowed.
Using Page Filters
In order to make your forms feel like an integrated part of Domo, the Form Builder and Form Viewer applications both support page filters. However, in order to correctly received and apply page filters to the table sections, lookup fields, and lookup questions, the application must be 'wired' or 'connected' to the dataset to which you wish to apply page filters. To connect your dataset to the Form Builder or Form Viewer, open the application in the card editor by opening the card options menu and choosing edit card.
Once open in the card editor, scroll to the bottom and find the list of FilterConfiguration datasets. Both the Form Builder and Form Viewer have 25 placeholder datasets you can change for your own datasets which you want to use for table and lookup filtering. Change one of the unused FilterConfiguration datasets so it references your dataset, then click save & finish to close the editor. Now that you've connected your dataset to the application, its page filters will also be applied to the relevant queries.
NOTE: Page filters will only be applied to lookup fields or table sections if the table card used to create the lookup field/table section matches the dataset targeted by the page filters.
Dependent Lookup Questions
Consider the following table card:
Using this table card, we can create a lookup question for each column:
Region Lookup Question
State Lookup Question
City Lookup Question
If we want to restrict the list of states to those in the region selected by the user in the Region lookup question, we can choose Region in the menu labeled Use previous lookup question response to filter available options under the State lookup question. The new State lookup question configuration:
Similarly, if we want to restrict the available cities to those in the state chosen by the user in the State lookup question, we can configure the City lookup question like this:
Now, when the user loads the section in an active response session, they'll see the following:
Making the State dependent on the Region also disables the State input until the user has chosen a region. Additionally, the available State values are limited to those that correspond to the selected Region and the City values are limited to those corresponding with the selected State: