PHPackages                             sgcomptech/filament-ticketing - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Admin Panels](/categories/admin)
4. /
5. sgcomptech/filament-ticketing

ActiveLibrary[Admin Panels](/categories/admin)

sgcomptech/filament-ticketing
=============================

A Laravel Filament plugin to support issue tracking and ticketing system.

1.3.0(3y ago)321.8k↓100%14[2 PRs](https://github.com/sgcomptech/filament-ticketing/pulls)MITPHPPHP ^8.0

Since Nov 24Pushed 3mo ago4 watchersCompare

[ Source](https://github.com/sgcomptech/filament-ticketing)[ Packagist](https://packagist.org/packages/sgcomptech/filament-ticketing)[ Docs](https://github.com/sgcomptech/filament-ticketing)[ RSS](/packages/sgcomptech-filament-ticketing/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (6)Dependencies (14)Versions (10)Used By (0)

Filament Ticketing
==================

[](#filament-ticketing)

[![Latest Version on Packagist](https://camo.githubusercontent.com/8dbe867d140bffa403a8b3e3767184c5adfd2656891b949c8b8ddcd75911fd77/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7367636f6d70746563682f66696c616d656e742d7469636b6574696e672e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/sgcomptech/filament-ticketing)[![GitHub Tests Action Status](https://camo.githubusercontent.com/309051a4f6b65ffb2bf42839c3b512b6b1cacdf24625918bd6dcd35ac74ba954/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f7367636f6d70746563682f66696c616d656e742d7469636b6574696e672f72756e2d74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d7465737473)](https://github.com/sgcomptech/filament-ticketing/actions?query=workflow%3Arun-tests+branch%3Amain)[![GitHub Code Style Action Status](https://camo.githubusercontent.com/c8120ff641d33d1f7387aeca4b4010c27fad8dd72c369ea2d627143c9d4d4887/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f7367636f6d70746563682f66696c616d656e742d7469636b6574696e672f6669782d7068702d636f64652d7374796c652d6973737565732e796d6c3f6272616e63683d6d61696e266c6162656c3d636f64652532307374796c65)](https://github.com/sgcomptech/filament-ticketing/actions?query=workflow%3A%22Fix+PHP+code+style+issues%22+branch%3Amain)[![Total Downloads](https://camo.githubusercontent.com/cf965646bcb41bbeb772d9ae1e2fb5d437fd6d7744b5182cd60af42be14b128e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f7367636f6d70746563682f66696c616d656e742d7469636b6574696e672e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/sgcomptech/filament-ticketing)[![CodeFactor](https://camo.githubusercontent.com/d6fd91c872e82dd647dd82b9d2adfba9ea8d1f8a3649922f8fbb65044d7a72c0/68747470733a2f2f7777772e636f6465666163746f722e696f2f7265706f7369746f72792f6769746875622f7367636f6d70746563682f66696c616d656e742d7469636b6574696e672f6261646765)](https://www.codefactor.io/repository/github/sgcomptech/filament-ticketing)

A Laravel Filament Admin Panel plugin package to add support for issue tracking and ticketing system into your Filament project.

[![Create Ticket](https://camo.githubusercontent.com/8d0b119977d92b785bf542df67635f26b5e6e4a8d72c9f2efc8729c4991614e4/68747470733a2f2f7367636f6d70746563682e6769746875622e696f2f66696c616d656e742d7469636b6574696e672f696d616765732f6372656174657469636b65742e706e67)](https://camo.githubusercontent.com/8d0b119977d92b785bf542df67635f26b5e6e4a8d72c9f2efc8729c4991614e4/68747470733a2f2f7367636f6d70746563682e6769746875622e696f2f66696c616d656e742d7469636b6574696e672f696d616765732f6372656174657469636b65742e706e67)

[![List Ticket](https://camo.githubusercontent.com/4e2b46a504ea15739e16af4cd0aa8faafe3ef485a9bb19fd8919e4d0abb2ea86/68747470733a2f2f7367636f6d70746563682e6769746875622e696f2f66696c616d656e742d7469636b6574696e672f696d616765732f6c6973747469636b6574732e706e67)](https://camo.githubusercontent.com/4e2b46a504ea15739e16af4cd0aa8faafe3ef485a9bb19fd8919e4d0abb2ea86/68747470733a2f2f7367636f6d70746563682e6769746875622e696f2f66696c616d656e742d7469636b6574696e672f696d616765732f6c6973747469636b6574732e706e67)

[![Comments](https://camo.githubusercontent.com/2ce7e2813827ff7f8b765b7606260e26d73e1deac1db567f9469f021a3493846/68747470733a2f2f7367636f6d70746563682e6769746875622e696f2f66696c616d656e742d7469636b6574696e672f696d616765732f636f6d6d656e74732e706e67)](https://camo.githubusercontent.com/2ce7e2813827ff7f8b765b7606260e26d73e1deac1db567f9469f021a3493846/68747470733a2f2f7367636f6d70746563682e6769746875622e696f2f66696c616d656e742d7469636b6574696e672f696d616765732f636f6d6d656e74732e706e67)

Requirements
------------

[](#requirements)

SoftwareVersionsPHP8.0, 8.1Laravel8.x, 9.x, 10.xFilament2.xInstallation
------------

[](#installation)

You can install the package via composer:

```
composer require sgcomptech/filament-ticketing
```

Run the migrations with:

```
php artisan migrate
```

You can publish the config file with:

```
php artisan vendor:publish --tag="filament-ticketing-config"
```

This is the content of the published config file:

```
return [
  // Defines your user model. At the moment, requires 'name' and 'email' attributes.
  'user-model' => \App\Models\User::class,

  // You can extend the package's TicketResource to customize to your needs.
  'ticket-resource' => Sgcomptech\FilamentTicketing\Filament\Resources\TicketResource::class,

  // whether a ticket must be strictly interacted with another model
  'is_strictly_interacted' => false,

  // filament navigation
  'navigation' => [
	  'group' => 'Tickets',
	  'sort' => 1,
  ],

  // ticket statuses
  'statuses' => [
	  1 => 'Open',
	  2 => 'Pending',
	  3 => 'Resolved',
	  4 => 'Closed',
  ],

  // ticket priorities
  'priorities' => [
	  1 => 'Low',
	  2 => 'Normal',
	  3 => 'High',
	  4 => 'Critical',
  ],

  // use authorization
  'use_authorization' => false,

  // event broadcast channel
  'event_broadcast_channel' => 'ticket-channel',
];
```

You can publish the translation files with:

```
php artisan vendor:publish --tag="filament-ticketing-translations"
```

Usage
-----

[](#usage)

### Interact your models with tickets

[](#interact-your-models-with-tickets)

Tickets could be on general matters or could be related to some instances in your project. For example, your users may raise a ticket that is related to one of their past orders. In such case, you may want to interact that order with the tickets raised. You can achieve this by implementing `HasTickets` and use `InteractsWithTickets` trait in your eloquent model class. By default, this package uses the model attribute `name` for display. You can change this by implementing `public function model_name(): string` to return the required attribute for display.

```
use Illuminate\Database\Eloquent\Model;
use Sgcomptech\FilamentTicketing\Interfaces\HasTickets;
use Sgcomptech\FilamentTicketing\Traits\InteractsWithTickets;

class Item extends Model implements HasTickets
{
  use InteractsWithTickets;
}
```

Once your model is prepared, you can add a table action button at the model resource to navigate to the linked ticket list page. At this list page, the associated tickets for that model instance will be displayed and any new tickets created will also be linked to that model instance.

```
use Sgcomptech\FilamentTicketing\Tables\Actions\TicketAction;

public static function table(Table $table): Table
{
  return $table
		->columns([
			TextColumn::make('name'),
		])
		->actions([
			EditAction::make(),
			TicketAction::make('ticket'),
		]);
}
```

[![Table action](https://camo.githubusercontent.com/f61da7c56ef3651e829b68e7cd0589feb537d863cada3411609511a0d06ad9f0/68747470733a2f2f7367636f6d70746563682e6769746875622e696f2f66696c616d656e742d7469636b6574696e672f696d616765732f7461626c65616374696f6e2e706e67)](https://camo.githubusercontent.com/f61da7c56ef3651e829b68e7cd0589feb537d863cada3411609511a0d06ad9f0/68747470733a2f2f7367636f6d70746563682e6769746875622e696f2f66696c616d656e742d7469636b6574696e672f696d616765732f7461626c65616374696f6e2e706e67)

It is possible to implement `HasTickets` on multiple models in your project.

### Filament Admin Panel Menu

[](#filament-admin-panel-menu)

As with most other Filament resources, you can control and secure the access of Ticket operations in Admin Panel's menu with a policy file. For example, you can create a new policy file and register it in your AuthServiceProvider.

```
protected $policies = [
  'Sgcomptech\FilamentTicketing\Models\Ticket' => 'App\Policies\TicketPolicy',
];
```

For more details, see [Laravel model policies](https://laravel.com/docs/9.x/authorization#creating-policies).

### Authorization

[](#authorization)

This package has an option to use Laravel policies to authorise various actions that can be performed on the tickets.

Besides the usual Filament resource policies, the additional permissions to implement are:

1. `manageAllTickets` - grant permission to user who can add comments and change status of any tickets.
2. `manageAssignedTickets` - grant permission to user who can only add comments and change status to tickets that are explicitly assigned to them.
3. `assignTickets` - grant permission to user who can assign tickets to any users who have the permission `manageAssignedTickets`.

For example, you may use other authorization packages, like [Filament User Authentication](https://github.com/phpsa/filament-authentication), to implement `TicketPolicies` in your policy file like so:

```
use App\Models\User;
use Illuminate\Auth\Access\HandlesAuthorization;
use Sgcomptech\FilamentTicketing\Interfaces\TicketPolicies;
use Sgcomptech\FilamentTicketing\Models\Ticket;

class TicketPolicy implements TicketPolicies
{
  use HandlesAuthorization;

  public function viewAny(User $user)
  {
    return true;
  }

  public function view(User $user, Ticket $ticket)
  {
    return true;
  }

  public function create(User $user)
  {
    return true;
  }

  public function update(User $user, Ticket $ticket)
  {
    return $user->can('manage all tickets')
      || $user->can('assign tickets')
      || ($user->can('manage assigned tickets') && $ticket->assigned_to_id == $user->id)
      || $ticket->user_id == $user->id;
  }

  public function delete(User $user, Ticket $ticket)
  {
    return $user->can('Delete Tickets');
  }

  public function manageAllTickets($user): bool
  {
    return $user->can('Manage All Tickets');
  }

  public function manageAssignedTickets($user): bool
  {
    return $user->can('Manage Assigned Tickets');
  }

  public function assignTickets($user): bool
  {
    return $user->can('Assign Tickets');
  }
}
```

### Events

[](#events)

This package will dispatch the following events as listed in the table below. Note that the namespace of these events is `Sgcomptech\FilamentTicketing\Events`.

EventEvent ObjectDescription`NewTicket``Ticket`When a new ticket is created.`NewComment``Comment`When a new comment is created.`NewResponse``Comment`When a new response is created.`NewAssignment``Ticket`When a ticket is being assigned to a user.You can use these events to send notifications to relevant users in your application. Refer to Laravel document on how to [register Events and Listeners](https://laravel.com/docs/9.x/events#generating-events-and-listeners).

Testing
-------

[](#testing)

```
composer test
```

Todo
----

[](#todo)

- Translation
- List tickets filters
- Badges
- Widget
- Attach media or files to ticket

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

Contributing
------------

[](#contributing)

If you want to contribute to Filament Ticketing packages, you may fork this repository, create a new branch, make you changes and submit a PR. Be sure to run the test scripts to make sure that nothing else is broken. More details can be found at [github quickstart](https://docs.github.com/en/get-started/quickstart/contributing-to-projects).

Security Vulnerabilities
------------------------

[](#security-vulnerabilities)

If you discover any security related issues, please email  instead of using the issue tracker.

Credits
-------

[](#credits)

- [Lee Kai Mun](https://github.com/leekaimun)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

43

—

FairBetter than 90% of packages

Maintenance57

Moderate activity, may be stable

Popularity30

Limited adoption so far

Community18

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 80% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~13 days

Recently: every ~22 days

Total

8

Last Release

1168d ago

Major Versions

v1.3.0.x-dev → v4.x-dev2023-02-26

### Community

Maintainers

![](https://www.gravatar.com/avatar/24b7a70595c7bc4a3cce8b7bba6fa66078f0f19c8dc060d413a11d31455f55df?d=identicon)[sgcomptech](/maintainers/sgcomptech)

---

Top Contributors

[![leekaimun](https://avatars.githubusercontent.com/u/45054754?v=4)](https://github.com/leekaimun "leekaimun (36 commits)")[![sgcomptech](https://avatars.githubusercontent.com/u/118097777?v=4)](https://github.com/sgcomptech "sgcomptech (6 commits)")[![alex552](https://avatars.githubusercontent.com/u/21161486?v=4)](https://github.com/alex552 "alex552 (1 commits)")[![martin-ro](https://avatars.githubusercontent.com/u/10107779?v=4)](https://github.com/martin-ro "martin-ro (1 commits)")[![mohamedsabil83](https://avatars.githubusercontent.com/u/10126040?v=4)](https://github.com/mohamedsabil83 "mohamedsabil83 (1 commits)")

---

Tags

laravelmessagingfilamentticketingissue-trackingsgcomptechfilament-ticketing

###  Code Quality

TestsPest

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/sgcomptech-filament-ticketing/health.svg)

```
[![Health](https://phpackages.com/badges/sgcomptech-filament-ticketing/health.svg)](https://phpackages.com/packages/sgcomptech-filament-ticketing)
```

###  Alternatives

[guava/filament-knowledge-base

A filament plugin that adds a knowledge base and help to your filament panel(s).

206120.5k1](/packages/guava-filament-knowledge-base)[ralphjsmit/laravel-filament-seo

A package to combine the power of Laravel SEO and Filament Admin.

15398.7k10](/packages/ralphjsmit-laravel-filament-seo)[caresome/filament-neobrutalism-theme

A neobrutalism theme for FilamentPHP admin panels

303.2k](/packages/caresome-filament-neobrutalism-theme)[andreia/filament-ui-switcher

Add a modal with options to switch between different UI layouts and styles (colors, fonts, font sizes).

233.8k](/packages/andreia-filament-ui-switcher)[geo-sot/filament-env-editor

Access .env file though Filament admin panel

2432.3k1](/packages/geo-sot-filament-env-editor)[a2insights/filament-saas

Filament Saas for A2Insights

161.1k](/packages/a2insights-filament-saas)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
