AI assistant for business systems

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.

How an answer is built ↓
Ask · TimeTrackingMy timesheets

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.

TimeTracking · Week 44 →
Example dialog
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.

Running at Varnix

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
One assistant connected to TimeTracking, Finance, Contracts and PeopleVarnixAssistantTimeTrackingFinanceContractsPeople
What it does

Four jobs, one “Ask” button

Answers from your user guides

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.

A button to the right screen

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.

The user's own data

“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.

Admin and quality control

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 it works

How an answer is built

  1. 1Question

    The widget sends the question, the screen the user is on and their sign-in token.

  2. 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.

  3. 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.

  4. 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.

  5. 5Answer

    Text streams into the widget as it is written, followed by the screen buttons.

  6. 6Record

    Question, answer, rating and the cost of each model call are stored for 90 days.

Widget

An “Ask” button and chat panel, one shared component for every system

Assistant service

Python and FastAPI on Azure Container Apps, with the Claude API

System protocol

Two read-only endpoints per system: its screens and its tools, filtered by the user's rights

Knowledge base

User guides from the wiki, re-indexed every night, PostgreSQL full-text search

Identity

Microsoft Entra ID groups and On-Behalf-Of tokens; no service account reads business data

Security

Five risks and how the design closes them

Employee

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 data
Team lead

What 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 it

Same question, two people. The system decides what each of them may see; the assistant only passes on the answer.

Someone outside the company uses it

Sign-in with Microsoft Entra ID and access by group. Outside the groups, neither the model nor any system is called.

The assistant sees too much

Data is read only with the user's own token (On-Behalf-Of). The assistant has no data rights of its own.

Prompt injection through data or documents

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.

Leaked secrets

The model API key lives in Azure Key Vault, with separate keys for test and production. User tokens are never logged or stored.

Personal data kept too long

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.

Cost

Costs you can see every day

50questions per user per day, by default
$20daily cost alert for the whole company
90 daysbefore dialogs and usage records are deleted
30 sfor a new model or limit to reach every server, without a release
  • Every model call is recorded with its tokens and cost.
  • Prompt caching: users with the same rights share the cached part of the prompt.
Quality

Tested on reference questions before release

Reference questions in our set
  • 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.

For your company

What changes for your company

The architecture carries over. We connect it to your sources and systems:

Knowledge

Confluence, SharePoint or a wiki with your user guides

Identity

Microsoft Entra ID, or another OAuth 2.0 provider that supports token exchange

Systems

Each system exposes two read-only endpoints, or we build an adapter

Channels

A widget in your web applications; Microsoft Teams is the next channel we are adding

Model hosting

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.

How AI-native delivery works →

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.