The questions people
used to email HR.
How much leave is left, why the payslip moved, whether a cab needs a receipt. Ziva answers from the asker's own record, with the same figures the screens show. Ask it to put in leave and it prepares the request. You press Confirm. The model never writes anything itself.


Grounded, not guessing
It reads your record, not the internet.
A general model asked about leave carry-forward will describe how carry-forward usually works. Nobody needs that answer. Ziva answers from the rules your workspace configured and the rows it actually holds for you.
- Leave, with its policy attachedAllocated, carried forward, used, held by pending requests, and what is actually bookable. The notice rule, half-day rule and consecutive-day cap come with it.
- Your holidays and your attendanceThe calendar for your own location, and your punches, late marks and loss-of-pay days, in the workspace's timezone.
- Your payslips and compensationOnly payslips from a processed run, broken down line by line. The same numbers as the PDF, because they come from the same rows.
- The expense policy and your claimsWhich categories exist, the cap on each, the amount above which a receipt is required, and where your own claims stand.
YouHow much casual leave do I have, and how much notice does it need?
ZivaYou have 4.5 casual leave available — 6 allocated, 1 used, 0.5 held by a request still awaiting approval. Casual leave needs 1 day's notice and allows half days, up to 3 consecutive days.
YouWhy was my August payslip lower than July's?
ZivaTwo unpaid days. Your August record shows 2 days loss of pay on the 11th and 12th, which took ₹3,870 off basic and HRA. Everything else — PF, professional tax, allowances — matches July.
YouPut in leave for the 14th to the 16th.
ZivaThat is 2 working days — the 15th is a holiday at your location — and it fits your balance and notice rule. I haven't applied. The request is on the card below; it goes to your manager when you press Confirm.
Scoped to one person
Ziva can see exactly one employee: the one asking.
Most HR assistants read the database with a service account and try to be discreet about the answer afterwards, which means the salary was already in the model's context. Here, every tool filters to the signed-in employee on top of the workspace scoping. There is no argument that names somebody else.
What is Aarav's CTC?
I can only see your own records, so I can't tell you anything about Aarav. I can show you your own compensation or your latest payslip.
get_compensation(employee: "Aarav")
Refused: get_compensation does not take employee. The person is decided by the signed-in session, never by a tool argument.
No privileged read path
Each answer filters to one employee, on top of the tenant scoping the model manager already applies.
Arguments refused, not ignored
A model asking for someone else is told it cannot, rather than being quietly handed your data and presenting it as theirs.
Same figures as the screens
Leave years, working weeks and released payslips come from the helpers the API uses, so Ziva and the app cannot disagree.
Gated like a module
Ziva is a feature on the workspace's plan, with an AI-terms step before first use. Switch it off and the launcher goes with it.
It proposes, you decide
Model output never executes anything.
Finding out you have four days left is not the task. Filing the request is. Ziva gets you to one press from done, and stops there, because the last step is on a route the model cannot reach.
- 01
Ziva proposes
The model calls a preview tool. It validates the dates against every rule and stores a pending proposal. No HR data is written.
- 02
You see a card
The exact request — type, dates, days, reason — in front of you, with the parameters held on the server rather than in the browser.
↓ model stops here - 03
You press Confirm
A request from your browser, on your session, carrying only the proposal's id. It is not a tool, so the model cannot call it.
- 04
The request is filed
Through the same validation and approval chain as the form. Your manager sees a leave request, not an AI artefact.
Unmodifiable
Parameters are stored when the proposal is made. The browser sends an id, so there is no field to tamper with.
Single-use
Confirming moves the proposal from pending to executed under a row lock. A replayed click finds it spent.
Expiring
A proposal is valid for 15 minutes, so it cannot be confirmed against a balance that has since moved.
Re-authorized
Ownership, employment, plan and every leave or expense rule are checked again at confirm time, not trusted from the preview.
Two proposals exist today: a leave request and an expense claim. Approving, paying and changing compensation are not things Ziva can propose at all.
Where it lives
In the app, in Slack, and behind an MCP server.
Ziva's tools are one catalogue. The drawer in the web app calls it directly, and the Slack agent reaches the same tools through an MCP server, on a token scoped to that one surface and nothing else.


In the web app
A drawer on every screen, shown only when the workspace has the assistant on. It streams, and shows you the card when it has proposed something.
In Slack
Once your Slack account is linked, the same tools answer in Slack, as you. The link is the identity, so an unlinked account gets nothing.
Learn moreFor the people who set statutory rules
A separate assistant in the control plane explains the statutory rules and drafts rate changes as field-by-field differences. It pre-fills the editor. A person presses Save.
Learn moreHonest limits
What it will not do.
An assistant that is confidently wrong about a leave balance is worse than none. Ziva is built to refuse, and to say why.
It will not answer about other people
Not a colleague's balance, not a team's attendance, not a report's salary. Manager and HR questions are answered by the screens built for them.
It assumes prompt injection succeeds
A résumé or an expense description will one day say "ignore previous instructions". Containment is not the prompt. Authorization in the tool layer is, so an injection can change a sentence but not widen a read.
It keeps data and instructions apart
Your messages, record text and tool output are kept structurally separate from the server's instructions. Replies that echo a secret or the system prompt are not delivered.
It does not invent a policy
If the workspace has no rule for a question, Ziva says so rather than describing what most companies do.
Book a demo · 30 min
Ask it the questions your HR team answers by email.
Bring a week of the questions your people usually send over chat. We will ask them on a workspace shaped like yours, and propose a leave request you can confirm.