Inbox
CommunityA Gmail-style internal messaging system for your Filament panel. Provides inbox, sent, starred, and trash pages with full message threading, reply/reply all, forwarding, read receipts, rich text editing, file attachments, bulk actions, search & filters, database notifications, stats widget, dark mode, multi-tenancy support, and i18n (8 languages). Built natively for Filament v5 with Laravel events, configurable user model, and test factories included.
filament/
namespace. Review the source and install at your own risk. Found
malware or an unresolved security issue the author won't
address?
Report it
.
Author:
Yuichi Okada
Documentation
- Screenshots
- Features
- Requirements
- Installation
- Configuration
- Multi-tenancy
- Events
- Testing
- Changelog
- License
Email-like inbox messaging plugin for Filament v5. Add a complete internal messaging system to your admin panel — inbox, sent, starred, trash, threading, forwarding, read receipts, and more.
#Screenshots
| Inbox | Thread View |
|---|---|
![]() |
![]() |
| Compose Message | Sent Messages |
|---|---|
![]() |
![]() |
#Features
- Inbox, Sent, Starred, Trash — Full Gmail-style navigation
- Message Threading — Reply and Reply All with threaded conversations
- Message Forwarding — Forward messages with original headers
- Read Receipts — Per-recipient read tracking with status indicators
- Star Messages — Mark important messages for quick access
- Rich Text Editor — Compose messages with formatting and file attachments
- Bulk Actions — Mark as read, move to trash in batch
- Search & Filters — Filter by sender, unread, starred
- Database Notifications — Filament native notifications on new messages
- Stats Widget — Unread, total, and starred message counts
- Dark Mode — Full dark mode support
- Multi-tenancy — Filament native tenant scoping
- Configurable User Model — Works with any authenticatable model
- Laravel Events — Hook into MessageSent, MessageRead, MessageStarred, MessageTrashed, MessageRestored, MessageForwarded
- Test Factories — Message and MessageRecipient factories included
- i18n — English, Japanese, Spanish, French, Portuguese (BR), Chinese (Simplified), Korean, German
#Requirements
- PHP 8.2+
- Laravel 12+
- Filament v5
#Installation
composer require qalainau/filament-inbox
Run the notifications migration (required for Filament database notifications):
php artisan make:notifications-table
php artisan migrate
Add the HasInbox trait to your User model:
use FilamentInbox\Concerns\HasInbox;
class User extends Authenticatable
{
use HasInbox;
}
Register the plugin in your Filament panel. databaseNotifications() is required to enable Filament's notification system:
use FilamentInbox\FilamentInboxPlugin;
public function panel(Panel $panel): Panel
{
return $panel
->databaseNotifications()
->plugin(FilamentInboxPlugin::make());
}
Note:
databaseNotifications()requires thenotificationstable. If you see an error about a missing table, runphp artisan make:notifications-table && php artisan migrate.
#Configuration
Publish the config file:
php artisan vendor:publish --tag=filament-inbox-config
// config/filament-inbox.php
return [
// Custom user model (defaults to auth provider model)
'user_model' => null,
// Custom users table name (auto-detected from model)
'users_table' => null,
// Tenant-users relationship method on tenant model
// Auto-detects 'members' or 'users' if null
'tenant_users_relationship' => null,
];
#Multi-tenancy
Filament Inbox works with Filament's built-in tenancy. When tenancy is active:
- Messages are scoped to the current tenant
- Recipient options are limited to tenant members
- Tenant is automatically attached to new messages
No additional configuration is needed if your tenant model has a members() or users() relationship.
#Events
Listen to messaging events in your EventServiceProvider or with Event::listen():
| Event | Dispatched When |
|---|---|
MessageSent |
A message or reply is sent |
MessageRead |
A message is marked as read |
MessageStarred |
A message is starred or unstarred |
MessageTrashed |
A message is moved to trash |
MessageRestored |
A message is restored from trash |
MessageForwarded |
A message is forwarded |
#Testing
composer test
#Changelog
Please see CHANGELOG for more information on what has changed recently.
#License
The MIT License (MIT). Please see License File for more information.
The author
From the same author
Univer Sheet
Integrate Univer Sheet into Filament — full spreadsheet editor for forms, read-only display for infolists, and compact preview for table columns.
Author:
Yuichi Okada
Team Chat
Add Slack-like team chat to any Filament panel — channels, DMs, threads, reactions, @mentions, file sharing, and unread tracking, all self-hosted with zero external dependencies.
Author:
Yuichi Okada
Bonsai Theme
High-density, compact UI theme for Filament v5. Inspired by Japanese business applications (sales, inventory, order management) that prioritize information density, Bonsai Theme reduces padding, gaps, and font sizes across all Filament components to fit more data on screen. No Tailwind build required. The theme ships as pre-compiled CSS and is loaded automatically.
Author:
Yuichi Okada
Featured Plugins
A selection of plugins curated by the Filament team
Blueprint
Filament Blueprint is a premium Laravel Boost extension that helps AI agents produce accurate, detailed implementation plans and security reports for Filament apps.
Filament
Advanced Tables (formerly Filter Sets)
Supercharge 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!
Kenneth Sese
Data Lens
Advanced Data Visualization for Laravel Filament - a premium reporting solution enabling custom column creation, sophisticated filtering, and enterprise-grade data insights within admin panels.
Padmission



