Forms & Lists
Build dynamic per-department ticket forms with custom fields, validation, and reusable dropdown lists. Plus the Custom Lists module for shared option sets.
Overview
By default, the new-ticket form has a fixed set of fields: name, email, subject, message, department. Custom Forms let you go further — you can build forms with additional fields, change field order, set required validations, and assign different forms to different departments. This ensures you collect the right details upfront, reducing back-and-forth with customers.
Custom Lists are reusable dropdown and option lists you define once and reference from any form field. They live in their own module (also under Departments → Lists) and are independent of any single form.
Field Types
Each field in a custom form can be one of the following types:
| Field Type | Description | Example Use |
|---|---|---|
| Text | Single-line text input for short answers | Order number, account ID, website URL |
| Memo | Multi-line textarea | Additional context, error details |
| Phone | Phone number input with formatting | Callback number, contact phone |
| Date | Date picker with calendar UI | Date of incident, subscription start |
| Dropdown | Select one option from a list; can use a Custom List as the source | Issue type, product category, OS |
| List | Multi-select list backed by a Custom List | Affected services, selected features |
| Checkbox | Toggle (single) or multi-choice | "I agree to the terms", "Include attachments" |
| File Upload | File attachment input | Screenshots, log files, contracts |
Creating a Custom Form
Forms are managed at Deskuss → Departments → Forms in the staff control panel.
Click "Add New Form"
Name the form (e.g., "Technical Support Form").
Add fields
For each field, choose a type, set a label, optionally set a placeholder, and choose whether it's required. Drag fields to reorder.
Assign to departments
Open the form's Departments tab and tick the departments that should use this form. A department can only have one form at a time, so unassign the old one if you're swapping.
Save
The form is now live on the client portal. New tickets opened against an assigned department will show this form's fields.
Required Field Validation
Every field can be marked as Required:
- Customers cannot submit the ticket without filling in the field
- A validation message appears next to the empty field on the form
- The Submit button remains disabled until all required fields are completed
Per-Type Validation
In addition to the required toggle, each field type has its own validation:
| Type | Validation |
|---|---|
| Must match RFC 5322 format | |
| Phone | Auto-formatted to international format if a country is configured |
| Date | Must be a valid date in the past (or future, depending on field config) |
| File Upload | File extension must be in the allow-list; size below the configured limit |
| Number | Must be numeric; min/max bounds enforced if configured |
Custom Lists
Custom Lists are reusable option sets. Define once, reference from any form's dropdown or list field. They live at Deskuss → Departments → Lists.
Why Use Custom Lists?
Without lists, every dropdown's options are stored in the form. If you change "iPhone" to "Apple iPhone" in one form, you have to change it everywhere. With a list, you update the list once and every form that uses it gets the new label.
Example Lists
- Product Lines — Basic, Pro, Enterprise, Custom
- Operating Systems — Windows, macOS, Linux, iOS, Android, Other
- Browser Versions — Chrome, Firefox, Safari, Edge, Other
- Subscription Tiers — Free, Starter, Pro, Business
- Issue Categories — Bug, Feature Request, How-To, Account, Billing
Creating a Custom List
Open Departments → Lists
Click Add New List.
Name the list
Pick a clear, descriptive name (e.g., "Operating Systems").
Add items
Each item has a Value (internal, used in API responses) and a Label (displayed to the customer). They're often the same but can differ — e.g., value win, label "Microsoft Windows".
Sort the items
Drag items in the order they should appear in the dropdown. Sort once, applies everywhere.
Save
The list is now available as a data source for any dropdown or list field.
Using a List in a Form Field
- Open the form
- Add a Dropdown or List field
- In the field's Data Source, select the Custom List
- Save
Per-Department Form Assignment
Forms are assigned at the department level, not the global level. A department can have at most one form. When a customer picks a department on the portal, Deskuss renders that department's form (or the default form if no custom one is assigned).
Swapping a Form
To replace a department's form:
- Open the new form and assign it to the department
- The old form is automatically unassigned (since the department can only have one)
- Open the old form and either delete it or leave it for use by other departments
Sharing Forms Across Departments
The same form can be assigned to multiple departments. Common pattern: a single "Contact Form" used by Support, Billing, and Sales; a separate "Technical Form" used only by the Technical department.
Forms on the Client Portal
When a customer opens a new ticket, the portal shows:
- The five core fields (Name, Email, Subject, Message, Department) — always present
- The custom form's additional fields — only the ones assigned to the chosen department
Field order in the form matches the order set in the form editor. The customer never sees admin-only fields or internal notes.
Data in Ticket Detail View
When a ticket with custom-form data is viewed in the staff control panel, the form's data appears in the Ticket Details panel. Each field's label and value is shown in the same order as in the form.
Custom-field data is searchable. Use the advanced search at Tickets → Search to filter by a specific custom-field value.
Editing a Field After Launch
You can rename, retype, or change the required/optional state of a field after tickets have been created with it. Existing tickets keep the data they were created with; new tickets use the updated field definition.
You cannot delete a field that has data on existing tickets. Deskuss will warn you when you try. To remove a field without losing historical data, mark it Disabled instead — it stays in the data model but is hidden from the form.
Limits
- Up to 50 custom fields per form (across all types)
- Up to 200 items per Custom List
- Field labels up to 100 chars; values up to 255 chars (Text) or 65,535 chars (Memo)
Roadmap
Conditional logic ("show field X only if field Y is set to Z") and multi-page forms are on the roadmap. Until then, use the disabled state to keep fields visible but not interactive, and rely on the customer's department choice to swap entire forms.