- Does Ticketit work with Laravel 9 or 10? The README mentions Laravel 5.1+ but no recent updates.
- Ticketit was last updated in 2018 and officially supports Laravel 5.1–5.6. For Laravel 9/10, you’ll need to manually override dependencies (e.g., force Laravel 8.x compatibility via `composer.json`) and test thoroughly. The package lacks native support for newer Laravel versions, so assess compatibility risks before adoption.
- How do I integrate Ticketit with my existing Laravel auth system if I’m not using the default users table?
- Ticketit relies on Laravel’s default `users` table and auth system. If your app uses a custom auth system, you’ll need to extend the package’s `User` model or create a custom adapter to bridge your auth logic with Ticketit’s role-based permissions (users/agents/admins). This may require modifying the package’s service provider and middleware.
- Can Ticketit auto-assign tickets to agents based on custom rules (e.g., skills, availability) instead of just lowest queue?
- Out of the box, Ticketit auto-assigns tickets to the agent with the lowest queue in a specified department. To implement custom rules (e.g., skills or availability), you’d need to override the `assignTicketToAgent()` logic in the package’s `TicketController` or create a custom event listener to intercept ticket assignment.
- What’s the best way to handle large volumes of tickets (e.g., 10K+ per month) with Ticketit?
- Ticketit isn’t optimized for high-volume ticketing. For scalability, consider adding database indexing to `tickets` and `ticket_comments` tables, implementing caching for ticket lists (e.g., Redis), and processing bulk operations via Laravel queues. The package also lacks built-in pagination optimizations, so test performance under load.
- Are there any security risks using Ticketit, given its last commit was in 2018?
- Yes, the package’s outdated status introduces risks like unpatched Laravel/PHP vulnerabilities (e.g., Carbon, Illuminate). Run `composer why-not` and `sensio-labs/security-checker` to audit dependencies. Mitigate risks by containerizing Ticketit (Docker) to isolate it from your main app and disabling features like attachments if storage is unreliable.
- How do I customize the Ticketit admin dashboard or add new stats/graphs?
- The admin dashboard uses Blade templates and Laravel Datatables. To customize it, override the views in `resources/views/vendor/ticketit/` or extend the `TicketitServiceProvider` to add new charts/graphs. For dynamic stats, hook into Laravel events (e.g., `ticket.created`) or modify the `TicketController` to inject custom data.
- Does Ticketit support multi-tenancy or separate databases for different clients?
- No, Ticketit does not support multi-tenancy or database-per-tenant setups. All tickets and attachments are stored in the shared database. For multi-tenancy, you’d need to extend the package to include tenant IDs in migrations or use a middleware to scope queries by tenant.
- Can I use Ticketit with a frontend framework like Vue.js or React instead of Blade?
- Ticketit is designed for Blade templates and doesn’t natively support Vue.js or React. To integrate with a SPA, you’d need to build a custom API endpoint (e.g., using Laravel’s `Route::apiResource`) to fetch ticket data and handle authentication via Laravel Sanctum or Passport.
- How do I localize Ticketit for a language not included in the default packs?
- Ticketit includes language packs for Arabic, German, Spanish, etc., but adding a new language requires editing the `resources/lang/` files or extending the localization system. Override the `TicketitServiceProvider` to load custom language files or use Laravel’s `trans()` helper in your views.
- What alternatives to Ticketit exist for Laravel that are actively maintained?
- For actively maintained alternatives, consider **Laravel Helpdesk** (by BeyondCode), **Spatie Ticket System**, or **Filament Helpdesk** (for Filament-based apps). These packages offer modern features like REST APIs, webhooks, and better Laravel 9/10 compatibility. Evaluate their feature sets against your needs before migrating.