PHPackages                             daacreators/creators-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. daacreators/creators-ticketing

ActiveLibrary

daacreators/creators-ticketing
==============================

A robust and dynamic ticketing system for Filament

v1.2.1(1mo ago)272.5k↓10.9%9[1 issues](https://github.com/jabirmayar/creators-ticketing/issues)[3 PRs](https://github.com/jabirmayar/creators-ticketing/pulls)MITPHPPHP ^8.2

Since Nov 4Pushed 1mo ago2 watchersCompare

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

READMEChangelog (1)Dependencies (4)Versions (23)Used By (0)

Creators Ticketing for Filament
===============================

[](#creators-ticketing-for-filament)

[![Latest Version on Packagist](https://camo.githubusercontent.com/ad8cda3cd283adac06543e0c2796ee89c47e8090ead4282a141f67dd90dda79a/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f64616163726561746f72732f63726561746f72732d7469636b6574696e672e737667)](https://packagist.org/packages/daacreators/creators-ticketing)[![Total Downloads](https://camo.githubusercontent.com/3e42453751d78fc3f6bf9962881a81d63a14b154863337d85d2399f3c299dc21/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f64616163726561746f72732f63726561746f72732d7469636b6574696e672e737667)](https://packagist.org/packages/daacreators/creators-ticketing)[![License](https://camo.githubusercontent.com/7013272bd27ece47364536a221edb554cd69683b68a46fc0ee96881174c4214c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667)](LICENSE.md)

A robust and dynamic ticketing system plugin for Filament, providing a complete helpdesk solution for your Laravel application.

---

### Need a Helpdesk for Your Shopify Store?

[](#need-a-helpdesk-for-your-shopify-store)

[![Creators Helpdesk](screenshots/hepdesk-logo.png)](screenshots/hepdesk-logo.png) **[Creators Helpdesk](https://apps.shopify.com/daacreators-helpdesk)** – A modern, lightweight helpdesk for Shopify merchants. Try it free for 14 days.

---

Screenshots
-----------

[](#screenshots)

[![Tickets List](screenshots/tickets.png)](screenshots/tickets.png)*Tickets List*

[![Ticket View](screenshots/ticket-view.png)](screenshots/ticket-view.png)*Ticket View*

[![Create Automation](screenshots/automation.png)](screenshots/automation.png)*Create Automation*

[![Submit Ticket Form](screenshots/submit-ticket.png)](screenshots/submit-ticket.png)*Submit Ticket Form*

[![User Tickets List](screenshots/user-tickets-list.png)](screenshots/user-tickets-list.png)*User's Tickets List*

[![User Tickets List](screenshots/user-facing-chat-view-open.png)](screenshots/user-facing-chat-view-open.png)*User's Chat View*

[![User Tickets List](screenshots/user-facing-chat-view-closed.png)](screenshots/user-facing-chat-view-closed.png)*User's Chat View with Closed Status*

Features
--------

[](#features)

- Full ticketing system with departments and forms
- Agent management with department assignments
- Custom form builder for ticket submissions
- Real-time ticket chat using Livewire
- Ticket statistics dashboard widget
- Granular permission system
- Read/Unread status indicators for agents
- File attachments support
- Advanced spam protection system
- Responsive design
- Multi-language support
- Event system for extensibility
- Automation based on events
- Seamless integration with Filament

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

[](#requirements)

- PHP 8.2 or higher
- Laravel 11.x|12.x
- Filament 4.1.7|5.1 or higher
- Livewire 3.x

Installation
------------

[](#installation)

You can install the package via composer:

```
composer require daacreators/creators-ticketing
```

After installation, publish the config file:

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

### Setup: Filament Panel Integration

[](#setup-filament-panel-integration)

The plugin integration code should be added to your main Filament admin panel provider file, which is typically located at:

```
app/Providers/Filament/AdminPanelProvider.php

```

Open your AdminPanelProvider.php file and modify the panel() method as shown below:

```
use Filament\Panel;
use Filament\PanelProvider;
use daacreators\CreatorsTicketing\TicketingPlugin;

class AdminPanelProvider extends PanelProvider
{
    public function panel(Panel $panel): Panel
    {
        return $panel
            ->default()
            ->plugins([
                TicketingPlugin::make(),
            ]);
    }
}
```

Run the migrations:

```
php artisan migrate
```

### Seeding Ticket Statuses

[](#seeding-ticket-statuses)

After running migrations, you can seed default ticket statuses using the provided seeder:

```
php artisan db:seed --class=daacreators\\CreatorsTicketing\\Database\\Seeders\\TicketStatusSeeder
```

This will create the following default ticket statuses:

- **Open** (Blue) - Default status for new tickets
- **In Progress** (Amber) - Tickets being worked on
- **Answered** (Green) - Tickets that have been answered
- **Pending** (Purple) - Tickets waiting for response
- **Resolved** (Green) - Tickets that have been resolved
- **Closed** (Gray) - Closing status for completed tickets

The seeder uses `updateOrCreate` to prevent duplicates, so you can safely run it multiple times.

Upgrading
---------

[](#upgrading)

### Upgrading from v1.1.8 to v1.1.9

[](#upgrading-from-v118-to-v119)

**⚠️ Important:** Version v1.1.9 and introduces new fields to the database table. If you are upgrading from a previous version, you **must** run the migrations after updating the package to ensure the system functions correctly:

```
php artisan migrate
```

Configuration
-------------

[](#configuration)

### Basic Configuration

[](#basic-configuration)

Configure the package by setting values in your `.env` file or directly in the `config/creators-ticketing.php` file:

```
TICKETING_NAV_GROUP="Creators Ticketing"

USER_MODEL="\App\Models\User"

TICKETING_NAV_FIELD=email
TICKETING_NAV_ALLOWED=admin@demo.com,manager@demo.com
```

### UUID / ULID / Nanoid user IDs

[](#uuid--ulid--nanoid-user-ids)

This package now creates `user_id`, `assignee_id`, and `seen_by` columns using the configured user ID type.

- **UUID**: no extra config needed (default for non-int keys)
- **ULID**: no extra config needed if your user model uses `HasUlids`
- **Custom string (e.g. nanoid)**: set the key type + length so foreign keys match your `users.id`

```
TICKETING_USER_KEY_TYPE=char
TICKETING_USER_KEY_LENGTH=21
```

### Navigation Visibility

[](#navigation-visibility)

You can control who sees the ticketing resources in the admin panel by configuring the navigation visibility rules:

```
'navigation_visibility' => [
    'field' => 'email',
    'allowed' => ['admin@site.com', 'manager@site.com']
],
```

Multi-language Support
----------------------

[](#multi-language-support)

This plugin is fully localized and supports multiple languages out of the box. It automatically detects and uses your application's current locale configuration (`config/app.php`).

**Currently supported languages:**

- 🇺🇸 **English** (`en`) - Default
- 🇪🇸 **Spanish** (`es`)
- 🇧🇷 **Portuguese (Brazil)** (`pt_BR`)
- 🇫🇷 **French** (`fr`)
- 🇩🇪 **German** (`de`)
- 🇸🇦 **Arabic** (`ar`)
- 🇨🇳 **Chinese (Simplified)** (`zh_CN`)

### Publishing Translations

[](#publishing-translations)

If you wish to modify the texts or add a new language, you can publish the translation files:

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

Usage
-----

[](#usage)

### Creating Forms

[](#creating-forms)

1. Go to the Forms section in the admin panel
2. Create a new form with custom fields

### Setting Up Departments

[](#setting-up-departments)

1. Navigate to the Filament admin panel
2. Go to the Departments section
3. Create departments and assign agents
4. Assign the form to specific departments

### Managing Tickets

[](#managing-tickets)

Tickets can be managed through the Filament admin panel. You can:

- View all tickets **(New updates are marked with a "NEW" badge)**
- Assign tickets to agents
- Change ticket status
- Add internal notes
- Communicate with users
- Track ticket activities

### Frontend Integration

[](#frontend-integration)

To add the tickets and ticket submission form to your frontend:

```
@livewire('creators-ticketing.ticket-submit-form')
```

Dashboard Widget
----------------

[](#dashboard-widget)

The package includes a ticket statistics widget. Add it to your Filament dashboard:

```
use daacreators\CreatorsTicketing\Filament\Widgets\TicketStatsWidget;

class DashboardConfig extends Config
{
    public function widgets(): array
    {
        return [
            TicketStatsWidget::class,
        ];
    }
}
```

Events System
-------------

[](#events-system)

The plugin dispatches events for major ticket actions, allowing you to extend functionality with custom listeners.

### Available Events

[](#available-events)

All events are located in the `daacreators\CreatorsTicketing\Events` namespace:

EventTriggered WhenProperties`TicketCreated`A new ticket is created`Ticket $ticket`, `?User $user``TicketAssigned`Ticket is assigned/reassigned`Ticket $ticket`, `?int $oldAssigneeId`, `?int $newAssigneeId`, `?User $assignedBy``TicketStatusChanged`Ticket status changes`Ticket $ticket`, `?TicketStatus $oldStatus`, `TicketStatus $newStatus`, `?User $changedBy``TicketPriorityChanged`Ticket priority changes`Ticket $ticket`, `TicketPriority $oldPriority`, `TicketPriority $newPriority`, `?User $changedBy``TicketTransferred`Ticket moved to another department`Ticket $ticket`, `Department $oldDepartment`, `Department $newDepartment`, `?User $transferredBy``TicketReplyAdded`Public reply added to ticket`Ticket $ticket`, `TicketReply $reply``InternalNoteAdded`Internal note added`Ticket $ticket`, `TicketReply $note``TicketClosed`Ticket status changed to closing status`Ticket $ticket`, `?User $closedBy``TicketDeleted`Ticket is deleted`int $ticketId`, `string $ticketUid`, `?User $deletedBy`**Model Classes:**

- `Ticket` → `daacreators\CreatorsTicketing\Models\Ticket`
- `TicketStatus` → `daacreators\CreatorsTicketing\Models\TicketStatus`
- `TicketReply` → `daacreators\CreatorsTicketing\Models\TicketReply`
- `Department` → `daacreators\CreatorsTicketing\Models\Department`
- `TicketPriority` → `daacreators\CreatorsTicketing\Enums\TicketPriority` (Enum)
- `User` → Your configured user model (default: `App\Models\User`)

> **Note:** Properties marked with `?` are nullable and may be `null` in certain contexts.

Automation Rules
----------------

[](#automation-rules)

Automation rules allow you to automate actions on tickets based on specific events and conditions.

### Supported Events

[](#supported-events)

- Ticket created
- Ticket updated
- Status changed
- Priority Changed
- Ticket assigned
- Reply Added
- Internal Note Added

### Conditions

[](#conditions)

- Department
- Form
- Status
- Priority
- Assignee
- Requester
- Created within X hours
- Last activity within X hours

### Actions

[](#actions)

- Assign ticket to agent
- Change ticket status
- Change ticket priority
- Transfer ticket to another department
- Add internal note
- Add public reply

Managing Spam Filters
---------------------

[](#managing-spam-filters)

1. Navigate to **Spam Filters** in the admin panel
2. Click **Create** to add a new filter
3. Select the filter type and action (block/allow)
4. Add values (keywords, emails, IPs, or patterns)
5. Set priority (higher numbers execute first)
6. Optionally add a reason for internal reference

in `config/creators-ticketing.php`:

```
    'spam_protection' => [
        'enabled' => env('TICKETING_SPAM_PROTECTION', true),
        'rate_limiting' => [
            'enabled' => true,
            'max_tickets_per_hour' => 5,
            'max_tickets_per_day' => 20,
        ],
        'content_filtering' => [
            'enabled' => true,
            'check_links' => true,
            'max_links_allowed' => 3,
        ],
    ],
```

### Viewing Spam Logs

[](#viewing-spam-logs)

All blocked submissions are logged with complete details:

- Date and time of attempt
- User information
- Email and IP address
- Filter type that triggered
- Matched value
- Complete ticket data that was submitted

Access spam logs through **Spam Logs** in the admin panel.

Security
--------

[](#security)

The package includes built-in security features:

- Private file storage for attachments
- Permission-based access control
- Department-level agent restrictions

Note: attachments require `storage/app/private` to be writable by the PHP process. On some hosts (WSL/Docker/NFS bind mounts), permission changes like `chmod` may be denied; the package will continue to boot, but you must ensure correct ownership/permissions from the host.

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

[](#contributing)

Thank you for considering contributing to Creators Ticketing! You can contribute in the following ways:

1. Report bugs
2. Submit feature requests
3. Submit pull requests
4. Improve documentation

Support the Project
-------------------

[](#support-the-project)

If this package saves you time or helps your business, consider supporting its development.

[Support the Project](https://jabirmayar.gumroad.com/coffee)

License
-------

[](#license)

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

Credits
-------

[](#credits)

- [Jabir Khan](https://github.com/jabirmayar)
- [All Contributors](../../contributors)

Support
-------

[](#support)

If you discover any security-related issues, please email .

**Built with ❤️ by [DAA Creators](https://daacreators.com)**

###  Health Score

51

—

FairBetter than 96% of packages

Maintenance88

Actively maintained with recent releases

Popularity34

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity57

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 88.6% 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 ~7 days

Recently: every ~18 days

Total

21

Last Release

55d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/0e8c4bd89144533bc0454808d22455e9daeacff09f9746b30a23dd8c638b2235?d=identicon)[jabirmayar](/maintainers/jabirmayar)

---

Top Contributors

[![jabirmayar](https://avatars.githubusercontent.com/u/55909170?v=4)](https://github.com/jabirmayar "jabirmayar (31 commits)")[![nguyentranchung](https://avatars.githubusercontent.com/u/9611224?v=4)](https://github.com/nguyentranchung "nguyentranchung (4 commits)")

### Embed Badge

![Health badge](/badges/daacreators-creators-ticketing/health.svg)

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

###  Alternatives

[bezhansalleh/filament-shield

Filament support for `spatie/laravel-permission`.

2.8k2.9M88](/packages/bezhansalleh-filament-shield)[guava/calendar

Adds support for vkurko/calendar to Filament PHP.

298241.0k3](/packages/guava-calendar)[croustibat/filament-jobs-monitor

Background Jobs monitoring like Horizon for all drivers for FilamentPHP

254255.2k6](/packages/croustibat-filament-jobs-monitor)[andrewdwallo/filament-companies

A comprehensive Laravel authentication and authorization system designed for Filament, focusing on multi-tenant company management.

34450.0k2](/packages/andrewdwallo-filament-companies)[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)[stephenjude/filament-jetstream

A Laravel starter kit built with Filament inspired by Jetstream.

17554.3k2](/packages/stephenjude-filament-jetstream)

PHPackages © 2026

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