InTakt AI: agents in a real ERP
How we built a multi-agent AI system on top of InTakt, our production operations platform. Anthropic Claude, secure tenant isolation, real warehouse and HR queries answered in natural language. Not a demo - in production today.
Why we built it
InTakt is a multi-tenant operations platform serving manufacturers, installers, and field service companies. Hundreds of database entities, complex permissions, multiple modules from warehouse to HR.
The problem with ERPs is the same everywhere: power locked behind navigation. People don't know where to click, and they get tired of clicking. New users take weeks to learn what's where.
So we asked a different question. What if you could just ask?
What started as an experiment became a production AI system handling real questions across warehouse, sales, finance, HR, and admin. Operators talk to it in their own language. Croatian, English. They get answers grounded in their actual data, with the same permissions they have in the UI.
Brain and hands, separated
We split the AI into two layers. The brain (Claude) thinks and routes. The hands (specialised agents) act, with strict permission scoping.
Routing agent
First contact. Reads the operator's question, classifies complexity, and dispatches to the right specialist. Simple questions get simple paths. Complex questions get the full agent treatment.
Domain agents
Specialists for warehouse, sales/finance, operations, HR, and admin. Each one knows its domain deeply. They share context but don't share access - HR data stays HR-side.
Stateless agent service
Runs outside tenant containers. Calls the InTakt API like a mobile app would. Never stores credentials or tenant data. Each request carries the operator's identity, the agent inherits the same RBAC scope.
Compiled session knowledge
Instead of traditional RAG, the system builds compiled, persistent context per tenant. Patterns like reorder thresholds, supplier delivery times, recurring tasks - learned and remembered across sessions.
Server-Sent Events streaming
The browser connects to a controller that proxies SSE streams from the agent service. Server-side injection of tenantId and operatorUserId means the client can't fake authority.
Phased autonomy slider
We started at Phase 1: read-only observer. The architecture is ready to scale to Phase 4 (proactive optimiser) as confidence grows. We don't enable autonomy by default - we earn it.
Real questions, real answers, in production
Production AI capabilities across the ERP - all scoped to the operator's permissions, multi-language, and auditable.
Warehouse and inventory
Real-time stock levels and work order overview, across multiple locations.
Sales and finance
Queries on offers, orders, and invoices. Sensitive changes always require human confirmation.
Operations and projects
Task status, project timelines, team coordination.
HR and leave management
Leave balances, team availability, working day calculations. Access scoped by user role.
Cross-session memory
The system learns usage patterns and retains context across longer time periods.
Croatian and English
Native multilingual response with locale-appropriate data formats.
Security and access control
Sensitive data stays protected - the system respects existing RBAC policy.
Audit and explainability
Every action logged, every decision reversible, every recommendation explainable.
AI in real ERP context
Honest takeaways from putting Claude into a production system with real customers.
Permission scoping is not optional
The temptation is to give the agent everything for context. Resist it. The agent must operate under the same RBAC as the human asking. We built the access layer first, then the intelligence on top.
Compiled context beats RAG for ERPs
Traditional RAG searches documents. ERPs have structured data. We built compiled per-tenant knowledge that captures relationships, patterns, and history. Faster, more accurate, more useful.
Confirmation is a feature, not a friction
When the agent suggests a status update or creates a task, it asks for confirmation. Operators don't want surprises. The two seconds of "yes, do it" are worth the trust they buy.
Phased autonomy beats big-bang autonomy
Starting read-only meant we could deploy without regulatory or operator anxiety. Each phase upward is earned through reliability data. The architecture supports it; we move when we're ready.
Streaming changes everything
Latency kills AI conversations. Server-Sent Events streaming means responses start within a second. Operators stay engaged. The technical setup was non-trivial but worth every hour.
See iNTAkt - the operations platform
The AI is built on top of our existing ERP. See the architecture, modules, and business processes of the platform that AI extended to a new level.
Want this for your operations?
We can apply the same architecture to your ERP, internal tools, or operational systems. Domain experts plus AI engineering, with secure permission scoping built in from day one.