- Can I use this package in Laravel 10 or older versions?
- No, this package requires Laravel 11, 12, or 13 due to its dependency on Livewire 3/4 and PHP 8.2+. If you’re on an older Laravel version, you’ll need to upgrade first, which may introduce compatibility risks with other packages.
- How do I disable the Livewire UI and use only the API or custom frontend?
- The package doesn’t expose a headless API by default, but you can disable the UI by removing Livewire routes and middleware from `config/customer-support.php`. For a custom frontend, you’d need to build API endpoints manually or fork the package to decouple the UI layer.
- What happens if my app already uses a different media library (e.g., Intervention Image) instead of Spatie MediaLibrary?
- The package hardcodes Spatie MediaLibrary for attachments, so conflicts will occur. You’d need to either replace the attachment logic in the package (risky) or disable attachments entirely by overriding the trait methods responsible for media handling.
- How do I customize the SLA escalation logic beyond the default hours?
- The SLA system is configurable via `config/customer-support.php` for priority-based hours, but dynamic rules (e.g., time-of-day escalation) require custom observers or extending the `EscalateOverdueTickets` command. The package lacks built-in hooks for this, so you’d need to modify core logic.
- Does this package support multi-agent assignment or team-based workflows?
- No, it only supports single-agent assignment via the `assigned_to` field. For team-based workflows, you’d need to extend the `SupportTicket` model or create a custom pivot table for collaborative assignments.
- How do I integrate this with a third-party CRM or Slack for notifications?
- The package uses Laravel’s mail system and domain events (e.g., `TicketCreated`). To integrate with Slack or CRMs, listen to these events and dispatch HTTP requests or webhooks. The `config/customer-support.php` file includes a `webhooks` section for custom integrations.
- What’s the best way to test this package in a CI pipeline?
- Test the package by creating feature tests for ticket lifecycle (creation, replies, status changes) and edge cases like concurrent updates. Mock the Livewire UI components if testing headlessly, and verify Spatie MediaLibrary interactions with fake storage drivers.
- Can I use this package without Livewire or Flux in my project?
- Yes, but you’ll lose the bundled UI. The package’s core functionality (tickets, messages, SLAs) remains usable if you disable the UI routes and middleware. For a custom frontend, you’d need to build API endpoints or replace Livewire components manually.
- How do I add custom fields to tickets or messages?
- Extend the `SupportTicket` or `SupportTicketMessage` models and add migrations for custom fields. Override the Livewire/Flux UI components to render these fields, or build a custom Nova resource if using Nova.
- Are there alternatives to this package with more features (e.g., multi-channel support or AI routing)?
- For advanced features like Slack integration or AI routing, consider Laravel packages like `beyondcode/laravel-websockets` (for real-time support) or `spatie/laravel-activitylog` (for audit trails). For full-featured helpdesks, commercial solutions like Zendesk or Freshdesk offer Laravel APIs but aren’t open-source.