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.
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.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.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.{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.Adopt when:
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.1.3.0, backwards-compatible signature widening on addTagToContact).Look elsewhere / build when:
1.x tooling — you'd be on the wrong line; use 2.1.0 instead.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):
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.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.POST /contact/sync with fieldValues[] plus system fields — eliminates the previous N+1 pattern.{user.*} / {ctx.*} templates are now skipped, matching existing system-field behaviour (prevents unintended blanking in ActiveCampaign; will also stop any intentional field-clearing).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.How can I help you explore Laravel packages today?