Documentation

Find documentation for our Joomla extensions on this page.

JoomHelpDesk - Custom Fields Guide

Custom fields let you collect exactly the information you need from customers and staff beyond the standard ticket fields. Whether you need an order number, a screenshot, a product selection, or a star rating, custom fields make it possible without any coding.

This guide walks you through every field type, every setting, and real-world examples so you can set up your helpdesk forms with confidence.


Table of Contents

  1. Quick Start: Creating Your First Field
  2. Common Settings (All Fields)
  3. Field Type Reference
    • Standard Fields: Text, Text Area, Checkbox, Radio Buttons, Combo Box
    • Plugin Fields: Calendar, Number, Checkboxes, Radio Plus, Dual Combo Box, Price, Rating, Link, Map/Address, Files Upload, Images Upload, Videos Upload, SQL Query, SQL Combo Box, Profile Display, HTML Output, Hostname, Log IP
  4. Managing & Organizing Fields
  5. Per-User Fields
  6. Permissions & Access Control
  7. Search & List Display
  8. Translation / Multi-Language
  9. Tips & Best Practices
  10. Troubleshooting FAQ

1. Quick Start: Creating Your First Field

Here is how to create a simple "Order Number" text field in under a minute:

  1. In the Joomla admin panel, go to Components > JoomHelpDesk > Custom Fields
  2. Click the New button in the toolbar
  3. Fill in the basics:
    • Description: Order Number
    • Type: Text
    • Help Text: Enter your order number (e.g. ORD-12345)
    • Required Field: Yes
    • Required Message: Please enter your order number so we can look it up.
  4. Under Type Settings, set Maximum Characters to 20
  5. Leave All Products and All Departments set to Yes
  6. Click Save & Close

That is it. The next time a customer opens a ticket, they will see an "Order Number" field on the form.


2. Common Settings (All Fields)

Every custom field, regardless of type, shares these settings. You configure them once when creating or editing a field.

Basic Information

SettingWhat It Does
Description The label your users see next to the field (e.g., "Company Name", "Order Number"). Keep it short and clear.
Alias A machine-friendly name auto-generated from the Description. You rarely need to change this.
Type The kind of input: Text, Text Area, Checkbox, Radio, Combo Box, or Plugin. Choose this first since it determines what other settings appear.
Default Value A pre-filled value. For example, set a Combo Box default to "General Inquiry" so the most common choice is already selected.
Help Text Instructions displayed below the field. Use this to tell users what you expect, such as "Enter the 10-digit tracking number from your shipping confirmation." Supports HTML formatting.
Required Field When set to Yes, the user cannot submit the form without filling in this field.
Required Message The error message shown when a required field is left empty. Make it helpful, e.g., "Please select your department so we can route your ticket correctly."

Assignment

SettingWhat It Does
Where Used Controls where this field appears: Tickets (default), All Comments, or a specific comment handler. Most fields should use Tickets.
All Products When set to Yes, this field shows on tickets for every product. Set to No to pick specific products.
All Departments When set to Yes, this field shows for every department. Set to No to pick specific departments.

Visibility & Display

SettingWhat It Does
Grouping A section name to organize related fields together. All fields sharing the same Grouping name appear as a group on the form.
Per-User Field When enabled, the value is stored per user (not per ticket) and stays the same across all of that user's tickets. See Per-User Fields.
Permissions Controls who can see and edit the field. See Permissions & Access Control.
Show for Which Users Filters by registration status: All Users, Registered Only, or Guests Only.
Basic Search When enabled, this field's values are included in the simple search filter on the ticket list.
Advanced Search When enabled, this field appears as a filter in the advanced search panel.
Show in List When enabled, the field value appears as a column in the ticket list view.
Hide on Admin Pages Hides this field from the admin-side support interface.
Hide on Open Ticket Pages Hides this field from the public ticket submission form.
Access Level A Joomla access level (Public, Registered, Special, etc.) that restricts who can see this field.

3. Field Type Reference

Standard Fields

These are the built-in field types that do not require a plugin.


1. Text

A single-line text input for short answers.

When to use it: Order numbers, phone numbers, company names, serial numbers, short reference codes, or any brief piece of information.

Settings

SettingDescriptionDefault
Minimum Characters The fewest characters the user must type. Set to 0 for no minimum. 0
Maximum Characters The most characters allowed. Prevents overly long entries. 60
Input Size The visual width of the input box in characters. Does not limit the actual input length. 40

Example Setup

You run a software helpdesk and want to collect the customer's license key.

  • Description: License Key
  • Minimum Characters: 10
  • Maximum Characters: 30
  • Help Text: Your license key is in the email you received at purchase (e.g., ABCD-1234-EFGH-5678).
  • Required: Yes

