# Forms

<p class="callout info">This article describes how to use the Forms module to create, manage, and deploy custom forms for users. This feature allows administrators to collect specific information for processes like applications, appeals, or feedback. </p>

### Setup &amp; Configuration

The primary setup step is creating and configuring a new form using the three-tab interface.

This is a refactored module. **Existing form data from older versions of the system is not compatible**, and old forms will need to be recreated using this tool. To view the different options available for form building, please refer to the *[Form Field Types](https://opscom.wiki/books/the-opscom-admin-portal/page/form-field-types)* article.

##### <span style="text-decoration: underline;">Creating a New Form</span>

1. Go to **User Management**, then hover over **Forms**, and click **List Forms**.
2. On the **Forms List** page, click the **Add Form** button.
3. On the **Form Basics** tab:
    
    
    - Enter a **Title** and **Description** for your form.
    - Enable the **Visible** checkbox to make it accessible to users.
    - Set a **Show At** and **Hide At** date and time to schedule the form's availability.
4. On the **Post Form Actions** tab:
    
    
    - Configure what happens after a user submits the form. You can choose to send a notification email to an administrator by selecting **Mail to specific email**, and you can define the **Completion Text** message that is displayed to the user.
5. On the **Questions** tab:
    
    
    - Drag and drop the desired field types from the right-hand panel into the questions area on the left.
    - Click the **edit** icon on each field to configure its options, such as its **Label**, **Help Text**, and whether it is **Required**. For a detailed breakdown of each field type, please refer to the *Form Field Types* article.

### Using this Feature

Once forms are created, you can manage them and their submissions from the **Forms List** page.

##### <span style="text-decoration: underline;">Managing Forms in the List</span>

From the **Forms List** page, you can perform several actions on existing forms:

- **Edit Form**: Click the pen icon to modify an existing form's settings and questions.
- **View Entries**: Click the **entries** button to view all user submissions for that form. For more details, see the *Managing User Form Entries* article.
- **Copy**: Creates a duplicate of the form structure without its entries.
- **Archive**: Removes the form and all its entries from view.
- **Export**: Downloads the form and all its entry data to an Excel file.

##### <span style="text-decoration: underline;">Understanding Question Options</span>

When editing a question field, the following options are available:

- **Required**: Makes the question mandatory for the user to answer before submitting.
- **Searchable**: Allows the answers for this field to be searched on the Form Entries page.
- **Admin Only**: Hides the question from users. It is only visible to adm<span class="citation-85 citation-end-85">inistrators when viewing or editing an entry.<sup class="superscript" data-turn-source-index="1"></sup></span>
    
    <div _ngcontent-ng-c2892847681="" class="source-inline-chip-container ng-star-inserted"></div>

---

### <span class="citation-84 citation-end-84" style="color: rgb(22, 145, 121);">Best Practices &amp; Considerations<sup class="superscript" data-turn-source-index="2"></sup></span>

- <span style="color: rgb(22, 145, 121);">**Avoid editing a form after it has collected user entries.** Changes to the form structure can cause existing entry data to display incorrectly. If you need to make changes, **use the Copy function** to create a new version of the form.</span>
- <span style="color: rgb(22, 145, 121);">The **Copy** feature is the safest way to update a live form. Create a copy, make your changes to the new version, and then archive the old form once you are ready for users to switch.</span>
- <span style="color: rgb(22, 145, 121);">When creating your form you are able to set the start and end times that the form will be available to be seen by your users. **If you want the form to always be available**, make sure to set the **Show At** as the current date and leave the **Hide At** date as blank.</span>