rad-themes/alp-crm
A Laravel CRM package for managing contacts, leads, and customer relationships, with ready-to-use modules and theme-friendly views to help you add CRM features to your app quickly.
The README is now the canonical entry point — it doubles as the Statamic Marketplace listing copy, so it is written to be read end-to-end before you run composer require. Read it in the order it is laid out: first-run setup → scheduler and queue configuration → portal linking → API and webhook examples → integrations → upgrades → troubleshooting. Skipping ahead to the API section is the most common way to end up with a half-configured install.
Minimal path:
First real use case: push a single record through the entire loop in staging — create it in the Statamic CP, link it to a portal user, observe the outbound webhook arrive at a request bin, and confirm the queued job drained. That one exercise validates setup, scheduler, queue, portal linking, and webhook delivery in a single pass, and it is far cheaper than discovering a broken queue worker in production.
Note on v2.1.1: this is a documentation-only release with no application behavior changes. If you are already on a 2.x version, nothing in your runtime changes; the only delta is that the operational guidance is now substantially better and worth re-reading if you installed from an older README.
Treat the scheduler/queue section as production ops documentation, not setup trivia. Commit the schedule definition to source control, run workers under Supervisor or Horizon, and add a monitor on queue depth. Because the README documents both together, the addon likely has recurring work and deferred work — confirm both are running independently rather than assuming one implies the other.
Portal linking is a relationship, so model it explicitly. Mirror the README's linking flow rather than improvising: handle both the "link an existing account" and "invite/create" paths if the guide documents them, and decide up front what happens when a portal user is deleted or unlinked. Store the linkage on your user model side so you can query it without hitting the addon's internals.
Consume the API and webhooks as you would any third party. Version-pin your consumers, verify webhook signatures, use idempotency keys on inbound handlers, and never do real work inside the HTTP request — enqueue it. The README's API and webhook examples are copy-paste starting points; harden them before they reach production.
Onboard integrations one at a time. Each integration adds credentials and a failure mode. Wire one, verify it end-to-end with real traffic, then add the next. Keep credentials in .env and confirm the published config reads from env rather than hardcoding.
Use the upgrades section as a pre-flight checklist. Even for a docs-only release like this one, read it before composer update. Pin the addon version in composer.json so a routine update cannot silently pull a minor with behavior changes.
php artisan schedule:list, and confirm your scheduled tasks actually appear.sync queue driver hides failures. Local development on sync will make a misconfigured job look fine; production won't. Test with a real worker and a real driver before you trust the pipeline.vendor/ — you'll lose it on the next update and you have no diff to help you reapply it.How can I help you explore Laravel packages today?