Hot take after a month building with agents: the admin panel — the CRUD screens we all build and all hate — might be the most over-engineered thing in your app.
I had the usual stack: customer table, bookings table, forms to create/edit/cancel, a dashboard nobody opened. Weeks of work for screens that exist so a human can poke the database.
Then I wired an AI agent to the same data and watched it do, in a sentence, what my UI did in twelve clicks: "move Tuesday's 3pm to Thursday and tell the client." No form. No modal. No "are you sure?" I'd spent an afternoon styling.
So I deleted the admin panel. The agent is the UI now.
Here's the part the demos skip: the agent deciding "move the booking" is the easy 10%. The hard 90% is everything that has to be true for it to safely act —
- the booking has to persist (not live in a chat context that evaporates),
- two agents can't double-book the same slot (real constraints, not vibes),
- it now has the keys to message every customer you have (that should scare you),
- one hallucinated loop and it's WhatsApp-blasted 400 people — and there's no undo on a sent message.
I kept "just adding a quick backend." Three weekends later the backend was the project and the agent was a thin wrapper.
The real lesson: moving the UI to an agent doesn't delete the work — it moves it down a layer. You trade hand-built screens for a backend that's safe for something non-deterministic to drive: persisted records, clash detection, typed permissions, approval-gated side-effects, audit logs.
I ended up not building most of that myself — I used FavCRM's MCP server, because it treats those guarantees as the product (tools annotated read-only/destructive, sends approval-gated, every action logged). Not a pitch — just the first one I found that didn't treat the backend as an afterthought. The point holds whatever you use:
# the agent, from inside Claude/Cursor — no admin panel involved
move_booking(id: "bk_123", to: "2026-06-12T15:00") # typed, validated, clash-checked
send_message(to: customer, body: draft) # ← pauses for my approval
The "are you sure?" dialog I deleted from the UI didn't vanish. It moved into the tool contract, where it belongs.
I don't think this is a CRM thing. Every app with a CRUD admin panel is about to have this conversation: keep building screens for humans to poke the database, or build a backend an agent can drive and let the interface be language.
So, genuinely asking: have you deleted any admin UI yet, or are you still building the forms? And if you've let an agent write to real data — what did you put in place before you trusted it to hit "send"?
Top comments (0)