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 Activecampaign Laravel Package

xavicabot/filament-activecampaign

Connect ActiveCampaign to your Filament admin panel. Manage contacts, lists, tags, and automations directly from Laravel—no separate dashboard required. Simple setup, native Filament UI, and a smooth workflow for your team.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. xavicabot/filament-activecampaign is a thin integration layer between Filament admin panels and ActiveCampaign automations. It is not an architectural driver — it sits at the edge of the admin surface and emits outbound HTTP to ActiveCampaign's REST API. The v1.4.0 release does not change that shape; it deepens the capabilities of the existing layer (queue dispatch, batched field sync, contact tag CRUD) rather than introducing a new dependency class or service boundary. Teams already running Filament v3 admin panels alongside ActiveCampaign as their marketing automation platform are the intended audience, and for that profile the fit is good.

Integration feasibility. Low friction. The release is explicitly non-breaking versus v1.3.0, the public surface only widens (addTagToContact now accepts string|array; new *Async methods; new client/service methods), and the config additions (activecampaign.async, async_tries, async_backoff) are additive with defaults. A team can adopt v1.4.0 as a drop-in patch, then opt into the new capabilities incrementally. The only externally observable behaviour change is that custom fields resolving to an empty string from {user.*} / {ctx.*} templates are now omitted from the payload instead of sent blank — this is a correctness improvement (it stops the integration from silently clearing values already stored in ActiveCampaign) but it is a behaviour change that can shift what downstream automations observe.

Technical risk. Moderate-low, concentrated in three areas rather than in the upgrade itself:

  1. Version-line fragmentation. The project now maintains two parallel tracks — 1.x for Filament ^3.0 and 2.x for Filament ^4.0 | ^5.0 — with v1.4.0 being a backport of v2.1.0. Feature parity is claimed today, but backport discipline decays. Any future feature will land on 2.x first, and 1.x will lag by an unknown interval. This is a real roadmap risk if the team intends to stay on Filament 3 for a long horizon.
  2. Async semantics under queue load. trigger/triggerWithEmail now honour an async flag and may silently route through a queue. A caller that previously relied on synchronous completion (e.g. checking ActiveCampaign state immediately after a form submit) will behave differently once the flag is flipped. The job also re-resolves the user inside handle() and exits gracefully if the user is gone — safe, but it means "dispatched" no longer implies "applied."
  3. Batched sync payload. Collapsing N+1 calls into a single POST /contact/sync reduces latency and rate-limit exposure, but it also widens the blast radius of a malformed field value: one bad entry can fail the whole sync instead of just its own call.

Key questions for the maintainer/owning team.

  • What is the published support window for the 1.x line, and will future 2.x features continue to be backported indefinitely or is 1.x now in maintenance-only mode?
  • When activecampaign.async is enabled, what is the recommended retry/backoff configuration relative to ActiveCampaign's documented API rate limits?
  • For the empty-custom-field skip: is there an opt-out for teams that depend on blanking a field as a deliberate signal to their automations?
  • Are there plans to surface queue failures (e.g. a Filament notification or failed-job hook), or does observability remain the application's responsibility?
  • Is the tag API (listContactTags / detachContactTag) idempotent from the package's perspective, or does the caller need to guard against duplicate associations or 404s?

Integration Approach

Stack fit. Requires PHP with Laravel and Filament ^3.0. If the platform is on Filament 3, this is the correct branch — installing or upgrading to the 2.x line instead will fail Composer resolution. Confirm the Filament major version before anything else, because it is the single axis that determines which release line applies and there is no overlap between them.

