Repository navigation
Case Report
When a reviewer or an auditor asks how a case was handled, the answer is spread across FreeITSM: the ticket and its emails, the notes, the tasks that did the work, their checklist results and form answers, and the files attached along the way. A case report puts all of it in one printable document, so nobody has to copy it out by hand.
It is a copy of the record, not a write-up of it. Nothing is reworded, summarised or generated - what was stored is what prints - and the ticket and its tasks in FreeITSM remain the authoritative record.
Requested by @Dr4inder in #204.
| Where | Export in a ticket's toolbar, or the document button in a task's window |
| Who | Anyone with access to Tickets (for a ticket) or Tasks (for a task). It is read-only - making one changes nothing on the record except one history line when it is printed |
| What you get | A page in a new tab, laid out as paper, with a panel of choices beside it. Print -> Save as PDF makes the file |
| What it covers | The ticket, its conversation, notes, checklists, every linked task and subtask, their history, and an index of the evidence |
| What it leaves out | Anything you could not open yourself (counted, never named), internal notes unless you tick them in, and the attached files themselves |
| Best in | Chrome or Edge - they print the header and page numbers. Any browser prints the content |
A server was compromised through a vulnerable web plugin. The case ran like this:
- the alert arrived as an email and became ticket INC-0412
- the team replied to the reporter twice and added a note for each other
- a task Isolate and rebuild web01 was linked to the ticket, with a containment checklist. One step, Rotate service account passwords, failed first time with an exception note, and was passed the next day
- a subtask Restore from last clean backup was done by a second analyst, with the restore log attached as a document
- the ticket was resolved with a root cause in the closure fields
A month later the security lead asks for "everything on INC-0412". Open the ticket, choose Export, leave every section ticked, and leave Internal notes unticked because the report is going outside the team. Press Print, choose Save as PDF, and untick the browser's own Headers and footers.
The PDF holds a cover page; a contents page linking to each section and to both tasks; the overview with the closure fields; both emails and both replies in order; the shared notes; the containment checklist with the failed step, its exception note and its later pass; the subtask with its restore log listed in the evidence index along with its SHA-256 fingerprint; and the ticket's and each task's history, including who changed each checklist step and when. The internal note is not in it, and the report says Internal notes are not included (1 left out) so the reader knows one exists.
The ticket's activity trail now shows a line such as:
Case report - Exported by Sam Patel: conversation, notes, checklists, tasks, history, evidence
From a ticket: open the ticket and choose Export in its toolbar (it moves under More when the reading pane is narrow). The report opens in a new tab with the ticket and every task linked to it.
From a task on its own - work with no ticket behind it: open the task and click the document button at the top of the task window. The report covers the task and its subtasks. A task that belongs to a ticket can be reported this way too; the report names its ticket if you may open it.
The report opens as a page of paper beside a panel of choices, under a banner with your logo and a Print button.
- Tick the sections you want. The page redraws as you tick. Nothing is recorded while you choose.
- Decide on internal notes (under Notes). They are off by default.
- Choose the layout (below).
- Print, from the panel or the banner, and choose Save as PDF as the printer.
| Choice | What it does |
|---|---|
| Cover page (on) | A first page with your logo, the ticket's title, reference and status, a few key facts, and who produced the report, when, and what it covers |
| Contents page (on) | The numbered sections, with each task listed under Work performed. In the saved PDF every entry is a link to its section |
| Start each section on a new page (off) | A page break before every section - easier to read on paper, longer to print |
| Header and page numbers (on) | The report's reference at the top of each page, Page 3 of 12 and the production time at the bottom, and CONFIDENTIAL on a confidential ticket |
The choices are in the page's address, so a report you have set up can be bookmarked and opened again the same way.
- Untick the browser's own Headers and footers in the print dialog. Otherwise the browser adds its own date, address and title on top of the report's.
- Paper size - the cover fits both A4 and US Letter, so either works.
- Background graphics do not need to be ticked - the report asks the browser to keep its own colours.
- On a phone the panel moves above the report. Printing from a phone works, but a phone's print dialog offers fewer choices - a desktop is easier for anything you are sending on.
| Section | What it holds |
|---|---|
| Overview (always) | Reference, subject, status, priority, type and category, department and team, who it is assigned to, the requester, company, sensitivity, when it was created, last updated and closed, the closure category and resolution, scheduled work, the custom fields that have a value, linked assets and configuration items, and related tickets |
| Conversation | Every message on the ticket, oldest first, as received or sent - with who sent it, to whom, and when. Quoted earlier messages inside them are kept |
| Notes | Notes shown to the requester; internal notes only when you tick them in |
| Ticket checklists | Each step as it stands now |
| Work performed | Each linked task with its subtasks: who it was assigned to (an analyst, a team or a supplier), dates, the description, checklist results (pass, fail, not applicable, with exception notes and who completed each step), form answers, the procedures followed and the version used, follow-ups and comments |
| History | The ticket's activity trail and each task's history, including every change to a checklist step and whether it was made after the task was completed |
| Evidence index | Documents and links attached to the ticket, its notes and its tasks - with who added them, when, and the SHA-256 fingerprint FreeITSM recorded - and the files that came in with emails, with their size |
Sections are numbered in the order above, so "see section 5" means the same thing to everyone holding a copy.
A case report only ever shows what the person printing it may see on screen, checked part by part:
- the ticket by its company, each task by Tasks access and its company - a subtask is checked on its own, because it can sit in a different company from its parent
- linked assets only with access to Assets, configuration items only with access to the CMDB
- related tickets only if you could open them
- documents by the same rule as the Documents panel
- form answers only with access to Forms or the Read form answers on tasks permission
Anything left out for that reason is counted, not named - "2 linked tasks are not included because you do not have access to them" - because a title, a file name or a link can give away as much as the record it points at. Someone without Tasks access gets the ticket with a line saying its tasks are not included, and cannot make a report for a task on its own.
If a section cannot be read when the report is produced, the report says so in red rather than printing it as empty: "could not be read" and "there was nothing" never look the same.
On an install with more than one company, the report shows the ticket's company in the overview. Each linked record is checked against your own company access, so a report made by an analyst who covers one company never names a task, asset or document from another.
A ticket in the bin can still be reported, and the report says at the top that it is in the bin. Its documents are not listed - the Documents panel does not show them for a deleted ticket either - and the report counts them as not included.
Printing writes one line on the ticket's activity trail (or the task's history for a task on its own): the field is Case report, and the value says who printed it and which sections it covered, plus (with internal notes) when they were ticked in. That way anyone looking at the ticket later can see that a copy left the system, when, and how much was in it.
Previewing does not. Opening the report and changing the ticks records nothing, so trying different choices does not fill the history. If the line cannot be written, the report still prints, with a notice saying the export was not recorded.
Every time is shown in the install's time zone, which the report states at the top - so a printed page means the same to every reader, wherever they are. A due date is a calendar day and is not converted. Scheduled work is shown as it was entered.
- It does not include the files themselves. The evidence index records that a file or link was attached, with its fingerprint; its contents are not part of the report, and the report says so. Hand over the files alongside the PDF if they are needed - the fingerprint proves they are the same ones.
- It does not show pictures inside emails. A picture embedded in a message can load from somebody else's server when the page opens, so messages are printed as text and formatting only. Attached files are still listed.
- It does not invent history. Only what FreeITSM recorded at the time is shown. A change made before history was kept does not appear, and ticket checklists show each step as it is now because their earlier changes were never recorded (task checklists do keep every change).
- It does not include internal notes unless you ask. They are for colleagues, and a report usually leaves the team.
- It does not trim emails. The reading pane hides the quoted earlier messages at the foot of a reply; the report keeps them, because trimming would change the record.
- It goes three levels of subtasks deep. A task, its subtasks and theirs. Anything deeper is counted, not shown.
Why does it open a page and not download a PDF straight away? So that every language prints correctly. A PDF built inside FreeITSM can only use a handful of built-in fonts, and those turn names and messages in many languages - Polish, Ukrainian, every Indian script - into question marks. The browser prints any text it can show on screen, keeps it selectable and searchable, and runs long sections on across pages. It also lets you see exactly what you are about to send before you send it.
Why are there no page numbers on the contents page? No browser can yet print "this section starts on page 7". Each contents entry is a link instead, which works in the saved PDF.
I don't see a header or page numbers. Use a current Chrome or Edge, and make sure Header and page numbers is ticked. Other browsers print the report without them. If you see two headers, untick the browser's own Headers and footers.
Can I edit it before sending? Not in FreeITSM - it is a copy of the record, so what it shows is what was stored. To change what is in it, change the ticks; to change the wording, change the ticket.
Does it matter whether I use the Print button or Ctrl+P? Yes. The report's own Print button records the export on the ticket and then opens the print dialog. The browser's Ctrl+P prints the same page but FreeITSM never hears about it, so nothing is recorded. Use the button for anything leaving the team. Each press of the button is recorded, so printing twice shows twice.
Does making a report change the ticket? Only by adding the one Case report line to its history when you print. Nothing else is touched.
Someone else made a report and it has less in it than mine. It shows what they could open. Their report counts what it left out, so they can see something is missing even though it is not named.
- Case reports - Developer Guide - how it is built
- Repeating task evidence - the evidence report for a repeating task
- Approvals and evidence - design (#180) - the evidence export for a change
FreeITSM β an open-source IT Service Management platform Β· github.com/edmozley/freeitsm Β· MIT licence
- Installation
- β° Scheduled tasks (cron jobs)
-
Architecture
- β³ π§Ή Root folder tidy (URL routing)
- β³ π Database Integrity (FKs & constraints)
- β³ π οΈ Database Verification β Developer Guide
- β³ π§© Service Layer (UI + API share code)
- β³ πͺ€ Code traps (the TRAP: comments)
- β³ π Commenting for the Engineering wiki
- β³ π οΈ Engineering wiki scanner - Developer Guide
- β³ π Service-Layer progress
- π€ Contributing (read before a pull request)
- π§ͺ Developer tests
- AI Providers
- Internationalisation (i18n)
- Timezones & Time Handling
- π Date & Time Formats
- π± Currencies
- π§ The sidebar (optional module rail)
- π§© Preference templates
- π Display order (modules, Watchtower cards) β Developer Guide
- Theming & Dark Mode
- ποΈ Recent β getting back to what you were doing
- β¨οΈ Command palette (βK)
- π Searching inside tickets
- π Attached documents
-
MobileβFriendly
- β³ π« Mobile: Tickets
- β³ π» Mobile: Assets
- β³ π Mobile: Calendar
- β³ π Mobile: Knowledge
- β³ π¦ Mobile: Service Status
- β³ πΌ Mobile: Watchtower
- β³ π§© Mobile: Problem Management
- β³ π Mobile: Change Management
- β³ πΏ Mobile: Software
- β³ β Mobile: Tasks
- β³ π Mobile: Forms
- β³ π Mobile: Contracts
- β³ π Mobile: Domains
- β³ π Mobile: People
- β³ π Mobile: Projects
- β³ ποΈ Mobile: Files
- β³ π Mobile: LMS
- β³ πΊοΈ Mobile: CMDB
- β³ πΊοΈ Mobile: Network Mapper
- β³ π§ Mobile: Process Mapper
- β³ βοΈ Mobile: Workflow
- β³ π₯οΈ Mobile: System
- β³ π Mobile: Reporting
- β³ π Mobile: System Wiki
- β³ π Mobile: Self-Service Portal
- β³ π§° Mobile: Techniques & Tricks
-
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
- β³ π‘οΈ CSRF protection (S4) β Developer Guide
- Single Sign-On (SSO)
- ποΈ LDAP & Active Directory
- π CardDAV contact sync
- Browser Extension
- API Reference
-
π REST API β how it works
- β³ π Proposal: custom fields, inventory import and change evidence (#194)
- β³ π οΈ Custom fields, evidence + inventory - review (#195-#197)
- β³ π οΈ Long forms in a task's Work view - review (#198)
- β³ π« 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: Domains
- β³ π¦ REST API: Service Status
- β³ βοΈ REST API: Morning Checks
- β³ π REST API: Forms
- β³ βοΈ REST API: Workflow
- β³ π·οΈ REST API: Cost centres
- β³ π§βπΌ REST API: Analysts
- β³ πΊοΈ REST API: Network Mapper
- β³ π§ Using the API docs page
- β³ π OpenAPI specification
- β³ β OpenAPI: kept correct
- β³ π οΈ Maintaining the catalogue
- Watchtower
-
Tickets
- β³ π Rota copy and paste β Developer Deep Dive
- β³ β Checklists & SOPs
- β³ βοΈ Mandatory fields
- β³ π§Ύ Custom ticket fields
- β³ π·οΈ Ticket categories
- β³ π₯ Assigning tickets to a team, and escalation
- β³ π’ One board across every company
- β³ Mailbox Authentication
- β³ π€ Email send log
- β³ π Attachment size limits and large emails
- β³ Basic IMAP mailboxes
- β³ Email rendering & images
- β³ SLA Management
- β³ WhatsApp channel
-
β³
βοΈ Telegram channel - β³ β CSAT company scope and filters β Developer Guide
- β³ π₯ Microsoft Teams channel
- β³ π¨οΈ Mattermost channel
- β³ π¬ Web chat channel
- β³ π£ Slack channel
- β³ π Linking tickets
- β³ β Record previews
- β³ π Ticket notes: internal or shared
- β³ ποΈ Canned responses
- β³ βοΈ Limiting replies to particular senders
- β³ π¨ Telling the analyst a ticket is theirs
- β³ βοΈ Email signatures
- β³ π The public web address
- β³ π’ Ticket numbering
- β³ π Raising a ticket for someone else
- β³ π Merging tickets
- β³ π Confidential tickets
- β³ π₯ Portal managers
- β³ π Who has seen a ticket
- β³ π Reading long tickets
- β³ β Splitting tickets
- β³ β Selecting several tickets
- β³ ποΈ The folder pane
- β³ π½ Just my tickets, or no closed ones
- β³ π οΈ Snoozing tickets β Developer Guide
- β³ π₯ Collision detection
- β³ β±οΈ Time tracking
- β³ π Case reports - a ticket and its work as one PDF
- β³ π Scheduled work in your own calendar
- Problem Management
- Tasks
- π Projects
-
Assets
- β³ π’ Moving an asset between companies
- β³ π Shared asset locations
- β³ π§βπΌ Assigning assets to analysts
- β³ π Warranty and lease alerts
- β³ π Leases
- β³ π Saved table views
- β³ π¨οΈ Recording anything, and importing it
- β³ π§© Asset type layouts
- β³ π·οΈ QR asset labels
- β³ π Who holds what, and handover documents
- β³ π₯οΈ The inventory agent (PowerShell)
- β³ ποΈ Proxmox VE servers
- β³ βοΈ VMware Cloud Director servers
- β³ π Linking equipment to tickets
- β³ βοΈ Follow-up tasks on a ticket
- Knowledge
- Change Management
- Calendar
- Morning Checks
- Reporting
- Software
-
Forms
- β³ π¨ The form designer β Developer Guide
- β³ π Layout & the grid β Developer Guide
- β³ ποΈ Collections β grouping submissions
- β³ π Submissions as PDFs
- β³ β‘ What happens next β a form's own actions
- β³ π οΈ Sections & conditional logic β Developer Guide
- β³ π οΈ Lookup fields β Developer Guide
- β³ π‘οΈ Catalogue request approvals
- People
- Domains
- ποΈ Files
- 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
- β³ π’ One board across every company
- β³ 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)
- What this is
-
π Bugs resolved
- β³ π Escaped text could leave its attribute
- β³ π Task descriptions were not cleaned
- β³ π Task documents ignored company scope
- β³ π Repeating tasks ignored company scope
- β³ π¬ #183 Mailbox checks overlapped
- β³ π #188 Transfer lock shown off when unknown
- β³ β #184 Subtask names and Overdue
- β³ π§© #186 Teams: the buttons did nothing
- β³ π Text in a change could run script
- β³ π AI settings changed without the AI permission
- β³ πͺ #178 Deleting an analyst failed
- β³ π« A team with no departments showed 0 tickets
- β³ π Projects: adding a phase did nothing on Save
- β³ π Leavers could still sign in
- β³ πΌοΈ Logo and courses broke on Apache with PHP-FPM
- β³ π’ Chat tickets ignored your ticket numbering
- β³ π Dates shown as a dash, or in server time
- β³ π Assets β Users showed people from other companies
- β³ π Restricted analysts could read other modules' data
- β³ πΌοΈ Replies with a picture in the thread failed to send
- β³ π Reply attachments never reached the customer
- β³ π οΈ Outbound email attachments β Developer Guide
- β³ π A global SSO provider was missing from the portal
- β³ π Behind a proxy, the SSO redirect said http
- β³ βοΈ The portal tagline moved when you saved it
- β³ π¨ The portal settings screen forgot what you saved
- β³ π‘οΈ The approvals inbox said "Error" and nothing else
- β³ π A table's answers were missing from the PDF
- β³ β A single-select column let you tick every option
- β³ π The portal ignored a form's field widths
- β³ π The tasks board stopped taking clicks
- β³ ποΈ #121 The index list is out of date after upgrading
- β³ π #133 The calendar subscription was empty
- β³ π #131 Tasks always reopened on the board
- β³ π₯ #129 Every page returned HTTP 500 after upgrading
- β³ π³ #127 A PHP warning above the System page
- β³ π #126 Notes stamped with the server's clock
- β³ π Storing every date in UTC
- β³ πͺ The portal was down for everyone signed in
- β³ βοΈ #120 Workflow notes could never be written
- β³ βοΈ #123 Three errors when running Database Verification
- β³ π #122 The description box was a stub in the corner
- β³ π£ Demo data deleted real accounts
- β³ π #117 Sign-in redirected to the wrong address
- β³ π¨ #108 The priority dot was invisible
- β³ β±οΈ #116 Time logged from the right-click menu
- β³ π #114 API keys refused by our own guard
- β³ ποΈ #110 Assigning a task told nobody
- β³ πͺ #107 Signed out while still working
- β³ π #103 "Share with Requester" reached nobody
- β³ π #102 Search found nothing for hyphens
- β³ πͺ #101 Source code editor opened behind
- β³ βοΈ #88 Subtasks could not be ticked off
- β³ π» #84 Asset deep link selected nothing
- β³ π« #79 A new ticket arrived with no status
- β³ π§ #79 A ticket from email did not say so
- β³ π #78 Bell opened to nothing
- β³ π¬ #77 Mail only collected from Inbox
- β³ π #74 The default password could not be changed
- β³ π¦ #70 Renaming an impact level
- β³ π€ #67 App-only mailboxes could not send
- β³ π #45 Verify only ever worked for Microsoft
- β³ π #45 IMAP reported as not authenticated
- β³ βοΈ An email template stopped escaping itself
- β³ π The portal dashboard showed the wrong time
- β³ π’ The folder said 99 and the list showed 96