A good chat assistant is not a chatbot with FAQ knowledge but a second user interface for your application: it reads your data through the same domain services as the UI, understands your system's data schema, and handles work a form-by-form interface was never built for – bulk maintenance, research across many records, analysis on demand.
The most important building block is trust: our assistants never write to the database directly. Every intended change appears as an approval card with a before/after diff, and only the user's approval executes it. Bulk changes are a card too – approval starts a background job with live progress.
Transparency is part of the deal: the assistant streams its work, including its tool calls, live into the browser. Users see which data it reads and what it intends to do – not a black box, but a colleague you can look over the shoulder of.
And where calculation happens, the model doesn't calculate: comparisons, aggregations, and mappings run through your application's deterministic engine. The model phrases and explains – the numbers come from the system, and every answer shows its working.