The problem
Businesses adopting AI agents end up with silos: a lead-scoring bot with its own database, a support bot with another, a sales assistant with a third. Nothing shares state, nobody can answer "which agent touched this customer and why," and swapping a vendor means losing history. AI agents are only trustworthy when their actions are recorded against shared, exportable data.
What we built
- Two runnable agents, not a slideshow: the demo ships with a live Lead Qualifier — score unscored leads with stated reasons — and a Follow-up Nudger, which flags contacts gone quiet 14+ days and deals stuck in the same stage 21+ days, then drafts the follow-up email for you. Both run through the same audited API path a production agent would.
- One data layer, many agents: contacts, deals, and interactions in a single API that every agent reads and writes through — no per-agent silos to reconcile later.
- Per-agent audit trail: every write made through an agent API key is logged with the agent's identity attached. When an AI updates a deal, the record shows which agent, what action, and when.
- Agents that don't spam: the Nudger only re-flags a contact or deal if nothing has changed since the last flag — a real design constraint for any agent that runs on a schedule, not just a demo nicety.
- True multi-tenancy: one deployment serves many businesses, with strict tenant isolation verified by automated tests — client A can never see client B's pipeline.
- Human-owned data: CSV export of contacts, deals, and interactions is reserved for a logged-in human — an agent's API key can't exfiltrate the book of business. Clients can always take their data and leave.
How it was shipped
Designed schema-first as the foundation for a six-agent suite, so future agents (sales, voice, support, workflow) are thin modules over this API rather than new applications. Verified end-to-end before deploy: authentication rejection, session and API-key auth paths, cross-tenant isolation, agent-attributed audit logging, export permissions, and — for the Nudger — that idempotency actually holds on a rerun, all passing against a real Postgres-compatible engine.
Try it
Open the live demo — one click, no credentials. You land in a working B2B workspace with an active pipeline and weeks of agent activity. Press Run Lead Qualifier to score unscored leads live, or Run Follow-up Nudger to see it flag exactly one quiet contact and one stuck deal, then draft the outreach email in a click. Demo data resets itself, so click anything.