-
Notifications
You must be signed in to change notification settings - Fork 15
Problem Management
Problem Management tracks the root cause behind one or more incidents. Where the Tickets module handles individual incidents, a Problem groups the recurring ones, records the root cause and a workaround, flags a known error, and links to the Change that permanently fixes it.
Incidents ask "what's broken for this person?" β a Problem asks "why does this keep happening, and how do we stop it?"
A problem moves through a settings-managed status flow (defaults):
New β Investigating β Root Cause Identified β Known Error β Resolved β Closed
Mark a problem a known error once a workaround exists, so the service desk can apply that workaround to new incidents while the permanent fix is in progress. Statuses and priorities are managed under Problem Management β Settings (add/edit/colour/default/active), like the other lookups.
The incidentβproblem link works from either side:
- From a ticket β the reading pane's Links section has a Link toβ¦ button (choose Problem), and there's a Link to problemβ¦ action on the ticket right-click menu (works on whichever ticket you right-clicked, even if a different one is open). Both open a searchable picker listing the company's open problems β click one to link, or Create a new problem from this incident in a single step. See Linking tickets for the full picture.
- From the problem β Link incident opens a large picker that lists the open incidents in the problem's company (excluding any already linked), with a search box and checkboxes so you can tick several and link them all at once.
Linked incidents are shown in a table (Reference / Subject / Status) with open-in-new-tab and unlink icons; unlinking asks for confirmation (the incident itself isn't deleted). On a multi-company install, an incident and a problem must belong to the same company to be linked.
Use Link change on a problem to connect the Change Management record that implements the permanent fix. Like the incident picker, this opens a searchable, multi-select list of changes. The fix is shown in a table with open/unlink icons (unlink confirms first). This makes the full chain visible β incidents β problem β change β and is stored in the shared change_relations table.
Deep links to a change are standardised on
?change_id=N(matching tickets'?ticket_id=); the older?open=/?change=/?id=forms still work as aliases.
Each problem has a Notes journal β a free-text running commentary separate from the structured History. Type a note and click Add; every note records who wrote it and when, listed newest-first. Notes are immutable (no edit/delete) so the journal stays a trustworthy record.
A History table logs structured changes to the problem (When / Who / What) β status changes, links added, etc. β distinct from the free-text Notes above.
Both use the Problem AI key (bring your own provider/key, set in Settings):
- Draft root cause β reads the linked incidents and proposes a root cause + workaround for you to review and save. Nothing is saved automatically.
- Detect problems β on the list, scans recent open incidents in the active company and proposes candidate problems (groups that likely share a cause). You confirm a suggestion to create the problem and link those incidents in one go.
Each problem belongs to a company (taken from your active company when you create it) and is only visible to analysts who can access that company β exactly like tickets. On a single-company install none of this is visible (problems.tenant_id, analystCanAccessProblem()).
-
problem-management/βindex.php(list/detail/editor SPA),settings/,help.php,new/,includes/header.php;assets/js/problem-management.js. -
api/problem-management/βlist/get/save/delete;get/save/delete_problem_status+_priority;link_ticket/unlink_ticket/list_linkable_tickets;link_change/unlink_change/list_linkable_changes;add_note;ai_root_cause/ai_suggest_problem. - Tables:
problems,problem_statuses,problem_priorities,problem_tickets,problem_notes,problem_audit(problemβchange link reuseschange_relations). - Module key
problems(waffle menu + landing +analyst_modules).
-
i18n β currently English-only plain strings; wire
t()+ locale files like the other modules. - Attachments on problems (screenshots, logs, RCA documents).
-
Edit / delete own notes, and
@mentionor note types (e.g. internal vs customer-facing). - Enforced status state machine (e.g. can't reach Resolved without a recorded root cause) and a resolution field.
- SLA / ageing on problems (time-in-status, target review dates) and a problem dashboard/report.
- Auto-suggest links β surface likely-related open problems on a ticket, and likely-duplicate problems when creating one.
- Notify on link/resolve β tell linked incidents' owners when the parent problem is resolved (and offer to close the incidents).
- Known Error database view β a filtered list of known errors + workarounds for the service desk, surfaced in Tickets/Self-Service.
FreeITSM β an open-source IT Service Management platform Β· github.com/edmozley/freeitsm Β· MIT licence
- Installation
- β° Scheduled tasks (cron jobs)
- Architecture
- AI Providers
- Internationalisation (i18n)
- Timezones & Time Handling
- Theming & Dark Mode
- β¨οΈ Command palette (βK)
- π Searching inside tickets
- π Attached documents
- MobileβFriendly
-
Security
- Layer 1 β which modules you can enter
- β³ π§© Module Access Control
- β³ π οΈ Module Access β Developer Guide
- Layer 2 β what you can administer
- β³ π Roles & Permissions
- β³ π οΈ Roles β Developer Guide
- β³ π€ Why capabilities are constants
- Layer 3 β the System module
- β³ π Admin Access Control
- Hardening
- β³ π Security review response 2026-08
- β³ π‘οΈ Security hardening 2026-08
- β³ π οΈ Security hardening 2026-08 β Developer Guide
- β³ π‘οΈ Round three β plain English
- β³ π οΈ Round three β Developer Guide
- Single Sign-On (SSO)
- ποΈ LDAP & Active Directory
- Browser Extension
- API Reference
-
π REST API β how it works
- β³ π« REST API: Tickets
- β³ π» REST API: Assets
- β³ π΄ REST API: Problems
- β³ π REST API: Changes
- β³ π REST API: Knowledge
- β³ β REST API: Tasks
- β³ ποΈ REST API: CMDB
- β³ π REST API: Contracts
- β³ ποΈ REST API: Calendar
- β³ πΏ REST API: Software
- β³ π¦ REST API: Service Status
- β³ βοΈ REST API: Morning Checks
- β³ π REST API: Forms
- β³ βοΈ REST API: Workflow
- β³ πΊοΈ REST API: Network Mapper
- β³ π§ Using the API docs page
- β³ π OpenAPI specification
- β³ β OpenAPI: kept correct
- β³ π οΈ Maintaining the catalogue
- Watchtower
-
Tickets
- β³ Mailbox Authentication
- β³ π€ Email send log
- β³ Basic IMAP mailboxes
- β³ Email rendering & images
- β³ SLA Management
- β³ WhatsApp channel
- β³ π¬ Web chat channel
- β³ π£ Slack channel
- β³ π Linking tickets
- β³ ποΈ Canned responses
- β³ βοΈ Limiting replies to particular senders
- β³ βοΈ Email signatures
- β³ π The public web address
- β³ π’ Ticket numbering
- β³ π Raising a ticket for someone else
- β³ π Merging tickets
- β³ β Splitting tickets
- β³ β Selecting several tickets
- β³ π οΈ Snoozing tickets β Developer Guide
- β³ π₯ Collision detection
- β³ β±οΈ Time tracking
- Problem Management
- Tasks
- Assets
- Knowledge
- Change Management
- Calendar
- Morning Checks
- Reporting
- Software
- Forms
- Contracts
- Service Status
- π Notifications
- π¨ War Room
- Self-Service Portal
- LMS
- Process Mapper
- CMDB
- Network Mapper
- Workflows
- Issue trackers (Jira, Azure DevOps)
- System
-
Overview
- β³ π Progress tracker
- β³ Concepts & vocabulary
- β³ Email routing & mailboxes
- β³ Settings: global vs per-company
- β³ Users & self-service
- β³ Staff cross-company access
- β³ Worked examples
- β³ Pitfalls & gotchas
- β³ Scope: what it's for
- β³ π οΈ Developer Guide (make a module multi-company)
- β³ ποΈ Case study: CMDB (a linked graph)
- β³ π§ͺ Test harness (prove it's isolated)