JoomHelpDesk includes a built-in reporting system that lets support administrators analyze ticket activity, staff workload, and customer engagement. Reports are accessed entirely from the frontend admin panel (not the Joomla backend).
The reporting system provides:
- Eight built-in report types covering ticket volumes, staff activity, user engagement, and idle ticket tracking.
- Flexible filtering by date range, product, department, handler, user, ticket group, and status.
- Date grouping options to view time-based reports by day, week, month, or year.
- CSV export with a configurable separator for use in spreadsheet applications.
- Print output in three formats (full details, no header, or table only).
- Totals rows that automatically sum numeric columns where applicable.
- Custom report overrides to tailor built-in reports without losing changes on update.
- Permission controls so each report can be restricted to specific user groups.
In addition, the frontend admin dashboard displays real-time statistics cards showing ticket counts by status, breakdowns by priority and department, and a recent activity feed.
2. Accessing Reports
Reports are managed from the frontend admin panel. To access them:
- Navigate to the frontend support portal.
- Log in as a support administrator or staff member.
- Click the Reports tab in the admin navigation bar (shown with a chart icon).
The reports list page displays all available reports that the current user has permission to view. Each report shows its title and description, along with a View Report button.
If no reports are visible, the message "You do not have permission to view any reports" is displayed. In that case, check that the user's Joomla group has the appropriate report permissions assigned.
Permissions
Access to reports requires the joomhelpdesk.reports permission. Individual reports can be restricted using per-report permissions in the format joomhelpdesk.reports.report.<report_name>. Users with the joomhelpdesk.reports.all permission can access every report.
3. Available Report Types
The following report plugins are included in the components/com_joomhelpdesk/plugins/reports/ directory:
Active Users (active_users)
Shows which customers have been most active during a selected period. Displays each user's ticket count, message count, total time spent, and email address. Results can be ordered by ticket count, message count, or total time.
Filters: Date range, Product, Department, Ticket Group, Ordering
Columns: Username, Name, Email, Ticket Count, Message Count, Time Taken
Daily Activity (daily_activity)
A comprehensive day-by-day breakdown of all helpdesk activity including tickets opened, tickets closed, handler (staff) messages, customer messages, and total messages. Includes a graph definition for opened vs. closed ticket trends.
Filters: Date range, Product, Department, Handler, User
Grouping: Day, Week, Month, or Year
Columns: Period, Date, Tickets Opened, Tickets Closed, Handler Messages, User Messages, Total Messages
Daily Tickets (daily_tickets)
A simplified version of Daily Activity that focuses on ticket volume only, showing opened and closed ticket counts per day. Includes a graph definition for visual trend analysis.
Filters: Date range, Product, Department
Grouping: Day, Week, Month, or Year
Columns: Period, Date, Tickets Opened, Tickets Closed
Handler Messages (handler_messages)
Tracks message activity over time, broken down by handler (staff) messages, customer messages, and total messages. Useful for measuring staff responsiveness and communication volume. Can be filtered by specific handler or user.
Filters: Date range, Handler, User
Grouping: Day, Week, Month, or Year
Columns: Period, Date, Handler Messages, User Messages, Total Messages
Idle Tickets (idle_tickets)
Lists tickets that have had no activity for a configurable number of days. Useful for identifying tickets that may need follow-up or escalation. Defaults to showing tickets idle for 7 or more days.
Filters: Last Activity threshold (1 day to 1 month), Status, Product, Department, Handler, User, Ticket Group
Columns: Title, Time, User, Reference, Opened, Closed, Last Update, Handler, Product, Department, Category, Priority, Status
List Tickets (list_tickets)
A general-purpose ticket listing report showing detailed ticket information with multiple filter options. Displays tickets in a multi-row layout with all key fields.
Filters: Date range (by last update), Status, Product, Department, Handler, User, Ticket Group
Columns: Title, Time, User, Reference, Opened, Closed, Last Update, Handler, Product, Department, Category, Priority, Status
List Tickets with Custom Fields (list_tickets_custom)
An extended version of the List Tickets report that includes custom field and per-user field data. This serves as a template for creating reports that incorporate your site-specific custom fields.
To use this report, you need to edit the XML to reference the correct custom field IDs for your installation. Look for the CUSTOM FIELD BEGIN / CUSTOM FIELD END and PER USER FIELDS BEGIN / PER USER FIELDS END sections in the XML file.
Filters: Date range (by last update), Status, Product, Department, Handler, User, Ticket Group
Columns: Same as List Tickets, plus configured custom field and per-user field columns
Open Tickets (open_tickets)
Shows open ticket counts grouped by handler (staff member). Displays the handler's username, name, oldest open ticket date, oldest last-active date, and total open ticket count. Includes totals row.
Filters: Status (All Open, All Tickets, or specific status)
Columns: Handler, Name, Oldest Open Date, Oldest Last Active Date, Open Ticket Count
4. Generating Reports
Selecting a Report
From the reports list, click the View Report button next to the desired report. The report will load with its default filter settings and display the results immediately.
Date Range Filtering
Most reports include a date range filter with From and To date picker fields. Click on either date field to open a calendar picker. Selecting a new date automatically refreshes the report.
The default date range is the last 3 months. Individual reports may override this default. Supported default presets include:
| Preset | Description |
|---|---|
| (blank) | Last 3 months (default) |
lastmonth |
First to last day of the previous month |
thismonth |
First day of current month to today |
lastweek |
Monday to Sunday of the previous week |
thisweek |
Monday of the current week to Sunday |
Dropdown Filters
Reports provide dropdown filters that vary by report type. Common filters include:
- Product -- Filter by a specific product/service.
- Department -- Filter by support department.
- Handler -- Filter by a specific staff member, all handlers, or unassigned tickets.
- User -- Filter by a specific customer, all users, or unregistered users.
- Status -- Filter by ticket status (All Open, All Tickets, or a specific status).
- Ticket Group -- Filter by ticket group membership.
- Ordering -- Some reports allow choosing the sort column.
Changing any dropdown filter automatically refreshes the report results.
Date Grouping
Time-series reports (Daily Activity, Daily Tickets, Handler Messages) include a Grouping selector that controls how data is aggregated:
- Day -- One row per day
- Week -- One row per calendar week
- Month -- One row per month
- Year -- One row per year
5. Exporting Data
CSV Export
Click the As CSV button at the top of any report to download the current report data as a CSV file. The export respects all currently applied filters, so filter the report first, then export.
The CSV file:
- Uses UTF-8 encoding (with BOM for Excel compatibility).
- Is named with the report title and current date/time (e.g.,
Daily Activity 2026-02-03 14.30.00.csv). - Includes a header row with column names.
- Contains all rows from the current report results.
CSV Separator
The separator character used in CSV exports can be configured:
- Comma (
,) -- Standard CSV format, works in most English-locale spreadsheet applications. - Semicolon (
;) -- Required for Excel in European locales where the comma is used as a decimal separator.
The separator is set globally in Joomla Backend > JoomHelpDesk > Settings > General. Individual support staff can also override this setting in their per-user preferences.
Printing
Click the Print dropdown button to access three print output formats:
| Option | Description |
|---|---|
| All Details | Prints the report with header, filter summary, and data table |
| No Header | Prints the report without the page header but with the data table |
| Table Only | Prints just the raw data table with no surrounding information |
Each print option opens in a new browser tab and automatically triggers the browser's print dialog.
6. Dashboard Statistics
The frontend admin support panel includes a dashboard overview with real-time statistics powered by the DashboardStats helper. This overview appears on the main support page before the ticket list.
Status Cards (KPI Row)
A row of cards at the top shows the current ticket count for each active status (e.g., Open, Awaiting Reply, In Progress, Closed). Each card displays:
- The ticket count in a color-coded circle matching the status color.
- The status name.
- A daily delta indicator showing today's change compared to yesterday (e.g., "+3 today" or "-1 today").
Clicking a status card navigates directly to the ticket list filtered by that status.
Priority Breakdown
A horizontal bar chart shows the distribution of open tickets across priority levels. Each priority is displayed with its configured color and current count. This helps identify whether high-priority tickets are accumulating.
Department Breakdown
A horizontal bar chart shows the top 5 departments by open ticket volume. This helps identify which departments have the highest workload.
Recent Activity Feed
A timeline-style feed shows the 5 most recent helpdesk events, including:
- New tickets (red icon) -- When a ticket was created
- Closed tickets (green icon) -- When a ticket was closed
- Staff replies (blue icon) -- When a handler posted a reply
- Customer replies (light blue icon) -- When a customer posted a reply
Each activity item shows a relative timestamp (e.g., "3 hours ago", "2 days ago") and links to the relevant ticket.
7. Settings Reference
Report-related settings are found in Joomla Backend > Components > JoomHelpDesk > Settings > General.
| Setting | Key | Values | Description |
|---|---|---|---|
| Debug Reports | debug_reports |
Checkbox (on/off) | When enabled, a Show SQL button appears on each report. Clicking it reveals the base SQL template, the final executed SQL query, and all report template variables with their resolved values. Useful for troubleshooting report data or developing custom reports. Also activates when Joomla's global debug mode is on. |
| Reports Separator | reports_separator |
, or ; |
Sets the delimiter character used in CSV exports. Use ; for European Excel locales. Can be overridden per-user. |
8. Tips
-
Start with Daily Tickets to get a quick overview of your helpdesk volume trends, then drill down with Daily Activity for messaging detail.
-
Use the Idle Tickets report regularly to catch tickets that have gone unanswered. Set the threshold to 2-3 days for responsive support teams.
-
Open Tickets by Handler is useful for workload balancing. If one handler has significantly more open tickets than others, consider reassigning some tickets.
-
Custom report overrides: To customize a built-in report, copy its XML file from
components/com_joomhelpdesk/plugins/reports/into thecustom/subfolder and edit it there. Reports in thecustom/folder take priority over the originals, so your changes will not be lost when JoomHelpDesk is updated. -
Custom field reports: The
list_tickets_customreport is a template for including custom field data. Copy it to thecustom/folder, then edit the SQL and field sections to reference your actual custom field IDs. Look for theCUSTOM FIELD BEGIN/CUSTOM FIELD ENDcomments in the XML. -
Export then analyze: For advanced analysis beyond what the built-in reports offer, export to CSV and use a spreadsheet or business intelligence tool. The CSV export includes all data rows matching your current filters.
-
Debug mode for troubleshooting: Enable
debug_reportsin settings to see the actual SQL queries being executed. This is invaluable when customizing reports or when results seem unexpected. -
Filter combinations: All filters work together. For example, you can view Daily Activity for a specific product, in a specific department, handled by a specific staff member, within a custom date range -- all at once.
-
Report permissions: Use Joomla's ACL to grant different teams access to different reports. For example, team leads might see all reports while regular agents only see the reports relevant to their department.
-
Date grouping for trends: When reviewing long time periods (6+ months), switch the grouping from Day to Week or Month to make trends easier to spot without overwhelming detail.