Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Customer Support Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Laravel Customer Support

Packagist Version Downloads License

A portable Laravel customer-support / helpdesk engine — tickets with threaded replies, attachments, internal notes, agent assignment, SLA tracking, mail notifications, a Livewire + Flux UI, and Nova admin resources.

Designed to drop into any Laravel app with minimal wiring while remaining fully customisable.

Screenshots

Agent dashboard New ticket
Agent dashboard New ticket
Ticket details Nova admin
Ticket details Nova details

Requirements

  • PHP 8.2+
  • Laravel 11 / 12 / 13
  • livewire/livewire ^3 or ^4 (for the bundled UI)
  • livewire/flux ^2 (recommended — Blade templates use Flux components)
  • spatie/laravel-medialibrary ^11 (attachments)
  • laravel/nova ^5 (optional — auto-registers Nova resources when present)

Installation

composer require a2zwebltd/laravel-customer-support
php artisan migrate
php artisan vendor:publish --tag=customer-support-config   # optional

Add the trait to your User model:

use A2ZWeb\CustomerSupport\Concerns\HasSupportTickets;

class User extends Authenticatable implements HasMedia
{
    use HasSupportTickets;
}

Define the agent gate in AppServiceProvider::boot():

Gate::define('manage-support-tickets', fn (User $user) => $user->is_admin);

Features

  • Ticket statuses: Open, Pending, In Progress, Awaiting Customer, Resolved, Closed
  • Priorities: Low / Normal / High / Urgent — each with configurable SLA hours
  • Configurable categories
  • Threaded replies (SupportTicketMessage)
  • Internal notes (visible only to agents)
  • Attachments via spatie/laravel-medialibrary (on tickets and messages)
  • Agent assignment with assigned_to
  • SLA timer (due_at) + EscalateOverdueTickets console command for cron escalation
  • Mail notifications: created / replied / status-changed / resolved (markdown, queueable)
  • Domain events: TicketCreated, TicketReplied, TicketStatusChanged, TicketAssigned
  • Policies on ticket + message resources
  • Livewire + Flux UI (teal accent, dark-mode aware)
  • Nova resources auto-registered when Nova is installed

Routes

Method URI Name
GET /support support.index
GET /support/new support.create
GET /support/{ticket} support.show
GET /support/admin support.admin.dashboard

(Prefix and middleware configurable in config/customer-support.php.)

Configuration

See config/customer-support.php. Highlights: user_model, routes, admin_gate, categories, sla_hours, mail.admin_recipients, attachments, theme.accent.

Cron

// routes/console.php
use Illuminate\Support\Facades\Schedule;

Schedule::command('support:escalate-overdue')->hourly();

Testing

composer test

Security Vulnerabilities

If you discover a security vulnerability, please report it responsibly through private communication with the maintainers.


License

The MIT License (MIT). Please see License File for more information.

Credits

Developed and maintained by the A2Z WEB crew:

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
besmartand-pro/php-quality-config
sentix/ai-chatbot
terminal42/code-quality-tools
codifyo/ts-generator-bundle
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity