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 Automation Bridge Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

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:

  • Package identity churn. The rename lands mid-release-history, so documentation, StackOverflow answers, and any internal notes will drift. Treat the namespace/config key as unstable until a v2.
  • Filament v5 churn. Multiple commits repair v5 deprecations (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.
  • Migration timestamp fix. "Use fixed migration timestamps" plus "make event column nullable" is a repair of a real publishing/ordering defect. It reduces collision risk going forward but does not retroactively fix environments that already published earlier stubs.
  • CI advisory suppression. "Disable composer security advisory blocking for CI builds" is a legitimate velocity tradeoff but means dependency CVEs won't block merges. For a package that handles outbound HTTP and stores secrets, this should be time-boxed, not permanent.
  • Security posture is present but unverified by us. HMAC signing and SSRF prevention exist in SecurityService; we cannot confirm coverage from release notes alone.

Key questions:

  1. What are the concrete breaking deltas in the rename (config key, table prefix, facade alias, service provider FQCN), and is there a shim or migration guide?
  2. Does "fixed migration timestamps" mean new installs and already-published installs converge, or do early adopters need manual migration edits?
  3. Where are destination secrets stored — config, encrypted DB column, or env — and are they redacted in delivery logs and the UI?
  4. What are the SSRF allow/deny semantics (private IP ranges, redirects, DNS rebinding), and is it bypassable per-destination?
  5. Which queue connection and retry/backoff policy are assumed, and what happens when the queue worker is down?
  6. Is there multi-tenant or per-team scoping on triggers and delivery logs, or is this single-tenant only?

Integration Approach

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:

  1. Remove any prior filament-webhook-bridge composer entry and its published config/migrations.
  2. Require the new package, run the install command, and publish config + migration stubs explicitly (do not rely on auto-discovery alone).
  3. Update .env for the destination auth mode actually selected (Basic/Header/Bearer/API key).
  4. Recreate any existing triggers as new records — do not assume data portability across the rename.

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:

  1. Spike on a staging panel with the queue configured (not sync driver) — delivery, sync, and scheduled triggers all depend on it.
  2. Install → publish → migrate → seed → install command.
  3. Configure one destination end-to-end with Test Connection before defining triggers.
  4. Add triggers incrementally by type (Manual → ModelEvent → StatusChanged → Schedule → DateCondition), validating each in the delivery log.
  5. Enable historical sync only after payload shaping and conditions are stable, since backfill volume is the main blast-radius risk.

Operational Impact

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:

  • Destination 5xx or timeout → retries per queue policy; delivery log should surface this, but alerting is not built in (the health widget is passive).
  • Queue worker down → silent backlog; no dead-letter UI beyond the delivery log.
  • Auth mode mismatch after a destination change → 401s that look like delivery failures; the dynamic placeholder/helper on secrets mitigates this but does not prevent it.
  • Migration timestamp/ordering conflicts on already-published installs.
  • SSRF false positives blocking legitimate internal destinations — needs a documented bypass path.
  • CI advisory suppression allowing a vulnerable transitive dependency in a package that performs outbound HTTP and stores credentials. Set a review date for that suppression.

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.

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.
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log