Helpdesk Module
Professional Livewire-first Helpdesk module for ticket management, public/internal responses, SLA tracking, time logging, audit history, and operational support workflows.
Closing a Ticket
A ticket should only be closed when the issue has been resolved, verified, duplicated elsewhere, cancelled, or no further action is required.
The recommended closure workflow is:
- Open the ticket detail page.
- Review the latest public and internal responses.
- Confirm the ticket can be closed.
- Add a closure comment explaining why the ticket is being closed.
- Set the ticket status to
Closed. - Save the change.
- Confirm the closure appears in the conversation or audit trail.
Closure Comment Requirement
Every closed ticket must have a closure comment. The comment should explain the reason for closure clearly enough that another agent, manager, auditor, or customer can understand the decision later.
A good closure comment should include:
- What was resolved or confirmed.
- Any action that was taken.
- Whether the customer/user needs to do anything else.
- Whether the ticket can be reopened if the issue returns.
Example closure comment:
Issue resolved and verified.
The requested work has been completed and no further action is currently required. This ticket is now being closed.
If the issue reoccurs or additional information becomes available, please reopen the ticket or create a new support request referencing this ticket number.
Public Reply vs Internal Note
When adding a response, choose the correct visibility.
Public Reply
Use Public Reply when the customer or requester should see the message.
Public replies are used for:
- First-response SLA tracking.
- Customer-visible updates.
- Resolution explanations.
- Closure comments that the requester should see.
Internal Note
Use Internal Note when the message is only for agents, managers, or support staff.
Internal notes are used for:
- Investigation notes.
- Technical diagnostics.
- Private handover comments.
- Internal escalation context.
Internal notes should not count as a customer response or first-response SLA event.
Recommended Close Ticket UI Behaviour
The preferred Helpdesk behaviour is:
- Agent clicks Close Ticket.
- A close panel or modal opens.
- The agent must enter a closure comment.
- The agent chooses Public Reply or Internal Note.
- The system validates the comment.
- The system saves the response.
- The ticket status changes to
Closed. - The activity/audit trail records the status change and closure reason.
Validation should require a meaningful closure comment:
'closure_comment' => ['required', 'string', 'min:10'],
Closure Templates
Closure templates can make support work faster and more consistent. Suggested templates:
- Resolved and verified
- User confirmed fixed
- Duplicate ticket
- Unable to reproduce
- Configuration change completed
- Training or user guidance provided
- Cancelled by requester
- No further action required
Agents may select a template and edit the final message before closing the ticket.
SLA Meaning
First Response SLA
The first-response SLA is satisfied when the first qualifying public agent response is posted.
Typical states:
| State | Meaning |
|---|---|
| Awaiting public reply | No qualifying public agent response has been posted yet. |
| Due soon | The first-response target is close to its deadline. |
| SLA met | The first public response was posted on time. |
| Responded late | The first public response was posted after the SLA deadline. |
| Breached | The SLA deadline passed without a qualifying public response. |
Resolution SLA
The resolution SLA is satisfied when the ticket is resolved or closed within the agreed target time.
Typical states:
| State | Meaning |
|---|---|
| Awaiting resolution | The ticket has not yet been resolved or closed. |
| Due soon | The resolution target is close to its deadline. |
| SLA met | The ticket was resolved or closed on time. |
| Breached | The resolution deadline was missed. |
Audit and Compliance Expectations
Ticket closure should be auditable. The system should preserve:
- Previous status.
- New status.
- User who closed the ticket.
- Closure timestamp.
- Closure comment.
- Visibility of the closure comment.
- SLA state at the time of closure.
Do not delete historical responses or SLA records when a ticket is closed.
Reopening a Ticket
If a closed ticket needs further work:
- Open the closed ticket.
- Click Reopen or change the status back to
Open/In Progress. - Add a reopen reason.
- Save the change.
- Continue the conversation using public replies or internal notes as appropriate.
The reopen reason should be stored in the ticket activity/audit trail.
Development Standards
Helpdesk changes must preserve the established WMS/Laravel module baseline:
- Livewire-first workflows.
- Module files remain under the existing
Modules/Helpdeskstructure. - Livewire components remain under
Modules/Helpdesk/Livewire. - No unused JavaScript files.
- No duplicate Blade paths such as
Resources/views/views. - No
.DS_Store,__MACOSX, or generated rubbish files in deliverables. changelog.yamlmust be append-only.module.jsonversion must match the latestchangelog.yamlversion.- Tests must be added or updated for workflow changes.
Closing a Ticket With a Mandatory Comment
The ticket status control now enforces an auditable closure workflow.
How to close a ticket
- Open the Helpdesk ticket.
- Open Ticket controls.
- Change Status to a closed status, for example Closed.
- Click Update status.
- The Close ticket dialog opens if no closure comment has been entered.
- Enter a clear closure comment explaining what was resolved or why the ticket is being closed.
- Leave Internal closure note unticked when the customer/requester should see the closure response.
- Tick Internal closure note only when the closure reason is staff-only.
- Click Close ticket.
Closure comment rules
- A closed status cannot be saved without a closure comment.
- The closure comment must be at least 10 characters.
- Public closure comments are saved as normal Helpdesk responses.
- Internal closure comments are saved as internal notes and are only visible to users allowed to see internal notes.
- The ticket
completed_attimestamp is set when a closed status is saved successfully. - The resolution SLA is recorded after the closure is saved.
Recommended closure wording
Issue resolved and verified.
The requested work has been completed and no further action is currently required. This ticket is now closed.