Advanced Tables (formerly Filter Sets)
FeaturedSupercharge your tables with powerful features like user-customizable views, quick filters, multi-column sorting, advanced table searching, convenient view management, and more. Compatible with Resource Panel Tables, Relation Managers, Table Widgets, and Table Builder!
Author:
Kenneth Sese
Documentation
- Introduction
- Installation
- Getting started
- User Views
- Preset Views
- Favorites Bar
- Quick Save
- View Manager
- Managed Default Views
- Multi-Sort
- Quick Filters
- Advanced Search
- Advanced Filter Builder
- Additional Topics
- Support
- Changelog
- Contributing
- Credits
- License

#Introduction
Advanced Tables is a premium plugin for Filament that supercharges your tables with powerful features like user-customizable views, quick filters, multi-column sorting, advanced table searching, convenient view management, and more.
#Full Documentation
For complete documentation on all features, configuration options, and advanced usage, visit the Advanced Tables Documentation.
#Video
Check out a short video of some of the powerful features included in Advanced Tables

#Demo
See all the functionality that Advanced Tables has to offer in an interactive demo. It also includes a Configuration Playground so you can see many of the configuration options you can use to adapt the plugin to your needs.
#Features
- Allow your users to save their filters, toggled columns, grouping, and more in customizable User Views
- Developers can create Preset Views in code and deploy them for their clients
- Preset Views can also include filters, grouping, toggled columns, and column order
- The Quick Save button means saving custom views is just one click away
- (NEW) Managed Default Views
- Create powerful queries with Advanced Filter Builder
- Choose from six different themes
- (NEW) Table loading skeleton overlay
- (NEW) Sort by multiple table columns with Multi Sort
- (NEW) Quickly access your filters with Quick Filters
- (BETA) Powerful search with constraints and column selection using Advanced Search
- Supports Multi-tenancy
- Includes a User Views Resource so your admins can manage all user views
- Admins can create global favorite views that will appear for all users
- Powerful policy integration gives you complete control
- Includes an approval system for User Views
- More than 60 configuration options to completely customize Advanced Tables to your needs
- Supports Panel Resource Tables, Relation Managers, Table Widgets, and Standalone Table Builder
#Screenshots
Favorites Bar

View Manager

Quick Save

User Views Resource with Approval System

View Manager in Table Toolbar

Dark mode

#Themes
Github theme (New)

Filament theme (New)

Links theme

Links Simple theme

Tabs theme

Tabs Simple theme

