A Filament admin panel plugin for the Escalated support ticket system. Manage tickets, departments, SLA policies, escalation rules, macros, and more — all from within your existing Filament admin panel.
Escalated for Filament is a Filament plugin wrapper around escalated-laravel. It does not duplicate any business logic. Instead, it provides Filament Resources, Pages, Widgets, and Actions that call the same services, models, and events from the core Laravel package. This means:
- All ticket lifecycle logic, SLA calculations, and escalation rules come from
escalated-laravel - Database tables, migrations, and configuration are managed by the core package
- Events, notifications, and webhooks fire exactly as they would from the Inertia UI
- You get a native Filament experience without maintaining a separate codebase
Note: This package uses Filament's native Livewire + Blade components (tables, forms, info lists, actions, widgets) rather than the custom Vue 3 + Inertia.js UI from the
@escalated-dev/escalatedfrontend package. The core functionality is the same — same models, services, database, and business logic — but the UI look-and-feel follows Filament's design system. Some interactions may differ slightly (e.g., Filament modals vs. inline forms, Filament table filters vs. custom filter components). If you need pixel-perfect parity with the Inertia frontend, useescalated-laraveldirectly with the shared Vue components instead.
- PHP 8.2+
- Laravel 11 or 12
- Filament 3.x, 4.x, or 5.x
- escalated-dev/escalated-laravel ^0.5
| escalated-filament | Filament | Laravel | PHP |
|---|---|---|---|
| 0.5.x | 3.x, 4.x, 5.x | 11, 12 | 8.2+ |
composer require escalated-dev/escalated-laravel escalated-dev/escalated-filamentIf you already have escalated-laravel installed, just add the Filament plugin:
composer require escalated-dev/escalated-filamentphp artisan escalated:install
php artisan migrateIn a service provider (e.g., AppServiceProvider):
use Illuminate\Support\Facades\Gate;
Gate::define('escalated-admin', fn ($user) => $user->is_admin);
Gate::define('escalated-agent', fn ($user) => $user->is_agent || $user->is_admin);use Escalated\Filament\EscalatedFilamentPlugin;
public function panel(Panel $panel): Panel
{
return $panel
// ...
->plugin(
EscalatedFilamentPlugin::make()
->navigationGroup('Support')
->agentGate('escalated-agent')
->adminGate('escalated-admin')
);
}You're live. Visit your Filament panel — a Support navigation group will appear with all ticket management resources.
- TicketResource — Full ticket management with list, view, and create pages
- Filterable by status, priority, department, agent, tags, SLA
- Quick filter tabs: All, My Tickets, Unassigned, Urgent, SLA Breaching
- Bulk actions: Assign, Change Status, Change Priority, Add Tags, Close, Delete
- View page with conversation thread, sidebar details, SLA info, satisfaction rating
- Header actions: Reply, Note, Assign, Status, Priority, Follow, Macro, Resolve, Close, Reopen
- DepartmentResource — CRUD for support departments with agent assignment
- TagResource — CRUD for ticket tags with color picker
- SlaPolicyResource — SLA policy management with per-priority response/resolution times
- EscalationRuleResource — Condition/action builder for automatic escalation rules
- CannedResponseResource — Pre-written response templates with categories
- MacroResource — Multi-action automation macros with reorderable steps
- TicketStatsOverview — Key metrics: My Open, Unassigned, Total Open, SLA Breached, Resolved Today, CSAT
- TicketsByStatusChart — Doughnut chart of ticket distribution by status
- TicketsByPriorityChart — Bar chart of open tickets by priority
- CsatOverviewWidget — Customer satisfaction metrics: Average Rating, Total Ratings, Satisfaction Rate
- RecentTicketsWidget — Table of the 5 most recent tickets
- SlaBreachWidget — Table of tickets with breached SLA targets
- Dashboard — Support dashboard with all widgets
- Reports — Date-range analytics with stats, department breakdown, and timeline
- Settings — Admin settings for reference prefix, guest tickets, auto-close, attachment limits
- RepliesRelationManager — Reply thread with internal notes, pinning, and canned response insertion
- ActivitiesRelationManager — Read-only audit log of all ticket activities
- FollowersRelationManager — Manage ticket followers
AssignTicketAction— Assign a ticket to an agentChangeStatusAction— Change ticket statusChangePriorityAction— Change ticket priorityApplyMacroAction— Apply a macro to a ticketFollowTicketAction— Toggle following a ticketPinReplyAction— Pin/unpin internal notes
- TicketConversation — Full conversation thread with reply composer, canned response insertion, and note pinning
- SatisfactionRating — Display customer satisfaction rating with star visualization
The plugin is configured through method chaining on the plugin instance:
EscalatedFilamentPlugin::make()
->navigationGroup('Support') // Navigation group label (default: 'Support')
->agentGate('escalated-agent') // Gate for agent access (default: 'escalated-agent')
->adminGate('escalated-admin') // Gate for admin access (default: 'escalated-admin')All other configuration (SLA, hosting modes, notifications, etc.) is managed by the core escalated-laravel package in config/escalated.php. See the escalated-laravel README for full configuration reference.
php artisan vendor:publish --tag=escalated-filament-viewsComing soon.
- Escalated for Laravel — Laravel Composer package
- Escalated for Rails — Ruby on Rails engine
- Escalated for Django — Django reusable app
- Escalated for AdonisJS — AdonisJS v6 package
- Escalated for Filament — Filament admin panel plugin (you are here)
- Shared Frontend — Vue 3 + Inertia.js UI components
Same architecture, same ticket system — native Filament experience for Laravel admin panels.
MIT