Accounts Builder
Full accounts manager with API/Notifications/Contacts to manage your contacts and accounts
Author:
Fady Mondy
Documentation
- Screenshots
- Features
- Use Case
- Installation
- Publish Account Model
- Add Accounts Guard
- Usage
- Hide Resource
- Use Filament Types
- Show Address Field
- Show Type Field
- Attach Relation To Accounts
- Use Export & Import Actions
- Use Account Column
- Testing
- Code Style
- PHPStan
- Other Filament Packages

Manage your multi accounts inside your app using 1 table with multi auth and a lot of integrations
[!CAUTION] Don't update to v2.3 if you are using v2.2 or less because you will lose some features but you can update and use this features from integrated packages.
#Screenshots

#Features
- Accounts Manager
- Account Types
not tested - Account Login By
not tested - Account Active/Block
not tested - Account Avatar
not tested - Account Impersonate Integration
not tested - Account Table Column
not tested - Export
not tested - Import
not tested - Account Filament Alerts Integration
- Account Teams
- Google Contacts Integrations
#Use Case
you can use this package if you like to build a CRM or a multi-accounts app
#Installation
composer require tomatophp/filament-accounts
after install your package please run this command
php artisan filament-accounts:install
if you are not using this package as a plugin please register the plugin on /app/Providers/Filament/AdminPanelProvider.php
->plugin(\TomatoPHP\FilamentAccounts\FilamentAccountsPlugin::make())
#Publish Account Model
you can publish your account model to add other relations or implement some interfaces by using this command
php artisan vendor:publish --tag="filament-accounts-model"
now go to your filament-accounts.php config file and change the model value to the new one.
if you don't find it you can publish it
php artisan vendor:publish --tag="filament-accounts-config"
#Add Accounts Guard
now you need to add a new guard to your auth.php config like this
<?php
return [
/*
* Features of Tomato CRM
*
* accounts: Enable/Disable Accounts Feature
*/
"features" => [
"notifications" => false,
"loginBy" => false,
"avatar" => false,
"types" => false,
"teams" => false,
"impersonate" => [
'active'=> false,
'redirect' => '/app',
],
],
/*
* Accounts Configurations
*
* login_by: Login By Phone or Email
*/
"login_by" => "email",
/*
* Accounts Configurations
*
* model: User Model Class
*/
"model" => \TomatoPHP\FilamentAccounts\Models\Account::class,
];
#Usage
this plugin makes it easy to make a starting point for your app if this app has customers to manage
but here is the problem, every app has a different way of managing customers, so we built a Facade service to control the way you want to manage your customers
#Use Avatar
add this method to your plugin in AdminPanelProvider.php
->plugin(
\TomatoPHP\FilamentAccounts\FilamentAccountsPlugin::make()
->useAvatar()
)
#Hide Resource
just allow useResource->() on the plugin
->plugin(\TomatoPHP\FilamentAccounts\FilamentAccountsPlugin::make()
->useResource(false)
)
#Use Filament Types
just allow ->useResource() on the plugin
->plugin(\TomatoPHP\FilamentAccounts\FilamentAccountsPlugin::make()
->useResource()
)
#Show Address Field
you can show or hide address field on the create or edit form by using this code
->plugin(\TomatoPHP\FilamentAccounts\FilamentAccountsPlugin::make()
->showAddressField()
)
#Show Type Field
you can show or hide type field on the create or edit form by using this code
->plugin(\TomatoPHP\FilamentAccounts\FilamentAccountsPlugin::make()
->showTypeField()
)
#Attach Relation To Accounts
you can attach a new relation to the accounts relations manager by just passing the relation class to the facade service method
use TomatoPHP\FilamentAccounts\Facades\FilamentAccounts;
public function boot()
{
FilamentAccounts::register([
AccountOrdersRelationManager::make()
]);
}
#Use Export & Import Actions
now on your main panel provider add ->useExport() , ->useImport() to the plugin
->plugin(\TomatoPHP\FilamentAccounts\FilamentAccountsPlugin::make()
...
->useExport()
->useImport()
)
#Use Account Column

you can use the account column in any table by using this code
public static function table(Table $table): Table
{
return $table
->columns([
AccountColumn::make('account.id'),
]);
}
just pass the account id to the column
#Use Filament Impersonate
you can use the impersonate to impersonate the user by install it first
composer require stechstudio/filament-impersonate
now on your main panel provider add ->useImpersonate() , ->impersonateRedirect('/app') to the plugin
->plugin(\TomatoPHP\FilamentAccounts\FilamentAccountsPlugin::make()
...
->useImpersonate()
->impersonateRedirect('/app')
)
now clear your config
php artisan config:cache
for more information check the Filament Impersonate
#Testing
if you like to run PEST testing just use this command
composer test
#Code Style
if you like to fix the code style just use this command
composer format
#PHPStan
if you like to check the code by PHPStan just use this command
composer analyse
#Other Filament Packages
Checkout our Awesome TomatoPHP
The author
Full accounts manager with API/Notifications/Contacts to manage your contacts and accounts
From the same author
Tenancy Multi-database
Tenancy multi-database integration for FilamentPHP
Author:
Fady Mondy
Menu Generator
Menu view generator using view component
Author:
Fady Mondy
Translations Manager
Manage your translation with DB and cache, you can scan an collect translation strings like `trans()` and `__()`, and translate them using UI
Author:
Fady Mondy
Meta Manager
Convert any model on your app to pluggable model using Meta and get ready to use relation manager on FilamentPHP panel
Author:
Fady Mondy
Featured Plugins
A selection of plugins curated by the Filament team
Custom Dashboards
Let your users build and share their own dashboards with a drag-and-drop interface. Define your data sources in PHP and let them do the rest.
Filament
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
Custom Fields
Eliminate custom field migrations forever. Let your users create and manage form fields directly in Filament admin panels with 20+ built-in field types, validation, and zero database changes.
Relaticle