What users see: A standard text input box with your label and help text below it.


2. Text Area

A multi-line text input for longer responses.

When to use it: Detailed descriptions, step-by-step reproduction instructions, mailing addresses, configuration details, or any answer that may span multiple lines.

Settings

SettingDescriptionDefault
Width The width of the text area in columns. 60
Height The height of the text area in rows. 4

Example Setup

You want customers to describe exactly how to reproduce a bug.

  • Description: Steps to Reproduce
  • Width: 60
  • Height: 6
  • Help Text: Please list each step you took before the error occurred, one step per line.
  • Required: Yes

What users see: A resizable multi-line text box. Line breaks are preserved when the response is displayed.

Note: Text Area fields cannot be shown as a column in the ticket list because their content is too long. Use a Text field if you need list display.


3. Checkbox

A simple on/off toggle. Good for yes/no questions or agreements.

When to use it: "I have read the FAQ", "Send me updates by email", "This is a billing issue", or any question with a yes/no answer.

Settings

No additional settings. The checkbox is either checked or unchecked.

Example Setup

You want to know whether the customer has already tried restarting the application.

  • Description: I have restarted the application
  • Default Value: (leave empty for unchecked)
  • Required: No

What users see: A toggle switch with your label. Displays as "Yes" or "No" on the ticket.


4. Radio Buttons

A set of options where the user picks exactly one. All options are visible at once.

When to use it: Priority selection, severity levels, small category lists (2-5 options), or any question where seeing all choices side by side helps the user decide.

Settings

SettingDescription
Options Enter one option per line. They display in the order you type them.

Example Setup

You want customers to indicate the urgency of their request.

  • Description: Urgency
  • Options:
    Low - Can wait a few days
    Medium - Need help today
    High - Business is blocked
    
  • Required: Yes

What users see: A horizontal or vertical group of radio buttons. Only one can be selected at a time.


5. Combo Box (Dropdown)

A dropdown menu where the user picks one option. Saves space when you have many choices.

When to use it: Country selection, product model, subscription plan, office location, or any list with more than 4-5 options where showing them all at once would be cluttered.

Settings

SettingDescription
Options Enter one option per line. A "Please Select" placeholder is added automatically.

Example Setup

You want customers to choose which product they need help with.

  • Description: Product
  • Options:
    HelpDesk Pro
    HelpDesk Lite
    Knowledge Base Add-on
    Chat Plugin
    Reporting Module
    
  • Required: Yes
  • Required Message: Please select the product you need help with.

What users see: A dropdown menu. They click to expand it and select one option.


Plugin Fields

To use these field types, set the Type to "Plugin" and then select the specific plugin from the dropdown. Each plugin has its own settings panel.


6. Calendar (Date Popup)

A date picker that pops up when the user clicks the field.

When to use it: Incident dates, desired delivery dates, subscription expiration dates, appointment scheduling, or any field that needs a properly formatted date.

Settings

SettingDescriptionDefault
Use Time Includes a time picker alongside the date. Off
Today as Default Pre-fills the field with today's date. Off
No Past Selections Prevents users from choosing dates in the past. Useful for scheduling. Off
Format The display format for the date. Leave blank for the system default. Common formats: %Y-%m-%d (2026-01-15), %d/%m/%Y (15/01/2026), %m/%d/%Y (01/15/2026). System default

Format codes:

CodeMeaningExample
%d Day with leading zero 05
%j Day without leading zero 5
%m Month with leading zero 03
%n Month without leading zero 3
%M Abbreviated month name Jan
%F Full month name January
%y 2-digit year 26
%Y 4-digit year 2026
%H Hours (24-hour) 14
%h Hours (12-hour) 02
%i Minutes 30
%s Seconds 45
%a / %A am/pm or AM/PM pm / PM

Example Setup

You run an IT helpdesk and want to know when the issue first occurred.

  • Description: When did this issue start?
  • Use Time: Yes
  • Today as Default: No
  • No Past Selections: No (they need to pick past dates)
  • Format: %Y-%m-%d %H:%i

What users see: A text input that opens an interactive calendar popup when clicked. If time is enabled, they can also set hours and minutes.


7. Number

An input that only accepts numeric values within a range you define.

When to use it: Quantities, employee counts, number of affected users, version numbers, or any field where only numbers make sense.

Settings

SettingDescriptionDefault
Minimum Value The lowest number allowed. 0
Maximum Value The highest number allowed. 10

Example Setup