Migration path. Effectively a patch upgrade from v1.3.0: composer require xavicabot/filament-activecampaign:^1.4 and re-run the suite. There are no breaking changes, no published migration steps, no config file rewrite. The recommended path is deliberately staged:

  1. Upgrade to v1.4.0 with activecampaign.async left at its default (off) and no code changes. This isolates the empty-custom-field behaviour change as the only variable and lets the team validate against real automation payloads.
  2. Adopt the batched sync implicitly — it is not opt-in, so it lands in step 1. Verify in a staging ActiveCampaign account that multi-field automations still produce the expected contact state, and confirm the request count drop (the release cites ~5 requests → 2 for a 4-custom + 3-system-field automation) against your own field templates.
  3. Introduce tag management (addTagToContact with arrays, removeTagFromContact, getContactTags) as a separate change, since it is purely additive and low-risk.
  4. Enable activecampaign.async last, once a queue worker, retry/backoff values, and a failed-job alerting path are in place.

Compatibility. No breaking changes; the widened addTagToContact signature is backwards compatible. The one behavioural delta — empty custom fields being skipped rather than sent blank — should be checked against any automation that treats an empty string as a meaningful state. Teams on Filament 4 or 5 must not use this release at all; they should be on v2.1.0, which carries the same feature set.

Sequencing. Do the version-line decision first (Filament 3 → 1.x, Filament 4/5 → 2.x), then the v1.4.0 patch, then batched-sync validation in staging, then tags, then async. If a Filament 4/5 upgrade is anywhere on the roadmap, flag now that it implies a package major-line migration, not just a package bump — and that the two lines will diverge over time.

Operational Impact

Maintenance. The package is a small, focused adapter with a modest surface area, and v1.4.0 ships with 75 tests / 191 assertions green on Filament 3 — a credible signal for a plugin of this size. The maintenance burden on the consuming team is low but non-zero: config additions must be published/reconciled if the config file is vendored, and the dual-line support model means the team should track which line they are on and why. Treat Filament major upgrades as the trigger for a package-line review.

Support. No first-party commercial support; the project's own release notes are the primary documentation, and the 2.1.0 release is referenced as the canonical description of the features now backported. Practical implication: the team's own engineers are the support tier. Budget a named owner for the ActiveCampaign integration and keep an internal note mapping package version → Filament version → enabled config flags.

Scaling. Two concrete improvements here. Batching field sync cuts outbound request volume substantially per automation execution, which directly improves headroom against ActiveCampaign's API rate limits — the release's ~5→2 request example implies roughly a 60% reduction for typical multi-field automations, and the effect compounds with automation volume. Queue support decouples admin-panel response time from ActiveCampaign latency, which is the right move for any user-facing form submission. The unresolved scaling question is queue throughput and worker capacity: once async is on, ActiveCampaign API latency becomes a queue-drain problem, and async_tries / async_backoff need to be tuned against both ActiveCampaign's limits and the team's tolerance for delayed automation enrollment.

Failure modes. Enumerate and instrument these:

  • User deleted between dispatch and handle — the job exits gracefully by design. Not an error, but it means enrolment silently does not happen; if that matters, log it.
  • Queue backlog — automations fire late. Set an expectation for acceptable lag and alert on queue depth.
  • Exhausted retries — after async_tries, the job lands in failed-jobs. Without a monitoring hook this is invisible; wire it into existing alerting.
  • Malformed field value in batched sync — the single POST /contact/sync fails as a unit, so one bad field blocks all field updates for that execution. This is the main regression risk introduced by batching and warrants a staging test with real templates.
  • Empty-field skip — deliberate, but if an automation keyed off a blanked field, it will stop firing. Audit automations that branch on empty values before upgrading.
  • Tag operations — removeTagFromContact and detachContactTag involve association IDs; expect 404-class responses when a tag or association is already gone and ensure the calling code tolerates them.

Ramp-up. Very low for a Laravel/Filament developer — the API is idiomatic, the new methods are self-describing, and no new infrastructure is required unless async is enabled. Realistic estimate: under a day for the patch upgrade and staging validation; an additional half-day to a day for queue configuration, backoff tuning, and failed-job alerting if async is adopted. The larger cognitive cost is not the package but the version-line policy: make sure the team knows they are on the Filament 3 maintenance track and what that implies for future feature availability.

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