Download the PHP package jeffersongoncalves/laravel-help-desk without Composer
On this page you can find all versions of the php package jeffersongoncalves/laravel-help-desk. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download jeffersongoncalves/laravel-help-desk
More information about jeffersongoncalves/laravel-help-desk
Files in jeffersongoncalves/laravel-help-desk
Package laravel-help-desk
Short Description A comprehensive help desk and ticket management system for Laravel applications with email integration.
License MIT
Homepage https://github.com/jeffersongoncalves/laravel-help-desk
Informations about the package laravel-help-desk
Laravel Help Desk
A comprehensive help desk and ticket management system for Laravel applications with email integration.
Requirements
- PHP 8.2+
- Laravel 11, 12, or 13
Installation
The package uses Laravel's auto-discovery, so the service provider and facade are registered automatically.
Publish Configuration
Publish Migrations
Run Migrations
Publish Translations (optional)
Configuration
The configuration file is located at config/help-desk.php. Key options:
Setup
1. Add Traits to Your User Model
For regular users (ticket creators):
For operators/agents (ticket managers):
2. Create Departments
3. Assign Operators to Departments
Usage
Creating Tickets
Managing Tickets
Comments
Watchers
Querying Tickets
Canned Responses
Categories
Ticket Statuses
| Status | Description |
|---|---|
open |
New ticket, awaiting response |
pending |
Awaiting user response |
in_progress |
Being worked on by an operator |
on_hold |
Temporarily on hold |
resolved |
Issue has been resolved |
closed |
Ticket is closed |
Status transitions are validated automatically. For example, a closed ticket can only transition to open (reopen).
Ticket Priorities
| Priority | Numeric Value |
|---|---|
low |
1 |
medium |
2 |
high |
3 |
urgent |
4 |
Events
The package dispatches events that you can listen to in your application:
| Event | Description |
|---|---|
TicketCreated |
A new ticket was created |
TicketUpdated |
A ticket was updated |
TicketStatusChanged |
Ticket status changed |
TicketPriorityChanged |
Ticket priority changed |
TicketAssigned |
Ticket was assigned to an operator |
TicketClosed |
Ticket was closed |
TicketReopened |
Ticket was reopened |
TicketDeleted |
Ticket was deleted |
CommentAdded |
A comment was added to a ticket |
AttachmentAdded |
An attachment was added |
AttachmentRemoved |
An attachment was removed |
InboundEmailReceived |
An inbound email was received |
InboundEmailProcessed |
An inbound email was processed |
Disabling Default Listeners
If you want to handle events yourself:
Email Integration
Outbound Notifications
Notifications are sent automatically when events occur (configurable via notifications.notify_on). Email threading is supported via Message-ID, In-Reply-To, and References headers.
Inbound Email
The package supports receiving emails via 5 drivers:
Security: webhook secrets are mandatory. The HTTP webhook drivers (Mailgun, SendGrid, Resend, and Postmark) verify every request against a configured secret/credential and fail closed: if the corresponding secret is not set, the request is rejected with
403 Forbiddenand a warning is logged. You must configure the secrets below for each driver you enable, otherwise the endpoint will reject all traffic. The webhook routes are also rate limited by default (throttle:60,1, configurable viahelp-desk.webhooks.middleware).
Driver Required configuration Mailgun HELPDESK_MAILGUN_SIGNING_KEYSendGrid HELPDESK_SENDGRID_WEBHOOK_USERNAME+HELPDESK_SENDGRID_WEBHOOK_PASSWORDResend HELPDESK_RESEND_WEBHOOK_SECRET(andHELPDESK_RESEND_API_KEYto fetch bodies)Postmark HELPDESK_POSTMARK_WEBHOOK_USERNAME+HELPDESK_POSTMARK_WEBHOOK_PASSWORD
IMAP
Requires the webklex/php-imap package:
Schedule the polling command in your app/Console/Kernel.php or routes/console.php:
Mailgun
Configure your Mailgun route to forward to:
SendGrid
Configure your SendGrid Inbound Parse to forward to:
Resend
Configure your Resend receiving domain webhook to forward to:
Select the email.received event type in your Resend webhook configuration.
Postmark
In your Postmark server, go to the Inbound Message Stream settings and set the webhook URL to:
Postmark sends the full email content (body, headers, attachments) directly in the webhook payload. The package also uses Postmark's StrippedTextReply field for cleaner reply parsing.
Email Channels
You can configure multiple email channels, each mapped to a department:
Email Threading
When an inbound email is received, the package resolves it to an existing ticket using:
In-Reply-ToheaderReferencesheader- Subject line reference number (e.g.,
HD-00001)
If no match is found, a new ticket is created.
Artisan Commands
Using the Services Directly
For more control, you can inject the service classes directly:
Translation
The package ships with English and Brazilian Portuguese translations. To customize:
This publishes translation files to lang/vendor/help-desk/. You can modify them or add new locales.
Testing
Static Analysis
Code Formatting
License
The MIT License (MIT). Please see License File for more information.
All versions of laravel-help-desk with dependencies
illuminate/contracts Version ^11.0|^12.0|^13.0
illuminate/database Version ^11.0|^12.0|^13.0
illuminate/events Version ^11.0|^12.0|^13.0
illuminate/notifications Version ^11.0|^12.0|^13.0
illuminate/support Version ^11.0|^12.0|^13.0
spatie/laravel-package-tools Version ^1.14.0