Linking Tickets - edmozley/freeitsm GitHub Wiki
Linking tickets to things
A ticket rarely lives in isolation. FreeITSM lets you connect a ticket to the other records it relates to — a problem, a change, another ticket, or a CMDB object — so the whole picture is visible from the reading pane, and from the other record's side too.
It all lives in one place: a purple Links section in the ticket's reading pane.
The Links section
Open a ticket and the reading pane shows a Links strip listing everything the ticket is connected to, as pills:
- ⚠ Problems — click to open in Problem Management
- 🔁 Changes — click to open in Change Management
- 🔗 Tickets — other tickets, prefixed with the relationship (Parent / Child / Duplicate of / Related); click to jump to them in the inbox
Each pill has an ✕ to unlink. A single Link to… button opens a small chooser — Problem, Change or Ticket — and then the matching searchable picker.
You can also start a link from the right-click menu on any ticket in the list (Link to problem…, Link to change…, Link to ticket…). The right-click actions target whichever ticket you clicked, even if a different one is open in the reading pane.
On a phone the Links section is tucked into a single Links sheet reachable from the reading pane, so it doesn't crowd the small screen.
Linking to a problem
The incident↔problem link works from either side (see Problem Management):
- From the ticket — pick Problem from the Link to… menu (or Link to problem… on the right-click menu). A searchable picker lists the company's open problems — click one to link, or Create a new problem from this incident in one step.
- From the problem — the problem detail page lists its linked incidents and has its own Link incident action.
Linking to a change
Connect the change that will implement or fix the work (see Change Management):
- From the ticket — pick Change from the Link to… menu (or Link to change… on the right-click menu), then search the change.
- From the change — the change detail page has a Linked incidents section and picker; linking/unlinking from either side writes to the change's activity log.
Linking tickets to each other
Pick Ticket from the Link to… menu, choose a relationship, then search the target:
| Relationship | Meaning |
|---|---|
| Related to | Symmetric — the two tickets are connected, no hierarchy |
| Duplicate of | This ticket is a duplicate of another (the master) |
| Parent of / Child of | Hierarchy — a parent with one or more children |
- Directional links read correctly from both ends — a Parent of TKT-123 on one ticket shows as Child of TKT-456 on the other.
- Cardinality: a ticket has at most one parent (a parent can have many children) and can be a duplicate of at most one master. Self-links and parent/child loops are rejected.
- Informational (v1): links display and are audited on both tickets, but they don't change ticket state automatically — behaviours like auto-closing a duplicate or cascading a parent close are a planned, Workflows-driven phase.
Linking to a CMDB object
Separately from the Links section, the reading pane has an Affected CMDB Objects area (between the email thread and the notes) — type to search across every CMDB object, click to link, ✕ to unlink. Each linked object shows as a card with its class + parent context. See CMDB for the reverse view (the object's Activity panel).
Multi-company installs
On a multi-company install, ticket↔ticket, ticket↔problem and ticket↔change links are same-company only: the picker is scoped to the source ticket's company, and a cross-company link is rejected. This is enforced server-side, not just hidden — see Isolation. On a single-company install it's automatic and invisible.
Where it's stored
| Link | Table |
|---|---|
| Ticket ↔ ticket | ticket_links (source_ticket_id, target_ticket_id, relation_type ∈ related/duplicate/parent) |
| Ticket ↔ problem | problem_tickets |
| Ticket ↔ change | change_tickets |
| Ticket ↔ CMDB object | CMDB link table (see CMDB) |
Every link/unlink between tickets is written to both tickets' activity logs. Run System → Database Verify after upgrading so any new link tables/columns are created.