apility/filament-intercom
Adds the Intercom messenger to Filament admin panels, letting teams chat with users and handle support without leaving the dashboard. Simple setup, lightweight integration for Laravel and Filament apps.
This release is a compatibility milestone: v2.0.0 targets Filament 4. If you are still on Filament 3, stay on the package's 1.x line — do not upgrade this package independently of Filament.
composer show filament/filament and check for v4.x. This determines which package major you install.composer require <vendor>/<package>:^2.0 # Filament 4
composer require <vendor>/<package>:^1.0 # Filament 3
app/Providers/Filament/AdminPanelProvider.php:
public function panel(Panel $panel): Panel
{
return $panel
->plugin(YourPackagePlugin::make());
}
php artisan filament:assets (or the package's own install command) rather than copying published assets from a v1 install.Look first at the package's README "Requirements" table and its CHANGELOG for the v1 → v2 diff, then at the plugin class itself (src/*Plugin.php) to see what it registers — that tells you what it touches in your panel.
Pin the version matrix in CI. The most important pattern for a package whose releases are tied to a host framework major is a test matrix that pairs package v2 with Filament 4 and package v1 with Filament 3. Do the same in your app's composer.json constraints so a composer update cannot silently cross the boundary:
"require": {
"filament/filament": "^4.0",
"<vendor>/<package>": "^2.0"
}
Register the plugin per panel, not globally. Filament plugins are panel-scoped. If you run an AdminPanelProvider and a separate AppPanelProvider, decide deliberately which one gets the plugin — most plugins only make sense in one.
Compose with Filament 4 schemas. In Filament 4 the form/schema layer lives under Filament\Schemas. Typical day-to-day usage looks like:
use Filament\Schemas\Schema;
public static function configure(Schema $schema): Schema
{
return $schema->components([
YourPackageField::make('settings')
->required(),
]);
}
Reach for the package's field/column classes as schema components rather than wrapping them in custom Blade where possible — you inherit validation, reactivity, and dark-mode styling for free.
Table and action integration. If the package ships table columns or actions, attach them in table() / configure() and keep the package's fluent configuration chain last, after your own modifiers, so package-level defaults do not clobber your intent.
Configuration over forking. Publish the config file (php artisan vendor:publish --tag=<package>-config) and keep every override there. When v3 eventually lands, your diff is a config file, not a patched vendor tree.
Feature-flag the rollout. For a major-version bump, ship behind a branch deploy to staging, run your panel's smoke tests, and only then merge. Filament 4's schema refactor is broad enough that "it installs" is not evidence it works.
Filament\Forms to Filament\Schemas, Form → Schema, and ->form() → ->schema() is the usual culprit. Grep your app/ for the old namespaces before assuming your overrides still load.php artisan filament:assets, php artisan view:clear, php artisan config:clear, and rebuild any custom theme CSS (npm run build). Half of "the upgrade broke my panel" reports are stale compiled assets.->getComponents() (or dd($schema) inside configure()) to see whether the package component actually registered on the panel — a plugin added to the wrong provider is a common silent failure.register()/boot() methods, published config keys, view namespace (<package>::), and any registered macros. A config flag is cheaper than a fork.dev-main.How can I help you explore Laravel packages today?