Real lessons from adding an AI agent to a Laravel CRM

Relaticle, an CRM, added an in-app AI agent in version 3.3. The agent can read CRM data and propose actions such as creating companies, updating deals, and attaching notes. It does not change data on its own; every write action needs human approval first.

The stack uses for the agent layer, Reverb for live streaming, Filament v5 and Livewire v4 for the interface, and Horizon for . The hardest part was making live chat responses survive normal product problems. The chat runs as a queued job and streams through Reverb, but users may reload the page, lose the websocket connection, or trigger a Livewire re-render.

Each stream needs its own identity, and the app must be able to resume a half-finished answer after reconnecting. In , route caching also caused broadcast channel to stop registering silently, which took time to find.

Key points

  • Relaticle v3.3 added an AI agent inside its CRM.
  • The agent can propose creating companies, updating deals, and adding notes.
  • The agent does not write directly; humans approve every write action first.
  • Live streaming had to handle page reloads, dropped websocket connections, and UI re-renders.
  • A route cache issue silently broke broadcast channel .
Read original