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

Product Decisions This Supports

  • Build vs. buy for the ActiveCampaign integration. This package is a thin Filament-facing wrapper over the ActiveCampaign v3 API (automation triggers, contact sync, tag management). It is a credible "buy/adopt" answer for the common case of "marketers/admins need to fire an ActiveCampaign automation from our admin panel" and avoids maintaining bespoke HTTP client code, retry logic, and field-mapping glue.
  • Stack upgrade sequencing (the most important decision this release informs). The package now publishes two actively maintained lines with feature parity: 1.x → Filament ^3.0, 2.x → Filament ^4.0 | ^5.0. That means "we must upgrade Filament to get async, batching, or tag management" is no longer a valid forcing function. Filament 4/5 migration can be scheduled on its own merits (other plugins, breaking changes, team capacity) rather than being pulled forward by this dependency.
  • Roadmap for integrations/automation features. Three new capabilities are now available on the current stack without engineering work: async automation triggering (queue-backed, configurable retries/backoff), batched contact field sync, and programmatic tag add/remove/lookup. This unlocks admin-initiated campaign enrollment, lifecycle/segmentation workflows, and tag-driven journeys that previously required custom code.
  • Reliability and third-party rate-limit posture. Batched field sync collapses an automation execution from ~5 outbound requests to 2 (one POST /contact/sync carrying all fieldValues[] and system fields). For any workflow touching many contacts, this materially reduces exposure to ActiveCampaign API rate limits and partial-failure states — a support-ticket and data-integrity reduction, not just a perf win.
  • Operational readiness decision. The new activecampaign.async flag changes the failure model: with async on, automation triggers no longer fail in the admin request path; they land on a queue and need a worker, monitoring, and a dead-letter/retry story. Enabling it is a deliberate ops decision (queue capacity, async_tries, async_backoff tuning), not a free upgrade — the job gracefully no-ops if the user was deleted, which is good hygiene but means silent drops are possible and should be observable.
  • Data-semantics review. The one observable behaviour change: custom fields templated from {user.*} / {ctx.*} that resolve to an empty string are now skipped rather than sent. This prevents unintended blanking of ActiveCampaign values, but if any team relied on clearing a field via an empty template, that workflow silently stops working. Worth a one-line audit of existing field templates before rollout.

When to Consider This Package

Adopt when:

  • You are on Filament 3 and want this capability on 1.x (this release), or on Filament 4/5 and want 2.x — the two lines are kept in sync, so the choice is purely your Filament version, not a feature trade-off.
  • ActiveCampaign is your marketing-automation system of record and the required interaction is narrow: trigger automations (with or without email), sync contact + custom fields, and manage contact tags.
  • You want the integration surfaced in the admin UI (Filament resources/actions) rather than as a background-only service.
  • Your team is small enough that a focused community package beats owning an API client, and you have (or will have) a working Laravel queue if you enable async.
  • You can pin the version and absorb occasional upstream maintenance cadence — the release is clean (75 tests / 191 assertions, no breaking changes vs. 1.3.0, backwards-compatible signature widening on addTagToContact).

Look elsewhere / build when:

  • You need broad ActiveCampaign API coverage — lists, deals, e-commerce, custom objects, webhooks, reporting. This is a curated subset, not an SDK.
  • You are on Filament 4/5 and cannot move off 1.x tooling — you'd be on the wrong line; use 2.1.0 instead.
  • You require a vendor SLA, security review artifacts, or named support. Single-maintainer community packages need an internal bus-factor and upgrade-ownership plan.
  • You need multi-tenant isolation (per-tenant API credentials with strict scoping) — verify the config/credential story before assuming it fits.
  • Your architecture is API-first/headless and there is no Filament admin surface to attach to; at that point you're paying for a UI layer you won't use.
  • You need guaranteed exactly-once automation triggering or durable outbox semantics — the async job is a reliability improvement, not a transactional guarantee.

How to Pitch It (Stakeholders)

For executives (one paragraph): This release lets us keep our current admin stack and still pick up the integration capabilities we'd otherwise have had to fund as custom work — queued automation triggers so slow or failing third-party calls never block an admin screen, roughly a 60% reduction in outbound ActiveCampaign API calls per automation (about 5 requests down to 2), and built-in tag management for segmentation. It ships with no breaking changes against the version we'd be running, is covered by an automated test suite, and it removes a hidden pressure to rush a framework upgrade: the same features are now available on both our current and next platform versions. Effort to adopt is a version bump plus a deliberate decision on whether to turn on the queue.

For engineering (summary):

  • Scope of change: backport of 2.1.0 features to the Filament 3 line; v1.3.0 → v1.4.0 has no breaking changes. addTagToContact() widened to string|array — backwards compatible.
  • New surface: triggerAsync / triggerWithEmailAsync; trigger / triggerWithEmail now respect activecampaign.async; new TriggerActiveCampaignAutomationJob (serialises primitives only, resolves the user in handle(), exits gracefully on missing user); async_tries / async_backoff config. Client additions: listContactTags, detachContactTag. Service additions: getContactByEmail, getContactTags, removeTagFromContact, addTagToContact.
  • Perf: field sync batched into one POST /contact/sync with fieldValues[] plus system fields — eliminates the previous N+1 pattern.
  • Behaviour change to verify: empty-string custom fields from {user.*} / {ctx.*} templates are now skipped, matching existing system-field behaviour (prevents unintended blanking in ActiveCampaign; will also stop any intentional field-clearing).
  • Ask: pin the minor version, confirm queue worker + failure monitoring if async is enabled, audit field templates for reliance on empty-string clearing, and note the branch-to-Filament-version mapping so future upgrades pick 2.x rather than drifting on 1.x.
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