An AI assistant that knows your systems and stays inside each user's rights.
It answers “how do I…” questions from your user guides, opens the right screen with a button, and shows people their own data with their own permissions. We built one for our four internal systems, and we build the same for yours.
Why was my timesheet for week 44 returned?
Your manager returned it on 3 November with the comment “Add the project for Tuesday”. Open the timesheet, choose the project for Tuesday's entry and press Submit.
- Running at Varnix
- 4 systems since October 2026
- Model
- Claude, through the Claude API
- Data access
- Read-only, with the user's own rights
New systems create the same question a hundred times
In October 2026 we moved our own company onto four new systems: time tracking, finance, contracts and HR. Each had a user guide in the wiki. People still asked the system owners in chat where to request leave, why a timesheet came back, or which contracts were waiting for them.
So we built an assistant into all four systems. It reads the same user guides, knows which screens each person can open, and reads their data through the system's own permission checks. It never changes anything: when an action is needed, it shows a button to the screen where the person does it.
Varnix Assistant in our own systems
One assistant service behind an “Ask” button in TimeTracking, Finance, Contracts and People. Every employee with a Microsoft 365 licence can use it; a separate admin group reviews dialogs and costs.
- business systems behind one assistant
- 4
- business systems behind one assistant
- from first commit to production
- 1 day
- from first commit to production
- answer languages: Ukrainian, Russian, Bulgarian, English
- 4
- answer languages: Ukrainian, Russian, Bulgarian, English
- automated tests, including prompt-injection cases
- 140
- automated tests, including prompt-injection cases
Four jobs, one “Ask” button
The model searches the knowledge base itself, tries other words if the first search misses, and answers in steps with the exact names from the interface.
Up to three buttons per answer, only to screens this user can open. A screen in another system is labelled with that system's name.
“Which of my timesheets were returned?” The assistant calls the system's read-only API with the user's token. The system checks the rights; the assistant has none of its own.
Dialogs with ratings, a report of questions the guides do not answer, a cost dashboard, and model and limit settings that change without a release.
What it will not do
- Change data in your systems. Actions are buttons to the screen where the user acts.
- Show data the user cannot see in the system itself.
- Invent an answer. If the guides do not cover a question, it says so and names who to ask.
- Show amounts or personal data that a role must not see, such as contract values or salaries.
How an answer is built
- 1Question
The widget sends the question, the screen the user is on and their sign-in token.
- 2Rights
The service checks the user's group and daily question limit, then asks each system which screens and read-only tools this user may use.
- 3Model
Claude receives the instructions, the user's screen catalogue and the question. The shared part of the prompt is cached, so repeated questions cost less.
- 4Tools
The model searches the guides, reads data through the system's API with the user's token, and picks screens to link. At most four rounds, then it answers.
- 5Answer
Text streams into the widget as it is written, followed by the screen buttons.
- 6Record
Question, answer, rating and the cost of each model call are stored for 90 days.
An “Ask” button and chat panel, one shared component for every system
Python and FastAPI on Azure Container Apps, with the Claude API
Two read-only endpoints per system: its screens and its tools, filtered by the user's rights
User guides from the wiki, re-indexed every night, PostgreSQL full-text search
Microsoft Entra ID groups and On-Behalf-Of tokens; no service account reads business data
Five risks and how the design closes them
What is waiting for my approval?
Nothing: you don't approve timesheets. Your own week 45 is waiting for your manager.
Sees only their own dataWhat is waiting for my approval?
Three timesheets for week 45 from your team are waiting for you.
TimeTracking · Approvals →Sees the team's queue, because TimeTracking allows itSame question, two people. The system decides what each of them may see; the assistant only passes on the answer.
Sign-in with Microsoft Entra ID and access by group. Outside the groups, neither the model nor any system is called.
Data is read only with the user's own token (On-Behalf-Of). The assistant has no data rights of its own.
Text from systems and guides goes to the model as data. The server runs only tools from the user's catalogue with declared parameters, checks types and length, and refuses everything else. Tests cover these cases.
The model API key lives in Azure Key Vault, with separate keys for test and production. User tokens are never logged or stored.
Dialogs and usage records are deleted after 90 days. Every time an admin opens a dialog, the view goes into an audit log kept for a year.
Costs you can see every day
- Every model call is recorded with its tokens and cost.
- Prompt caching: users with the same rights share the cached part of the prompt.
Tested on reference questions before release
- TimeTracking14
- Finance9
- Contracts7
- People8
- About data7
38 questions from the user guides, 3 of them deliberately outside the guides, and 7 questions about the user's data, checked by hand in the widget.
A job runs the guide questions through the same pipeline as the chat and checks them automatically: the interface terms must appear, and amounts, bank details and wiki addresses must not. A report of questions the guides do not answer tells system owners what to document next.
What changes for your company
The architecture carries over. We connect it to your sources and systems:
Confluence, SharePoint or a wiki with your user guides
Microsoft Entra ID, or another OAuth 2.0 provider that supports token exchange
Each system exposes two read-only endpoints, or we build an adapter
A widget in your web applications; Microsoft Teams is the next channel we are adding
Claude through the Claude API, or a model on your own servers when data cannot leave the network
Built with our AI-native delivery process
An AI coding agent wrote the code from work items with acceptance criteria. A second model reviewed every pull request, and a person decided what was merged and released.
Frequently asked questions
Start with one system and its user guide.
Tell us which system people ask about most. We will show how the assistant would answer there and what it needs from your side.