You want to know how many users are affected by the reported issue.

  • Description: Number of Affected Users
  • Minimum: 1
  • Maximum: 10000
  • Default Value: 1

What users see: A text input that only accepts numbers. Values outside the min/max range are automatically adjusted.


8. Checkboxes (Multiple)

A group of checkboxes where the user can select one or more options.

When to use it: "Which features are affected?", "Select all that apply", browser compatibility checklists, or any question where multiple answers are valid.

Settings

SettingDescription
Entries Enter one checkbox label per line.

Example Setup

You want to know which browsers the customer has tested in.

  • Description: Browsers Tested
  • Entries:
    Google Chrome
    Mozilla Firefox
    Microsoft Edge
    Safari
    Other
    
  • Required: Yes
  • Required Message: Please select at least one browser.

What users see: A set of inline checkboxes. They can check as many as apply. On the ticket, selected values appear as a comma-separated list.


9. Radio Plus

Radio buttons with an optional "Other" free-text option. When the user selects "Other", a text input appears for them to type a custom answer.

When to use it: When you have a list of common answers but want to allow uncommon ones, such as "How did you hear about us?" or "What operating system are you using?"

Settings

SettingDescription
Items Enter one option per line.
Other Label The label for the "Other" option that shows a text input. Leave blank to disable the "Other" option.

Example Setup

You want to know the customer's operating system.

  • Description: Operating System
  • Items:
    Windows 11
    Windows 10
    macOS
    Linux
    
  • Other Label: Other (please specify)
  • Required: Yes

What users see: Radio buttons for each item. If they select "Other", a text input appears where they can type their answer.


10. Dual Combo Box

Two linked dropdown menus where the second dropdown changes based on what is selected in the first. Think "Category > Sub-category."

When to use it: Country/city pickers, brand/model selectors, category/subcategory hierarchies, department/team selections, or any two-level classification.

Settings

SettingDescriptionDefault
Items A structured list where lines starting with + are group headers (first dropdown) and the lines below are sub-items (second dropdown). (empty)
Display Separator The character(s) shown between the group and item when displaying the saved value. (space)
First Combo Header Placeholder text for the first dropdown. "Please Select"
Second Combo Header Placeholder text for the second dropdown. "Please Select"
Combo Separator The HTML between the two dropdowns (e.g., <br /> for a line break). <br />
Hide Group in Display When checked, only shows the sub-item (not the group name) when displaying the saved value. Off

Items format example:

+Ford
Fiesta
Mondeo
Focus
+Volkswagen
Golf
Passat
Polo
+Citroen
C3
C4
C1

Example Setup

You sell hardware and want to know which product category and specific model the issue is about.

  • Description: Product Model
  • Items:
    +Printers
    LaserJet 200
    LaserJet 400
    InkJet Home
    +Scanners
    FlatBed Pro
    FlatBed Mini
    Document Feeder
    +Monitors
    UltraWide 34
    Standard 27
    Portable 15
    
  • First Combo Header: Select Category
  • Second Combo Header: Select Model

What users see: Two dropdown menus. When they select a category in the first dropdown, the second dropdown updates to show only the items under that category.


11. Price

A currency-formatted input field. Strips non-numeric characters on save and displays the value with the currency symbol.

When to use it: Invoice amounts, refund amounts, budget fields, purchase totals, or any monetary value.

Settings

SettingDescriptionDefault
Currency Symbol The currency symbol to display (e.g., $, EUR, GBP). $
Symbol Location Where to place the symbol: Before the number (e.g., $100) or After the number (e.g., 100 EUR). Before

Example Setup

You need to know the invoice amount for a billing dispute.

  • Description: Invoice Amount
  • Currency Symbol: $
  • Symbol Location: Before
  • Help Text: Enter the total amount from your invoice.
  • Required: Yes

What users see: A text input that accepts numbers. The saved value is displayed with the currency symbol, e.g., "$149.99."


12. Rating

An interactive star rating widget (1 to 5 stars).

When to use it: Customer satisfaction surveys, product quality feedback, urgency perception, or any "rate this on a scale" question.

Settings

No additional settings. The rating always uses a 1-5 star scale.

Example Setup

After a ticket is resolved, you want the customer to rate their experience.

  • Description: How would you rate your support experience?
  • Permissions: User can see and edit
  • Help Text: Click the stars to rate from 1 (poor) to 5 (excellent).

What users see: A row of 5 clickable stars. They click on a star to set their rating. The rating can be updated later.


A URL field that automatically turns the entered address into a clickable link.

When to use it: Referencing an external page, sharing a screenshot URL, linking to a related resource, or collecting a customer's website address.

Settings

