Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Filament Import Wizard

Filament Import Wizard Laravel Package

waad/filament-import-wizard

Queue-powered 4-step CSV and Excel import wizard for Filament with smart column mapping, relationship linking, Spatie Translatable and locale merge support, dynamic schema validation, upsert, and live progress tracking for 100K+ row imports.

View on GitHub
Deep Wiki
Context7

A powerful, queue-powered CSV and Excel import wizard for Filament with smart column mapping, relationship linking, and background processing for 100K+ rows.

Frequently asked questions about Filament Import Wizard
How do I install waad/filament-import-wizard?
Install it with Composer by running composer require waad/filament-import-wizard, then publish the config with php artisan vendor:publish --tag=filament-import-wizard-config. The package supports Laravel 10+, PHP 8.2+, and Filament 4.x/5.x. You can then use it as a Filament resource action or as a standalone Livewire component.
Can Filament Import Wizard handle 100K+ row CSV or Excel imports?
Yes. It uses chunked queue jobs, with a default batch size of 1,000 rows per job, so large datasets do not block the UI. For production imports of 100K+ rows you should run a queue worker with Redis, database, or another Laravel queue driver. Sync mode exists but is not recommended for large files.
How does automatic column mapping work in Filament Import Wizard?
The wizard uses a reverse mapping UI that lists model fields first and lets you choose CSV columns from dropdowns. Smart auto-mapping matches headers using snake_case normalization, so Title maps to title and CategoryId maps to category_id. You can manually override any mapping during the review step.
How do I import BelongsTo relationships with this package?
The wizard supports relationship linking for BelongsTo fields, including finding or creating related records. It handles auto-increment IDs intelligently and can perform locale-aware relation lookups when translated columns are used. Simple relationships are auto-detected, while custom foreign or primary keys may need manual mapping overrides.
Does it support Spatie Translatable and multi-language columns?
Yes. It detects models using the HasTranslations trait and JSON columns, and supports whereJsonContains() for translated lookups across MySQL, PostgreSQL, and SQLite. The locale merge feature combines columns like title_en and title_ar into one JSON translatable field. You can toggle merge behavior during mapping.
What queue configuration is needed for background imports?
You need a running Laravel queue worker, such as Horizon or Supervisor, using Redis, database, or another supported queue driver. The package lets you configure the queue connection and queue name globally and per import action. Chunk size is also configurable to balance memory use and database load.
Can I use Filament Import Wizard outside a Filament panel?
Yes. The package includes a standalone mode that lets you use it as a Livewire component outside Filament panels. It still relies on Filament UI components and Livewire, so those dependencies must be installed. This makes it possible to embed imports in custom admin screens.
How does validation and error handling work during import?
The package auto-generates validation rules from database column types, covering required, numeric, boolean, date, email, and unique constraints. It shows inline error previews and lets users download errors before running the import. You can add model-specific rules through methods such as getImportRules().
Does the importer fire Eloquent events and observers?
Yes. Inserts are performed with individual save() calls, so model boot methods, observers, timestamps, and lifecycle hooks fire normally. This helps preserve existing application behavior during imports. Upsert mode can also update existing records using configurable keys.
Is Filament Import Wizard multi-tenancy and Filament Teams compatible?
Yes. It includes built-in team and tenant scoping that carries across queue boundaries, which aligns with Filament Teams and similar multi-tenant setups. You should still verify that your tenant resolution logic matches the package configuration. Tenant-aware imports can run in the background without losing scope context.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
xiloryx/log-collector
a21ns1g4ts/filament-stripe
la-php/laravel-admin
artisan-build/community-prompts
vleroy/smart
ayles-software/laravel-australian-public-holidays
cboxdk/laravel-id-spatie
cboxdk/laravel-id-billing
cboxdk/laravel-id-billing-bridge
simple-as-fuck/php-performance-log
hsluv/hsluv
seampact/codegen
seampact/hooks
seampact/ir
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table
siberfx/flysystem-wasabi
hollyit/token-replace
ippanelcom/laravel-sdk