The first time a company gives AI access to its data, the security question always comes up — and it should. This isn’t about being afraid of it; it’s about setting a few concrete rules before AI gets access to anything. Here’s how we approach that in practice.
Why this question comes up in every implementation
Whenever we plan for AI to read a company’s data, the first conversation isn’t about features — it’s about boundaries: what AI should see, what it should never see, and who checks that. It’s usually the same people on the client side asking — IT, sometimes legal, sometimes the business owner who just wants to sleep at night. That’s a good question, and it has a concrete answer, without vague talk about “AI safety.”
Data separation — what AI should even be able to see
The first step is splitting data into categories before anyone thinks about integration. That’s a decision we make together with the client before a single line of integration code gets written — not during, and not after.
Operational data vs sensitive data
Operational data is what AI needs to do its job: invoice content, order numbers, case status. Sensitive data is personal data, salaries, health information, payment card numbers, confidential contract terms. The rule is simple: AI gets access only to what a specific task actually requires — not to the whole database “just in case,” even when a broader default access would be technically simpler to set up.
The principle of least privilege, in practice
This isn’t an abstract security principle — it’s a concrete design decision on every implementation. We scope access per task, not per system: if AI needs to read invoices, it gets access to invoices, not to the entire accounting system. If AI needs to classify customer inquiries, it gets access to the inquiry content, not the customer’s full account history.
Qkwit is a good example: AI (Claude) reads accounting documents, but the actual calculation of tax or social security contributions runs through a deterministic engine. AI has no reason — and no access — to carry out financial operations on its own. That division of roles, which we cover in more detail in AI proposes, code decides, doubles as a security principle: the less AI needs to see to propose a result, the smaller the risk surface.
Who reads, and who decides
Separating roles matters well beyond accounting. In customer service, AI can read a request and propose a category or a draft reply, while the decision to issue a refund or change contract terms goes through a rules engine or a human. In legal documents, AI can flag an unusual clause without modifying the contract itself. The common thread is always the same: AI only gets access to what it needs to propose a result, while execution stays with code or a human who approves it.
Log auditing — knowing what AI actually did
Access without logging is access you can’t really control. Every query AI makes against data, and every proposal it returns, should be recorded: what was read, what was proposed, and who approved it and when.
This isn’t an afterthought — it’s something we design in from day one. A log doesn’t need to be complicated to be useful: it just needs to let you reconstruct why AI proposed a given result, and someone needs to actually review it regularly, not just archive it just in case. In practice that means a short, recurring review — weekly at the start of an implementation, less often once the process settles and the team trusts how AI behaves.
How this looks at the start of an implementation
Access scope isn’t set once and left alone from the first rollout. We usually start narrower than the eventual target — AI gets access to a data sample or a staging environment before it ever touches production data. Only once it’s clear that AI’s proposals are accurate and the logs look right does the access scope widen to production, still within the bounds of least privilege. That more cautious approach costs a bit of time upfront, but it eliminates the most expensive scenario of all: broad access granted right away, before anyone has had the chance to check how AI actually behaves in practice.
Where the line sits: sensitive vs operational data
In practice, the line looks like this:
- Operational data — working document content, case statuses, the data needed for classification or extraction that AI processes as part of its task. This can usually reach AI without extra safeguards, as long as access stays scoped to the task.
- Sensitive data — customer personal data beyond what a task requires, salaries, health data, payment data, confidential contract terms. This needs an extra decision before it ever reaches the model.
Sensitive data either never reaches AI at all, or reaches it masked or aggregated, depending on whether the task genuinely requires it. That’s a deliberate decision made when designing the integration, not a default setting left in place by accident.
The practical rules we apply
- Scope access per task, not per system or per database.
- Separate reading and proposing — AI’s role — from executing and financial decisions — the role of deterministic code.
- Log every AI query and every proposal, no exceptions.
- Have logs reviewed regularly by a person, not just archived for a future audit.
- Start with a narrower access scope and widen it only once AI’s behavior has proven reliable.
- Give sensitive data a clearly defined extra approval or masking step before it ever reaches the model.
FAQ
Does AI need access to a company’s entire database? No. A well-designed integration gives AI access only to the data a specific task requires — everything else stays out of reach, no matter how convenient broader access might seem at the start.
How does masking sensitive data work in practice? It depends on the task — sometimes stripping personal identifiers from a document before processing is enough; sometimes data needs to be aggregated so AI sees a pattern rather than an individual record.
Do logs of AI activity need to be kept? Yes — that’s the basis of any audit and the only way to reconstruct why AI proposed a given result if anyone asks, whether that’s a compliance team or an end customer.
What if AI sees data it shouldn’t? That’s exactly why we set up data separation and least-privilege access before integration, not after — a well-designed access scope means this question shouldn’t come up in practice.
Does this approach slow down implementation? Not significantly — scoping access is part of designing the integration, not a separate stage. It costs a bit more time upfront and saves considerably more later, when nobody has to guess what AI actually had access to at a given moment.
Want to get this right from the start?
If you’re wondering how to safely give AI access to your company’s data, get in touch — it’s a question we solve at the integration design stage, not after the fact. Read more about our approach on our AI services page.