An answer you can check
Not a chat bubble: a sheet that shows the question, the tables it was answered from, the SQL that was written, the result, and the sources it cites. Anyone on your team can read the query and trust the number, or challenge it.
Your business rules travel with it. “Net revenue excludes returns” is written once, in plain language, and applied to every answer that touches revenue.
SELECT b.name, t.target, SUM(o.amount) AS actualFROM branches b JOIN sales_targets t ON t.branch_id = b.idJOIN orders o ON o.branch_id = b.id AND o.quarter = t.quarterGROUP BY b.name, t.target HAVING SUM(o.amount) < t.target
| Branch | Target | Actual | Gap |
|---|---|---|---|
| Branch A | 1,200,000 | 1,050,000 | −150,000 |
| Branch B | 800,000 | 690,000 | −110,000 |
| Branch C | 950,000 | 910,000 | −40,000 |
- [1] orders
- [2] sales_targets
- [3] SOP-14 “Quarterly targets”
From a question to an answer, in eight checked steps
Each step is a real stage in the system, and each one can stop the next.
Cache lookup
A question already answered for your company comes back at once, with the same sheet.
Business rules
Your definitions and constraints are loaded first, so the model writes to your vocabulary, not its own.
Table selection
The learned schema is searched by meaning; only the tables that fit the question are shown to the model.
Column selection
Within those tables, the columns you allow. Anything masked or hidden never reaches the prompt.
Query generation
One SQL statement for your database engine, PostgreSQL, SQL Server or MongoDB, with an explanation.
Validation
The statement is parsed and checked: read-only, allow-listed tables, no joins into what you cannot see.
Masking
Columns marked for masking are returned masked, whatever the query asked for.
Execution and chart
The query runs with a timeout and a row limit; the result comes back with a chart suggestion and its citations.
Your data stays yours
- Company isolation
- Each customer’s connections, questions, reports and rules live in their own scope. A company can see its subsidiaries and nothing else.
- Column-level masking
- Mark a column as masked and every answer shows it masked: identifiers, phone numbers, salaries.
- Read-only SQL
- Only SELECT statements run. A write, however it is phrased, is refused before it reaches your database.
- Audit log
- Who asked what, which SQL ran, and what came back, kept per company.
- Business rules in plain language
- Definitions, filters and terminology are written by your team and applied to every query, not remembered by a model.
- Arabic and English answers
- Ask in either language; the answer, the explanation and the report come back in the one you used.
Nothing runs unchecked
Before a statement touches your database it passes this list. If any line fails, the answer says which one instead of running.
- Read-only statement
- Only allow-listed tables
- Masked columns stay masked
- Row filters from your business rules applied
- Under this company’s rate limit
UPDATE customers SET credit_limit = …, a write statement is refused, not rewrittenRefused
Three ways in
Your company
A private workspace for your team: your database connections, your questions, your reports and rules. The first sign-up becomes the administrator.
Create a company accountMembers
A free personal account to follow the product, with a profile of your own. No access to any company’s data.
Create a member accountThe ESAP team
The platform team runs customer accounts and the models behind the answers from its own portal.
Platform sign-inQuestions we get first
Does my data leave my database?
Only the rows an allowed, read-only query returns, and only to your own workspace. The model sees the schema and your rules, never the table contents you have not asked about.
Which databases work?
PostgreSQL, Microsoft SQL Server and MongoDB today. You connect with a read-only account and Zakra learns the schema from it.
Can it change anything?
No. Every statement is checked to be read-only before it runs, and a write is refused rather than rewritten.
What do I need to start?
A connection string with read access and a sign-in. Zakra learns the schema in minutes; the first question can follow straight after.