SettingDescriptionDefault
Target How the link opens when clicked: _blank (new tab), _self (same tab), _parent, _top. _blank

Example Setup

You want customers to provide a link to the page where they see the error.

  • Description: URL Where Error Occurs
  • Target: _blank
  • Help Text: Paste the full URL of the page where you see the error (e.g., https://example.com/page).

What users see: A text input for typing or pasting a URL. On the ticket, the URL is displayed as a clickable link. If the user forgets http://, it is added automatically.


14. Map / Address

An interactive Google Maps field with address entry and location pinpointing.

When to use it: Service delivery addresses, site visit locations, incident locations, store locations, or any field where a physical address or map pin is useful.

Settings

SettingDescriptionDefault
Default Latitude Starting latitude for the map center. 0
Default Longitude Starting longitude for the map center. 0
Default Zoom Initial zoom level (1 = world view, 15 = street level). 3
Map Width Width of the map display. 100%
Map Height Height of the map display. 250px

Example Setup

You run a field service helpdesk and need to know where to send a technician.

  • Description: Service Location
  • Default Latitude: 48.8566 (Paris center)
  • Default Longitude: 2.3522
  • Default Zoom: 12
  • Map Width: 100%
  • Map Height: 300px
  • Required: Yes

What users see: A text area to type an address, a "Get Location" button that pins the address on a map, and an interactive Google Maps canvas where they can drag the pin for precision. The stored value includes the address, latitude, longitude, and zoom level.

Note: Requires a Google Maps API key configured in your site for the map to load.


15. Files Upload

A drag-and-drop file upload field for documents, spreadsheets, PDFs, and other non-image files.

When to use it: Collecting invoices, log files, configuration exports, receipts, contracts, or any supporting documents.

Settings

SettingDescriptionDefault
Allow Multiple Files Enables uploading more than one file at a time. Off
Maximum Number of Files The most files allowed per field (1-20). 5
Maximum File Size (MB) The largest file size allowed per file, in megabytes. 10
Allowed Extensions Comma-separated list of permitted file types. Leave empty for common types (pdf, doc, docx, xls, xlsx, zip, jpg, png, etc.). Common types
Show File Type Icons Displays an icon representing the file type next to each upload. On
Show File Size Displays the file size next to each upload. On

Example Setup

You want customers to upload their error log files.

  • Description: Error Logs
  • Allow Multiple Files: Yes
  • Maximum Number of Files: 3
  • Maximum File Size: 20 MB
  • Allowed Extensions: log,txt,csv,zip
  • Help Text: Upload your error logs. You can find them in the /logs folder of your application.

What users see: A drag-and-drop area with a "Browse" button. A progress bar appears during upload. Uploaded files show with their name, icon, and download link.


16. Images Upload

A specialized upload field for image files with automatic thumbnail generation and a lightbox gallery for viewing.

When to use it: Collecting screenshots of errors, product photos for damage reports, design mockups, or any visual evidence.

Settings

SettingDescriptionDefault
Allow Multiple Images Enables uploading more than one image at a time. Off
Maximum Number of Images The most images allowed per field (1-20). 5
Maximum File Size (MB) The largest file size allowed per image, in megabytes. 10
Allowed Extensions Comma-separated list of permitted image types. jpg, jpeg, png, gif, webp
Maximum Width Images wider than this are automatically resized. Set to 0 for no resizing. 0 (no resize)
Maximum Height Images taller than this are automatically resized. Set to 0 for no resizing. 0 (no resize)
Thumbnail Size The pixel dimension for auto-generated thumbnails. 150

Example Setup

You want customers to upload screenshots showing the problem.

  • Description: Screenshots
  • Allow Multiple Images: Yes
  • Maximum Number of Images: 5
  • Maximum File Size: 10 MB
  • Allowed Extensions: jpg,jpeg,png,gif,webp
  • Maximum Width: 1920
  • Maximum Height: 1080
  • Help Text: Upload one or more screenshots showing the issue. Use Print Screen or Snipping Tool.

What users see: A drag-and-drop area for images. After upload, small circular thumbnails appear. On the ticket view, clicking a thumbnail opens a full-size lightbox gallery where staff and customers can browse through all images.


17. Videos Upload

A file upload field specifically for video files, with built-in HTML5 video playback in a lightbox.

When to use it: Bug reproduction videos, training clips, screen recordings showing issues, or any situation where a video explains the problem better than words.

Settings

SettingDescriptionDefault
Allow Multiple Videos Enables uploading more than one video. Off
Maximum Number of Videos The most videos allowed per field (1-20). 3
Maximum File Size (MB) The largest file size allowed per video, in megabytes. 100
Allowed Extensions Comma-separated list of permitted video types. mp4, webm, mov
Player Width Video player width in pixels. 640
Player Height Video player height in pixels. Set to 0 for auto. 0 (auto)
Autoplay Automatically start playing when opened. Off
Controls Show play, pause, volume, and seek controls. On
Loop Replay the video automatically when it ends. Off
Muted Start with audio muted. Off

Example Setup

You want customers to upload a screen recording of the bug.

  • Description: Screen Recording
  • Allow Multiple Videos: No
  • Maximum File Size: 50 MB
  • Allowed Extensions: mp4,webm
  • Player Width: 800
  • Help Text: Record your screen showing the issue (MP4 or WebM, max 50 MB). Use Windows Game Bar (Win+G) or QuickTime on Mac.

What users see: A drag-and-drop upload area. After upload, a play icon appears. On the ticket, clicking the icon opens a lightbox with an HTML5 video player.


18. SQL Query (Read-Only)

Displays a calculated value from a database query. This field is read-only; users cannot edit it. The value recalculates every time the ticket is viewed.

When to use it: Showing the number of tickets a user has opened, displaying account information pulled from another table, or computing any dynamic value from your database.

Settings

SettingDescription
SQL Command The database query to execute. You can use template variables (see below) to reference the current ticket, user, or other field values.
Display Template A template string that formats the query result. Use column names from your query as variables wrapped in curly braces.

Available template variables for the SQL Command:

VariableReplaced With
{ticketid} The current ticket ID
{userid} The current user ID
{custom_N} The value of custom field with ID = N
{ticket_fieldname} A ticket table column value (e.g., {ticket_subject})

Example Setup

You want to show how many total tickets this customer has submitted.

  • Description: Customer's Total Tickets
  • SQL Command: SELECT COUNT(*) AS total FROM #__joomhelpdesk_ticket WHERE userid = {userid}
  • Display Template: {total}
  • Permissions: Only admin can see and edit
  • Help Text: (leave empty since this is read-only)

What users see (staff-side): A read-only text displaying the computed value, e.g., "12". The value updates automatically each time the ticket is viewed.

Important: Test your SQL queries carefully. An error in the query will display an error message on the ticket.


19. SQL Combo Box

A dropdown (or multi-select) whose options are pulled dynamically from a database query. Unlike the regular Combo Box where you type options manually, this one generates its options from your database.

When to use it: Selecting from a list of customers, choosing a product from your inventory table, picking an asset from your CMDB, or any case where the options are stored in a database table and may change over time.

Settings

SettingDescriptionDefault
SQL Command The query that returns the list of options. (empty)
Display Column The column name from your query to show as the option text. (empty)
Value Column The column name from your query to store as the selected value. (empty)
Group Column (Optional) A column name to group options into optgroups in the dropdown. (empty)
Allow Multiple When enabled, the dropdown allows selecting more than one option. Off

Example Setup

You have a #__assets table and want staff to pick which asset the ticket relates to.

  • Description: Related Asset
  • SQL Command: SELECT id, asset_name, category FROM #__company_assets WHERE status = 'active' ORDER BY category, asset_name
  • Display Column: asset_name
  • Value Column: id
  • Group Column: category
  • Allow Multiple: No

What users see: A dropdown menu whose options come from the database. If you set a Group Column, options are organized under category headings. If Allow Multiple is on, they can hold Ctrl/Cmd to select several options.


20. Profile Display (Read-Only)

Shows information from the ticket creator's Joomla user profile. This is a read-only field -- users cannot edit it. The data is pulled automatically from Joomla's user system or supported community extensions.

When to use it: Displaying the customer's email, full name, phone number, address, or other profile data alongside the ticket without asking them to type it again.

Important: There is no manual "source" input. The data source IS the user's Joomla profile. If you choose a custom format and leave the template empty, the field will display nothing.

Settings

SettingDescriptionDefault
Profile Field Choose a preset field or a custom format. See options below. Custom HTML Format
Custom Format When Profile Field is set to "Custom HTML Format" or "Custom Text Format", enter template tags here. If left empty, nothing will display. (empty)

Profile Field options:

You can either select a preset field (which displays a single value) or a custom format (which lets you combine multiple values with a template).

Preset fields -- select one directly from the Profile Field dropdown:

PresetWhat it displays
Full Address Multi-line address (address1, address2, city, region, country, postal code)
Full Address + Phone Same as above, plus phone number
EMail User's email address
Username User's login name
Fullname User's display name
About Me User's "About Me" profile text
Address 1 First address line
Address 2 Second address line
City City
Country Country
Date of Birth Date of birth
Favourite Book Favourite book
Phone Phone number
Postcode / ZIP Postal code
Region State / region
Website Website URL

Custom format -- select "Custom Text Format" or "Custom HTML Format" from the Profile Field dropdown, then enter template tags in the Custom Format textarea:

  • Custom Text Format: Line breaks in your template are converted to <br> tags automatically.
  • Custom HTML Format: Your template is rendered as raw HTML.

Available template tags (Joomla source):

TagDescription
{joomla.email} User's email address
{joomla.username} User's login name
{joomla.fullname} User's display name
{joomla.phone} Phone number
{joomla.address1} Address line 1
{joomla.address2} Address line 2
{joomla.city} City
{joomla.region} State / region
{joomla.country} Country
{joomla.postal_code} Postal / ZIP code
{joomla.dob} Date of birth
{joomla.website} Website URL
{joomla.aboutme} About me text
{joomla.favoritebook} Favourite book

Available template tags (Joomla Linked Contact source):

TagDescription
{contact.con_position} Position / job title
{contact.email_to} Contact email
{contact.address} Address
{contact.suburb} City or suburb
{contact.state} State or province
{contact.country} Country
{contact.postcode} Postal / ZIP code
{contact.telephone} Telephone
{contact.fax} Fax
{contact.mobile} Mobile
{contact.webpage} Website

Conditional tags: You can use {if,tag}...{endif} to only display content when a value exists:

{if,joomla.phone}Phone: {joomla.phone}{endif}

Additional sources (if installed):

Source prefixExtension
cb.* Community Builder profile fields
easyprofile.* EasyProfile fields
easysocial.* EasySocial fields
jomsocial.* JomSocial fields

Example: Customer Info Card

You want to display the customer's name and email on the ticket sidebar.

  • Description: Customer Info
  • Type: Plugin > Profile Display
  • Profile Field: Custom Text Format
  • Custom Format: {joomla.fullname} ({joomla.email})
  • Permissions: Public (or Only admin can see)

This will display: John Smith (This email address is being protected from spambots. You need JavaScript enabled to view it.)

Example: Full Address Block

  • Profile Field: Custom HTML Format
  • Custom Format:
    {if,joomla.fullname}<strong>{joomla.fullname}</strong><br>{endif}
    {if,joomla.address1}{joomla.address1}<br>{endif}
    {if,joomla.city}{joomla.city}, {endif}{if,joomla.postal_code}{joomla.postal_code}{endif}
    {if,joomla.phone}<br>Tel: {joomla.phone}{endif}
    

What users see: A read-only display of the profile value. Users cannot edit this field -- the data comes directly from their Joomla user profile.


21. HTML Output (Read-Only)

Displays static HTML content on the ticket form. This is not an input field; it is a way to insert instructions, notices, or formatted information into your forms.

When to use it: Adding a warning message to the form, displaying terms of service, inserting a section header with custom formatting, or showing instructions between other fields.

Settings

SettingDescription
HTML Content The HTML to display. Enter it in the admin settings panel for this field.

Example Setup

You want to display a notice about response times between the basic fields and the upload fields.

  • Description: Response Time Notice
  • HTML Content: <div class="alert alert-info"><strong>Please note:</strong> Our typical response time is within 4 business hours. For urgent issues, call our hotline at (555) 123-4567.</div>
  • Grouping: Additional Information

What users see: A formatted block of text/HTML on the form. They cannot interact with it; it is purely informational.


22. Hostname (Automatic)

Automatically captures the hostname (reverse DNS lookup) of the user's IP address when the form loads. The value is pre-filled but can be edited.

When to use it: IT support scenarios where knowing the user's machine hostname helps identify their workstation or network segment.

Settings

No additional settings. The hostname is resolved automatically.

Example Setup

You run an internal IT helpdesk and want to identify the user's workstation.

  • Description: Workstation Name
  • Permissions: User can see only, admin can edit
  • Help Text: This is auto-detected from your network. Correct it if needed.

What users see: A text input pre-filled with their resolved hostname (e.g., pc-john.office.local). They can edit it if the auto-detected value is wrong.


23. Log IP (Automatic)

Silently captures the user's IP address when the ticket is submitted. The field is completely hidden from the form; it runs in the background.

When to use it: Security logging, fraud prevention, audit trails, or any scenario where you need a record of where the ticket was submitted from.

Settings

No additional settings. The IP is captured automatically.

Example Setup

You want to log the IP address for every ticket for security auditing.

  • Description: Submitter IP
  • Permissions: Only admin can see and edit
  • Hide on Open Ticket Pages: Yes (it is already hidden, but this adds an extra layer)

What users see: Nothing. The field is invisible on the form. Admins can see the captured IP address on the ticket.


4. Managing & Organizing Fields

Reordering Fields

Fields display on the form in the order you set. To change the order:

  1. Go to Components > JoomHelpDesk > Custom Fields
  2. Use the up/down arrows next to each field to move it
  3. The new order is saved automatically

Fields are sorted first by Grouping (alphabetically), then by Ordering within each group. Fields with no grouping appear first.

Grouping Fields into Sections

Grouping lets you organize related fields under section headings on the form:

  1. When editing a field, enter a name in the Grouping box (e.g., "Contact Information")
  2. Give the same Grouping name to all fields that belong together
  3. On the form, these fields appear together under the group heading

Suggested groups for a typical helpdesk:

  • Contact Information
  • Issue Details
  • Environment / Technical
  • Order / Billing
  • Internal (staff-only fields)

Assigning to Products or Departments

Not every field needs to appear on every form. You can restrict fields to specific products or departments:

During field creation:

  1. Set All Products to No
  2. A checklist of your products appears; check only the ones where this field applies
  3. Repeat for All Departments if needed

The logic is simple:

  • All Products = Yes: Field appears on tickets for every product
  • All Products = No: Field only appears for the products you check
  • Same logic for departments

This means you can have different custom fields for different products. For example, a "Vehicle Registration" field only for your "Fleet Services" product, and a "Software Version" field only for your "IT Support" product.


5. Per-User Fields

A per-user field stores its value against the user, not the ticket. Once a user fills in a per-user field on any ticket, that same value appears automatically on all their future tickets.

When to Use Per-User Fields

  • Company Name - The customer's company does not change between tickets
  • Account Number - Their account number stays the same
  • Contact Preference - How they prefer to be contacted
  • Location / Office - Their office or branch
  • SLA Tier - Their service level (staff-managed)

How to Create a Per-User Field

  1. Create a field as normal (e.g., a Text field called "Company Name")
  2. Set Per User Field to Yes
  3. Save

The first time a user fills in this field, the value is saved to their profile. On all subsequent tickets, the field is pre-filled with that value. They can update it, and the new value carries forward.

Warning: If you convert an existing ticket-level field to a per-user field, existing values stored at the ticket level will no longer display. Only newly entered per-user values will appear. This change is effectively one-way, so plan ahead.


6. Permissions & Access Control

Field Permissions

The Permissions setting controls who can see and edit each field:

Permission LevelWhat Users SeeWhat Staff/Admins See
User can see and edit Can view and fill in the field Can view and edit
User can see only, admin can edit Can see the value (read-only) Can edit the value
Only admin can see and edit Field is completely hidden Can see and edit
Only show on ticket creation Visible only when submitting a new ticket; hidden afterward Can see and edit anytime
User can create and see, admin can edit Can fill in when creating the ticket and see it afterward (read-only); cannot change it later Can edit anytime

Common permission patterns:

  • Customer-facing field (e.g., Order Number): "User can see and edit"
  • Internal note (e.g., Escalation Reason): "Only admin can see and edit"
  • One-time input (e.g., Agreement Checkbox): "Only show on ticket creation"
  • Staff-managed field (e.g., SLA Level): "User can see only, admin can edit"

Show for Which Users

This setting filters by registration status:

OptionWho Sees the Field
All Users Everyone (registered and guests)
Registered Only Only logged-in users
Guests Only Only users who are not logged in

Use case: Show a "Guest Email" field only to unregistered visitors, since registered users already have an email on file.

Joomla Access Levels

The Access Level dropdown lets you restrict the field using Joomla's standard access level system (Public, Registered, Special, Super Users, etc.). The user must have the matching view access level to see the field.

This is useful when you have custom Joomla access groups, such as a "Premium Support" level that gets extra fields.


7. Search & List Display

Making Fields Searchable

You can include custom field values in the ticket search:

SettingEffect
Basic Search = Yes The field appears as a filter in the simple search bar on the ticket list
Advanced Search = Yes The field appears as a filter option in the advanced search panel

Not all field types support search. Text, Combo Box, Text Area, and most plugin fields support it. Checkbox and Radio Buttons do not support basic search.

Showing Fields in the Ticket List

When you set Show in List = Yes, the field's value appears as an extra column in the ticket list view. This is useful for fields you frequently need to scan, like priority, order number, or customer type.

Tip: Keep the number of list columns reasonable (2-4 custom fields) to avoid a cluttered list. Text Area fields cannot be shown in the list because their content is too long.


8. Translation / Multi-Language

If your helpdesk serves customers in multiple languages, you can translate custom field labels and messages:

  1. Edit the field
  2. Click the Translation button or icon
  3. Enter translations for each installed language:
    • Description (the field label)
    • Default Value
    • Required Message
    • Help Text
  4. Save

The correct translation displays automatically based on the user's language setting.

For Combo Box and Radio Button options, you should create the option values in a language-neutral way (or in your primary language) since option values are shared across languages. Use the Description translation to translate the field label.


9. Tips & Best Practices

Designing Your Fields

  • Keep labels clear and concise. "Order Number" is better than "Please enter the order number associated with your purchase."
  • Use Help Text for explanations. Put the detailed instructions in the Help Text, not the label.
  • Set appropriate validation. If a field is truly required, mark it as required and write a helpful required message.
  • Choose the right field type. Use a Combo Box (dropdown) for 5+ options, Radio Buttons for 2-4 options, and a Checkbox for yes/no.

Keeping Forms Manageable

  • Only create fields you actually need. Every extra field adds friction for customers. Ask yourself: "Will I act on this information?"
  • Group related fields. Use the Grouping feature to organize fields into logical sections.
  • Order fields logically. Put the most important fields first. Generic fields (like description) before specific ones (like version number).
  • Use per-user fields for data that does not change between tickets (company name, account number).
  • Use product/department assignment to keep forms relevant. A "Vehicle VIN" field should not appear on an IT support form.

Performance

  • Limit searchable fields. Making every field searchable slows down searches. Only enable search on fields you actually filter by.
  • Limit list display columns. Too many columns make the ticket list hard to read.
  • Use SQL fields sparingly. SQL Query and SQL Combo Box fields run database queries on every page load. Use them only when needed.

Security

  • Use permissions wisely. Internal fields (escalation reasons, SLA overrides) should be set to "Only admin can see and edit."
  • Log IP is your friend. For public-facing helpdesks, adding a Log IP field creates an automatic audit trail.
  • File upload extensions matter. Always restrict allowed file extensions to only the types you expect. Never allow executable file types (.exe, .bat, .sh).

10. Troubleshooting FAQ

My field is not appearing on the ticket form

  1. Is it published? Check that the field's Published status is Yes.
  2. Is it assigned to the right product/department? If All Products or All Departments is set to No, make sure the correct ones are checked.
  3. Check permissions. If Permissions is set to "Only admin can see and edit", customers will not see it.
  4. Check user filter. If "Show for Which Users" is set to "Registered Only", guests will not see it.
  5. Check Access Level. The user's Joomla access group must match the field's Access Level.
  6. Check hide flags. Make sure "Hide on Open Ticket Pages" is not enabled if you want it on the submission form.

My required field validation is not working

  1. Make sure Required Field is set to Yes.
  2. Make sure you have a Required Message filled in (otherwise the error may appear blank).
  3. For plugin fields, check the plugin-specific settings. Some plugins have their own validation rules.

My file upload field is not accepting files

  1. Check the Allowed Extensions setting. The file extension must be in the list.
  2. Check the Maximum File Size. The file may exceed your limit.
  3. Check your PHP settings. Your server's upload_max_filesize and post_max_size in PHP must be at least as large as the field's Maximum File Size setting.
  4. Check folder permissions. The upload directory needs to be writable by the web server.

My SQL field shows an error

  1. Test your SQL query directly in a database tool (phpMyAdmin, etc.) to make sure it works.
  2. Make sure you use #__ as the table prefix (not jos_ or your actual prefix). Joomla replaces #__ automatically.
  3. Check that template variables like {ticketid} and {userid} are spelled correctly.
  4. Verify the referenced tables and columns exist in your database.

Search is not finding my custom field values

  1. Make sure Basic Search or Advanced Search is enabled on the field.
  2. The field must have values stored in tickets. Empty fields have nothing to find.
  3. Some plugin field types (Rating, Log IP, HTML Output) do not support search.
  4. After enabling search on a field, existing ticket values should become searchable immediately.

My per-user field lost its old values

When you change a field from ticket-level to per-user (or vice versa), the storage location changes. Old values stored in the previous location are not migrated. Plan this setting before creating the field, or export your data before making the switch.

The Calendar field shows the wrong date format

Check the Format setting in the Calendar plugin settings. If left blank, it uses the system default. Set it explicitly (e.g., %Y-%m-%d) to ensure consistent formatting regardless of user locale.

The Map field does not load

The Map/Address field requires a valid Google Maps API key. Check your site configuration or contact your administrator to ensure the API key is properly set up and has the Maps JavaScript API and Geocoding API enabled.

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.

Ok