ashrafic/filament-automation-bridge
A Laravel/Filament bridge for connecting automation workflows to your admin panel. Trigger webhooks, manage integrations, and automate tasks directly from Filament resources with a simple, configurable setup.
Architecture fit: The package is a Filament plugin (type: filament-plugin, Spatie package-tools migration stubs) that adds a webhook/automation layer to Laravel apps. Internally it is organized along clean boundaries: a ServiceProvider registering formatters, a WebhookBridge facade, a DeliveryService orchestrator backed by queue jobs, a TriggerManager with an extensible trigger-type contract (Schedule, Manual, Event, ModelEvent, StatusChanged, DateCondition), a ConditionEvaluator with pluggable operators, and PayloadFormatter/ConditionOperator contracts. That contract-driven core is the strongest architectural signal — it suggests the trigger and formatter surface can be extended without forking. The Filament side (resource, standalone template page, delivery log page, health widget, custom form components) is conventional and low-risk.
Integration feasibility: Reasonable for an existing Filament app. Migration stubs follow the Spatie publishing convention, routes are namespaced under automation-bridge, and n8n/Make.com destinations are configured through config with selectable auth modes (Basic, Header, Bearer, API key). An install artisan command plus cache, prune, sync, and test commands cover the operational lifecycle. Historical sync with batch progress tracking is a meaningful addition for retrofit scenarios. The primary friction point is that this is a renamed package (filament-webhook-bridge → filament-automation-bridge): composer name, service provider namespace, config key, route prefix, and likely table names may all have moved, so any pilot on the old name is effectively a greenfield install.
Technical risk:
Tables\Actions\Action → Filament\Actions\Action, badgeColumn removal, bulkActions → toolbarActions, ToggleColumn/IconColumn iterations). This is healthy maintenance, but it also signals the Filament surface was not v5-clean at first publish and may continue to move.SecurityService; we cannot confirm coverage from release notes alone.Key questions:
Stack fit: Laravel + Filament v4/v5, PHP per the package's composer constraint, with a working queue (database or Redis) required for DeliveryService, historical sync, and scheduled triggers. Fits cleanly into an existing Filament admin panel as a plugin; the "Settings card" for n8n auth, dedicated template page, and delivery log page all slot into the standard panel navigation without custom layout work.
Migration path: Because of the rename, sequence as a fresh install rather than an upgrade:
filament-webhook-bridge composer entry and its published config/migrations.install command, and publish config + migration stubs explicitly (do not rely on auto-discovery alone)..env for the destination auth mode actually selected (Basic/Header/Bearer/API key).If a pilot already exists on the old name, budget a half-day for the rename plus a day for re-establishing triggers and validating delivery logs.
Compatibility: The v5 fixes are the compatibility story; verify the app's Filament version is v4 or v5 before install, since the deprecated API surface changed inside this release. Laravel and PHP constraints should be read from composer.json directly rather than inferred. Migration .php.stub publishing requires the Spatie package-tools pattern to be honored — mixing manual migration copies with stub publishing is the fastest way to reproduce the fixed-timestamp bug.
Sequencing:
install command.Test Connection before defining triggers.Maintenance: The release history shows a very high commit cadence with substantial refactoring (translations split into per-section flat-dot files, Filament action API churn, template feature added then partly removed — "remove built-in templates, only user-created templates remain"). That velocity is good for the package but means upgrading will require reading release notes each time. Pin the version and schedule upgrades deliberately rather than tracking main.
Support: No prior assessment exists, so there is no internal track record. The rename reduces the chance of finding external answers under the old name. Translation support being added mid-release suggests the author is investing in i18n and UX polish, which is a positive support signal. Plan on self-support via reading source; the test suite (feature tests for resource CRUD, unit tests for services, enums, conditions, Spatie/security integration) is the primary safety net.
Scaling: Queue-backed delivery with per-destination rate limiting and batched historical sync is the right shape. Two scaling pressure points: (a) delivery log table growth — the prune command exists but retention is a policy you must set, and (b) one job per delivery means queue throughput governs webhook fan-out. If event subscriptions are wildcard-based (the WebhookEventSubscriber with wildcard Eloquent listener), high-write models will amplify job volume quickly; verify the subscriber filters before pointing it at a busy model.
Failure modes:
Ramp-up: Low for anyone already fluent in Laravel + Filament — the plugin's surface follows the conventions of that ecosystem, and the install command plus Test Connection action lower the first-run cost. Non-Filament engineers will need roughly a day to orient on the trigger/condition/payload model. Budget roughly: 0.5 day install and config, 1 day for first destination and trigger end-to-end, 2–3 days for condition logic and payload shaping on real models, plus queue and retention configuration. The extensibility contracts (TriggerManager, PayloadFormatter, ConditionOperator) are the differentiator worth learning early, since they determine whether custom trigger types are a small class or a fork.
How can I help you explore Laravel packages today?