a2zwebltd/laravel-customer-support
Portable Laravel helpdesk engine: support tickets with threaded replies, internal notes, attachments (Spatie MediaLibrary), agent assignment, SLA due dates and escalation, mail notifications, events, policies, Livewire + Flux UI, and optional Nova resources.
HasSupportTickets) minimizes intrusion into existing codebases while providing core functionality. The event-driven architecture (e.g., TicketCreated, TicketStatusChanged) enables seamless integration with Laravel’s ecosystem (e.g., queues, notifications, or third-party services).SupportTicket, SupportTicketMessage) and pivot tables for categories/priorities. Schema extensions (e.g., custom fields) are possible via migrations but require manual adjustments to the package’s logic. The use of spatie/laravel-medialibrary for attachments introduces a dependency on a third-party library, which may conflict with existing media-handling logic.EscalateOverdueTickets command and due_at field enable proactive ticket management, reducing manual oversight.spatie/laravel-medialibrary, which may conflict with existing media libraries (e.g., intervention/image). Testing and conflict resolution will be required during integration.manage-support-tickets) integrate with existing RBAC?spatie/laravel-medialibrary, which may require configuration adjustments if your app uses a different media library. Conflict testing is critical.livewire/livewire, livewire/flux, and spatie/laravel-medialibrary with your existing stack.composer require a2zwebltd/laravel-customer-supportphp artisan migratephp artisan vendor:publish --tag=customer-support-config (optional)User model with HasSupportTickets.manage-support-tickets in AppServiceProvider.@livewire('support-ticket')).support:escalate-overdue to run hourly.config/customer-support.php) for branding or workflows.spatie/laravel-medialibrary may arise. Test early with your existing media setup.How can I help you explore Laravel packages today?