Weave 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

Servicedeskkitv4 Laravel Package

jeffersongoncalves/servicedeskkitv4

ServiceDeskKit v4 is a Laravel/PHP package that provides a foundation for building service desk and helpdesk features, helping developers add support workflows, service requests, and ticket management to their applications.

View on GitHub
Deep Wiki
Context7

Getting Started

Install the kit into an existing Filament v4 panel app:

composer require jeffersongoncalves/servicedeskkitv4:^4.14
php artisan servicedesk:install   # or vendor:publish for config/migrations if no install cmd
php artisan migrate
php artisan filament:upgrade && npm run build

Then register the plugin on your panel in app/Providers/Filament/AdminPanelProvider.php (->plugin(ServiceDeskPlugin::make())) and confirm the panel is discoverable via php artisan about / /admin.

Look first at:

  1. The published config/servicedesk.php — this is where model FQCNs, table prefixes, and user model bindings live. As of 4.14.0 several of these now point at external packages, so this file is your source of truth for what actually got wired up.
  2. vendor/jeffersongoncalves/servicedeskkitv4/src/ — check the Filament/Resources and Models directories. In 4.14.0 a large chunk of these are re-exported from the user/admin packages rather than defined locally.
  3. The migrations folder — ordering relative to your existing users table matters.

First use case: seed a category, open a ticket as an end user from the panel, then assign and reply to it as an agent. That single loop exercises the ticket model, the reply relation, the policy layer, and the notification path — if any of those are misconfigured after the 4.14.0 restructuring, this flow surfaces it immediately.

Implementation Patterns

Extend, don't publish. The default workflow is to subclass the package resources in app/Filament/Resources/ and reference your subclass in the panel provider. Publishing the vendor resources wholesale means you own every future merge conflict, and 4.14.0 just moved a lot of those files — see Gotchas.

Compose the user/admin packages explicitly. 4.14.0 delegates the User model, admin resources, and login flow to companion packages. In practice you configure this in config/servicedesk.php (or config/auth.php) so the kit resolves your App\Models\User, then let the admin package own the auth screens. If you need custom auth (SSO, 2FA), override at the panel level rather than forking the kit's login page.

Resource composition for ticket context. Attach domain-specific fields via Filament schema callbacks on your own resource subclass rather than editing the package form. Keep the ticket↔reply↔attachment relations untouched; layer status transitions through a state machine or observer so both the UI and API paths share the same rules.

Multi-tenancy. If you run team-scoped desks, set ->tenant(Team::class) on the panel and add the tenant relationship to the ticket model through a subclass. Filament scopes resources automatically, but package-supplied queries may bypass that — audit the resource's getEloquentQuery() in a subclass before trusting isolation.

Integration points that hold up well:

  • Policies: register your own TicketPolicy; the kit's authorization is a thin default and most real deployments replace it.
  • Notifications: hook TicketCreated / TicketReplied events in a listener rather than editing the resource actions.
  • Widgets: drop the package dashboard widgets into your own panel's ->widgets([...]) and add stats widgets alongside them.

Deployment. Treat this like any Filament plugin: php artisan filament:cache-components and php artisan config:cache in the deploy script, plus php artisan migrate --force. Pin ^4.14 and let Dependabot (which the package itself now uses) handle patch bumps behind CI.

Gotchas and Tips

4.14.0 is not a no-op upgrade. The headline item — "Use user/admin packages for models, resources and login" — relocates the User model, admin resources, and login page out of this kit into companion packages. Before upgrading from 4.13.x:

  • Run composer why jeffersongoncalves/servicedeskkitv4 and read the new transitive requirements. You will likely need to add the user and admin packages explicitly, at compatible versions.
  • Grep your app for any FQCN you imported from the kit's Models or Filament/Resources namespaces. Those classes may now be aliases or gone.
  • Re-publish and diff config/servicedesk.php — a stale config referencing an old namespace fails silently at boot, not at install.
  • Re-check the login route and panel ->login() registration. Delegated auth often changes the guard or the login route name, which breaks any hardcoded route('filament.admin.auth.login') in tests or redirects.

Version drift between the three packages. Because the kit now depends on sibling packages for core classes, a mismatched minor version between them produces "class not found" or, worse, a silently different User model. Constrain all three together and upgrade them in one PR.

Migration order. If the user package ships its own users alteration, it must run after Laravel's default users migration but before the ticket foreign keys. Check migration filenames/timestamps when you publish, and prefer running the package migrations from the package rather than copying them.

Debugging checklist for a blank or 500ing panel:

php artisan about                       # panel + plugin discovery
php artisan filament:clear-cached-components
php artisan config:clear && php artisan cache:clear
php artisan route:list | grep filament # login route present?

A missing login route almost always means the delegated admin package isn't registered in the panel provider.

Extension points that survive upgrades: config values, model subclasses bound via config, event listeners, panel plugin options. Extension points that don't: published Blade views, edited vendor migrations, and overridden resource static properties.

Don't chase the CI noise. Most of 4.14.0 is Dependabot and workflow standardization. If you skimmed the changelog, you could easily miss the single structural change — read the PR titles, not just the version delta. Similarly, PHPStan now runs on PHP 8.4 and laravel/sail bumped to 1.68; neither affects consumers, but they hint the maintainer targets current PHP. Verify your own PHP constraint before upgrading.

Testing. Use Livewire tests against the panel (Filament::setCurrentPanel(...)) and assert the ticket lifecycle end-to-end. Given the resource relocation in 4.14.0, a smoke test that merely opens /admin/tickets is worth more than unit tests over your subclassed schema.

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.
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle