amjadiqbal/filament-crm-sync
Filament CRM Sync connects your Filament admin panels with external CRM systems, helping keep contacts, companies, and deals synchronized. Configure field mappings and run syncs from the dashboard to reduce manual data entry and maintain consistent records across tools.
Retry-After backoff, and an in-panel sync log with retry. That is a concrete alternative to a multi-sprint custom build, so the decision becomes "adopt + validate" versus "build bespoke," not "integrate vs. don't."SyncsToCrm or centrally via CrmSync::map() in a service provider. That is a deliberate architectural stance: schema/mapping ownership stays with engineering, changes go through review and deploy. Decide now whether that is acceptable or whether ops needs self-serve mapping (it doesn't provide that).Consider it when most of these hold:
Look elsewhere — or budget for a real spike first — when:
HTTP::fake; that is a reasonable engineering bar but not production proof.For executives (one paragraph): There's a free, open-source Laravel/Filament package that implements the HubSpot lead sync we've been scoping — mapping, dedupe, associations, queued jobs that respect HubSpot's rate limits, and an in-panel sync status, activity view, and retry log. It could remove a meaningful chunk of custom integration work from the roadmap at zero licence cost. The caveats are material and should be stated up front: it is maintained by an independent developer with no vendor backing, and it has not yet been run against a real HubSpot account — the release is validated by unit tests, a mock API, and browser checks on two stack combinations. My recommendation is a timeboxed pilot against a real HubSpot sandbox portal with a pinned version, not a broad rollout.
For engineering: the architecture is the right shape — mapping declared on the model or in a service provider, per-record HubSpot ID storage for idempotency, upsert-by-email for contacts and property-matching for companies/deals, unchanged-record skipping, and associations that sync parents first. Queued jobs are rate-limited and honour Retry-After on 429. Quality signals are reasonable for v1.0.0: Pint, PHPStan level 5, 54 Pest tests, 59 browser checks on each of two stack combinations, and a verified clean Packagist install. Gaps to plan around: no live-HubSpot validation, a driver contract with only one implementation, and the usual single-maintainer abandonment and CVE-response risk. Mitigations: pin the version, keep all mapping in one service provider so the swap surface is a single file, and add integration tests of our own against a sandbox portal before enabling sync-on-save.
How can I help you explore Laravel packages today?