#Installation
Thank you for purchasing Advanced Tables!
For complete documentation on all features, configuration options, and advanced usage, visit the Advanced Tables Documentation.
#Requirements
Advanced Tables requires PHP 8.2+, MySQL 5.7.8+ or Postgres, Filament 5.0.0+, and Laravel 11.28+.
#New Installation
#Purchasing a license
Advanced Tables has partnered with Privato to handle payment, licensing, and distribution. After purchase, you will receive an email from Privato with your license key.
#Installing with Composer
To install Advanced Tables you'll need to add the package to your composer.json file:
composer config repositories.archilex composer https://advancedtables.privato.pub/composer
or
{
"repositories": [
{
"type": "composer",
"url": "https://advancedtables.privato.pub/composer"
}
],
}
Then configure authentication:
composer config --auth http-basic.advancedtables.privato.pub "[license-email]" "[license-key]"
Finally, install the package
composer require archilex/filament-filter-sets
#Setting up Advanced Tables in Filament Panels (including Relation Managers, Table Widgets, and Panel Pages)
If using Filament's standalone Table Builder, please refer to the Table Builder setup instructions
-
Publish and run the migrations
Important: If you are using a User class other than Laravel's default
User::classor a user's table other than Laravel's defaultusersyou should update these configurations before migrating.php artisan vendor:publish --tag="advanced-tables-migrations" php artisan migrate -
Publish the language files
Optionally, you may publish the language files:
php artisan vendor:publish --tag="advanced-tables-translations" -
Add Advanced Tables to your Filament Panel
Add Advanced Tables to a panel by instantiating the plugin class and passing it to the
plugin()method of the configuration:use Archilex\AdvancedTables\Plugin\AdvancedTablesPlugin; public function panel(Panel $panel): Panel { return $panel ->plugins([ AdvancedTablesPlugin::make() ]) } -
Add the
HasViewstrait to yourUser::classuse Archilex\AdvancedTables\Concerns\HasViews; class User { use HasViews; } -
Integrate Advanced Table's Tailwind and css files
IMPORTANT: Filament v5 requires you create a custom theme to support a plugin's additional Tailwind classes. Be sure to follow those instructions before continuing with this step.
After you have created your custom theme, add Advanced Tables' views to your new theme's
theme.cssfile usually located inresources/css/filament/admin/theme.css:@import '../../../../vendor/filament/filament/resources/css/theme.css'; @import '../../../../vendor/archilex/filament-filter-sets/resources/css/plugin.css'; // Add @source '../../../../app/Filament'; @source '../../../../resources/views/filament'; @source '../../../../vendor/archilex/filament-filter-sets'; // Add -
Compile
Next, compile your theme:
npm run buildFinally, run the Filament upgrade command:
php artisan filament:upgrade -
Setting up tenancy
If you are installing Advanced Tables into a multi-tenancy application, please refer to the multi-tenancy documentation.
After you've successfully installed Advanced Tables, you may review the Getting Started guide to learn how to add Advanced Tables to your resources, relation managers, pages, and/or table widgets.
#Deploying
When deploying, it is not advised to store your auth.json file inside your project's version control repository. To store your credentials on your deployment server you may create a Composer auth.json file in your project directory using the following command:
composer config http-basic.advancedtables.privato.pub "[license-email]" "[license-key]"
Tip: Make sure the
auth.jsonfile is in.gitignoreto avoid leaking credentials into your git history.
If you are using Laravel Forge, you don't need to create the auth.json file manually. Instead, you can set the credentials on the Composer Package Authentication screen of your server.
#Fixing deployment errors
-
The most common mistake when deploying, is not adding the colon (:) followed by the domain you registered.
license_key:domain. Please review the instructions above. -
If you have set up everything correctly and are getting the error:
../advanced-tables-for-filament-3.7.29.zip' URL required authentication (HTTP 401). You must be using the interactive console to authenticateerror, you may need to ssh into your server and clear your composer global cache withcomposer clear-cache
#Upgrading to v5
If you are upgrading from a previous version, please refer to the upgrade guide.
#Getting started
#Adding Advanced Tables to your table
To use Advanced Tables you will need to add the AdvancedTables trait to the appropriate class depending on whether you intend to use it on a Resource Table, Simple Resource Table, Table Widget, or Panel Page.
Important: For standalone Table Builder users, please refer to the Table Builder documentation.
#Resource tables
To add Advanced Tables to a normal Resource table, add the AdvancedTables trait to the List page of your Resource:
use Archilex\AdvancedTables\AdvancedTables;
class ListProducts extends ListRecords
{
use AdvancedTables;
#Simple (modal) resource tables
To add Advanced Tables to a Simple (modal) resource table, add the AdvancedTables trait to the Manage page:
use Archilex\AdvancedTables\AdvancedTables;
class ManagesCustomers extends ListRecords
{
use AdvancedTables;
#Table Widgets
To add Advanced Tables to a Table Widget, add the AdvancedTables trait to the Table widget:
use Archilex\AdvancedTables\AdvancedTables;
class LatestOrders extends BaseWidget
{
use AdvancedTables;
For Panel Pages, Custom Resource Pages, and Custom Pages, see the full getting started guide.
#User Views
User Views are the core feature of Advanced Tables. They allow your end-users to combine filters, toggled columns, column order, column sort, table grouping, and more into customizable views that are just one click away. Users no longer have to rebuild their views each time they need to focus on a certain subset of their data.
#Saving the current table configuration into a User View
To save a User View:
- On your table, apply any combination of filters, toggled columns, sort order, grouping, etc.
- After customizing your table, click the
+in the top right corner of the table. - Choose a name, icon, and color for the view.
- Choose if you want the view to be added to your favorite views, made public for other users, or be a global favorite.
- Save the view
When creating a user view the following configurations will be saved:
- current filters,
- table search query,
- column search queries (if enabled)
- column sort order
- toggled columns
- column order
- grouping
After creation, the View Manager allows a user to sort, edit, replace, or delete a User View.
#User View Highlights
Advanced Tables provides extensive configuration options for User Views:
- Icons and colors: Users can personalize views with custom icons and colors
- Public views: Users can share views with others, with an optional approval system
- Global favorites: Admins can create views that appear for all users
- Approval system: Admins can approve/reject public and global views before they're visible
- Session persistence: Optionally persist the active view across page navigations
For the full list of 60+ configuration options, see the User Views documentation.
#Preset Views
In addition to User Views, developers can programmatically create Preset Views in code that are available to all users. Preset Views expose a query() api to modify the underlying eloquent query, and a defaultFilters() api to apply values to your table filters (which shows filter indicators for a better UX).
#Creating a Preset View
use Archilex\AdvancedTables\Components\PresetView;
use Archilex\AdvancedTables\AdvancedTables;
class ListOrders extends ListRecords
{
use AdvancedTables;
public function getPresetViews(): array
{
return [
'processing' => PresetView::make()
->modifyQueryUsing(fn ($query) => $query->where('status', 'processing'))
->favorite(),
'delivered' => PresetView::make()
->modifyQueryUsing(fn ($query) => $query->where('status', 'delivered')),
];
}
}
Preset Views support labels, icons, colors, badges, tooltips, visibility controls, default filters, default grouping, toggled/reordered columns, default sorting (including multi-sort), and more.
For full Preset View configuration, see the Preset Views documentation.
#Favorites Bar
The Favorites Bar is home to all of a user's favorite views as well as Quick Save and View Manager. It includes six different themes (Github, Filament, Links, Links Simple, Tabs, Tabs Simple) and can be customized with different sizes, icon positions, dividers, loading indicators, and more.
For full configuration options, see the Favorites Bar documentation.
#Quick Save
Quick Save provides a convenient button for end-users to save User Views with one click. It can be displayed in the Favorites Bar or table toolbar, shown as a slideOver or modal, and fully customized.
For full configuration options, see the Quick Save documentation.
#View Manager
The View Manager gives end-users an easy and convenient way to manage all available views. Users can search, apply, sort, edit, delete, add to favorites, and more. It supports display as a dropdown or slideOver, and offers extensive customization options.
For full configuration options, see the View Manager documentation.
#Managed Default Views

Advanced Tables allows your users to manage which view they would like to be their default view for each table. When a view is set as default, it will be automatically loaded when the resource/table is first opened.
To enable, add managedDefaultViewsEnabled() to your panel provider:
AdvancedTablesPlugin::make()
->managedDefaultViewsEnabled()
For more details, see the Managed Default Views documentation.
#Multi-Sort

Advanced Tables allows your users to sort their tables by multiple columns. Using the Multi-Sort dropdown, users can add columns, change sort direction, and reorder sort priority. Multi-Sort is fully integrated with Preset Views and User Views.
For full configuration options, see the Multi-Sort documentation.
#Quick Filters

Quick Filters gives your users quick access to their filters through Filament's indicator system. When enabled, each indicator can be clicked to access that filter's settings. Filters can also be favorited and "pinned" so they always appear, even when not active.
For setup and configuration, see the Quick Filters documentation.
#Advanced Search

Advanced Search replaces Filament's search field with powerful search constraints and column selection. Users can search using eight different constraints like "starts with", "matches", "ends with", and more. Users can also select which columns to search, and use keyboard syntax shortcuts to quickly change search behavior. Fully integrated with Preset Views, User Views, and Quick Filters.
For setup and configuration, see the Advanced Search documentation.
#Advanced Filter Builder

Advanced Filter Builder is a custom filtering system that gives your users a simple, yet powerful way to build custom queries. Each filter can be used multiple times and grouped into or groups. It automatically generates text, numeric, date, boolean, and select filters from your table columns, and seamlessly integrates your existing Filament filters.
To enable:
return $table
->filters([
AdvancedFilter::make(),
])
For full setup and configuration, see the Advanced Filter Builder documentation.
#Additional Topics
- Action Customization - Customize trigger buttons, icons, labels, tooltips, and colors for all Advanced Tables actions. Includes support for Filament's icon alias system.
- Multi-Tenancy - Built-in support for Filament's multi-tenancy, simple one-to-many tenancy, Spatie Multi-tenancy, and Tenancy for Laravel.
- Authorization - Control access with Laravel policies. Includes methods for
makePublic,makeFavorite,makeGlobalFavorite,selectIcon,selectColor, and more. - User Views Resource - A Filament resource for admins to manage all User Views, approve/reject public views, and toggle settings.
- Filament Table Builder - Full support for Filament's standalone Table Builder.
- Additional Configurations - Table loading indicators, User::class configuration, language files, authentication guard settings, and more.
#Support
Question? Bug? Feature request? Comment or suggestion? Email me at advancedtables@gmail.com or join us on #advanced-tables on Discord. I'd love to hear from you.
#Changelog
Please see CHANGELOG for more information on what has changed recently.
#Contributing
Users with active licenses may access the private repo to contribute by visiting the Licenses tab of your Privato account.
#Credits
#License
#Single License
The Single License grants the Licensee permission to use Advanced Tables in a single project hosted on a single domain or subdomain. Examples include a personal website or a website for a single client.
If you would like to implement Advanced Tables in a SaaS application, you will need an Unlimited or Lifetime license.
The single license grants permission for up to 5 Employees and Contractors (i.e. developers) of the Licensee to access and use Advanced Tables.
You will receive updates and bug fixes for one year from the date of purchase. Should you decide not to renew your license, you will only be able to install the package up to the last version available before the license expired. You can renew the license at a discounted price to continue receiving updates and new features.
#Unlimited License
The Unlimited License grants the Licensee permission to use Advanced Tables on unlimited domains and subdomains, including SaaS applications.
The unlimited license grants permission for up to 25 Employees and Contractors (i.e. developers) of the Licensee to access and use Advanced Tables. There is no limit on the amount of end-users your app may have.
You will receive updates and bug fixes for one year from the date of purchase. Should you decide not to renew your license, you will only be able to install the package up to the last version available before the license expired. You can renew the license at a discounted price to continue receiving updates and new features.
#Lifetime License
The Lifetime License grants the Licensee permission the same benefits as the Unlimited License.
You will receive updates for the lifetime of the product.
The unlimited license grants permission for up to 25 Employees and Contractors (i.e. developers) of the Licensee to access and use Advanced Tables. There is no limit on the amount of end-users your app may have.
#Code Distribution
None of Advanced Tables' licenses allow the public distribution of its source code. So, you may not build an application using Advanced Tables and distribute that application publicly via an open source repository, hosting platforms, or any other code distribution platform.
#Questions?
Email me at advancedtables@gmail.com or join us on #advanced-tables on Discord.
The author
Kenneth Sese has been working in software development for more than 10 years. He is driven by a passion to help organizations that serve developing communities to utilize technology to fulfill their missions. He is currently a developer at Padmission building software that is helping end homelessness for families across the United States. He is also the author of Advanced Tables, Toggle Icon Column, and Stacked Image Column.
From the same author
Stacked Image Column
Display multiple images as a stack in your Filament tables.
Author:
Kenneth Sese
Toggle Icon Column
Combine Filament's interactive Toggle Column with its Icon Column to give users another way to interact with their tables.
Author:
Kenneth Sese