AI assistant
Chat that reads your books and proposes changes you confirm.
Kiravy AI is the chat assistant baked into the product. It's not a generic chatbot — it can read your live data (transactions, customers, receipts, engagements, the chart of accounts) and propose changes that you confirm before they save. Two scopes:
- Firm-level at the AI tab in the firm sidebar — sees data across every client you can access
- Client-level at any client's AI tab — scoped to just that client
The two are separate surfaces with separate conversation histories.
Opening a conversation
Hit the AI tab. The left rail shows your past conversations, grouped Today / Yesterday / This week / Older. There's a search box if you've got a lot of threads, and New conversation at the top.
Click any thread to open it; the right pane shows the transcript and an input box.
Renaming and deleting threads
Each thread has a kebab menu:
- Rename — for keeping things findable when threads pile up
- Delete — soft-delete; the row stays for audit but disappears from your sidebar
Renaming and deletion respect roles — anyone can rename or delete a thread they created; Partners and Managers can rename or delete any team member's thread in the same firm.
What you can ask
Anything backed by data Kiravy can see. Some examples that work well today:
| Ask | What Kiravy AI does |
|---|---|
| "What did Mamak Pelita spend the most on last month?" | Looks up transactions for that client by date, groups by account, ranks by total |
| "Generate a P&L for Q2 2026" | Calls the P&L generator with the period; returns the structured statement inline |
| "How many receipts are still pending review?" | Counts receipts by status; lists the unsaved ones |
| "Is March closed?" | Checks the engagement for that month; reports status, uncategorised count, unreviewed count |
| "What's our SST liability for May?" | Pulls SST-02-relevant figures, separates output / input tax codes |
| "List the expense accounts this client uses" | Reads CoA filtered to account_type = 'expense', sorts by code |
You can be conversational — "any expensive entertainment last quarter that wouldn't be deductible?" will route through deductibility filters automatically.
Kiravy AI doesn't make up numbers. When it answers a data question, it has to call one of its built-in tools — it can't invent transactions. If the data isn't there, it'll tell you so rather than hallucinate. (See How it sees data below.)
How it sees data
Kiravy AI uses function calling — it has a fixed catalogue of tools, and every data-backed answer goes through one of them. You'll see a small tool card appear in the transcript while it's running, with the status (running → done or error) — click to expand and see the exact query and raw output.
Today the tools include:
- Read tools — list transactions, list CoA, generate P&L, generate SST summary, list receipts, list engagements, get client summary
- Write tools (client-level only) — categorise a transaction (set its account code), update a vendor name, save a receipt as a transaction, reject a receipt
Write tools are propose-and-confirm — Kiravy AI shows you what it wants to change (a card with the before / after values) and asks for Confirm or Skip. Nothing mutates until you click Confirm.
Scope and tenant isolation
| Scope | Sees |
|---|---|
| Client-level | Just that client's data — transactions, CoA, receipts, engagements |
| Firm-level | All clients you have access to (per your assignment); restricted to Partner and Manager roles |
Cross-firm access doesn't exist — row-level security at the database enforces tenant boundaries. Kiravy AI can't be tricked into reading another firm's data by asking nicely.
Responses
- Streamed — text appears as it's generated, so you don't wait for the whole answer to start reading
- Markdown — tables, bold, code blocks, links, numbered lists
- Structured outputs for things like P&L — rendered as proper aligned tables, not blobs of text
- Tool cards are collapsible — expand to see the underlying data fetch
Copying answers
Each assistant message has a copy button (top-right of the bubble). The copy is content-aware:
- Tables → tab-separated values (paste cleanly into Excel)
- Markdown → plain text
- Code → just the code
There's no share conversation link or PDF export yet — copy + paste for now.
Attachments
Not yet. You can't drag a receipt into chat. Use the Receipts tab for OCR uploads; Kiravy AI can then reference receipts that already exist in the system via its tools, but you can't hand it a file mid-conversation.
This is on the roadmap.
Feedback
Every assistant message has 👍 / 👎 buttons. Click 👎 to optionally add a one-line reason; click 👍 to mark a particularly good answer. The signal feeds into how we improve prompts and which tools we add next.
Toggles are idempotent — clicking the same vote twice clears it.
What about cost?
You won't see a token counter in the chat. Your firm pays a flat billing-tier price (see your contract / firm settings), not per-conversation. Kiravy tracks internal usage to plan capacity, but that's not exposed to end users.
Partners and Managers can see internal usage at Firm settings → AI usage — see AI usage page (planned doc) for what's there.
Limits today
- No attachments in chat (use Receipts tab + reference them)
- No share / export of a conversation
- No streaming-cancel mid-answer (it'll finish; you can navigate away)
- No per-user spend visibility in chat (it lives in Firm settings)
What's next
- Transactions — the underlying data the AI reads
- Month-end close — where the AI deductibility check fires
- Receipts (OCR) — the upload flow that produces extracted data the AI can then reference