> ## Documentation Index
> Fetch the complete documentation index at: https://docs.consile.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Security & data

> Least privilege, EU hosting and encryption with a key per customer: how we handle your data.

*[Læs siden på dansk](https://docs.consile.ai/essentials/sikkerhed-og-data.md)*

This is how Consile protects and handles your data, in plain words.

## The five principles

> **Least privilege**
>
> The data connectors (Google Search Console, CVR, Dinero, Billy, Ordrestyring
> and Business Central, which is in early access) are read-only: your AI can read
> your numbers, but never change, create or delete anything.
> The write connectors (e-conomic, Uniconta, Shopify, HubSpot CMS, HubSpot
> Marketing Email, LinkedIn Ads and Meta Ads) can
> also create and change content for you, but only behind safety barriers. By
> default, two rules apply: new content is created as a draft or paused,
> and actions that spend money, publish, send, post to the accounts or delete
> require your confirmation. Without confirmation, you only get a preview.
> See [Actions & guardrails](https://docs.consile.ai/en/essentials/actions-and-guardrails.md).

> **Hosted in the EU**
>
> Consile is hosted and operated in the EU (Frankfurt, Germany), and your encrypted
> access credentials are stored only there. The answers from your systems are passed
> on to the AI service you have connected yourself (for example Claude or ChatGPT).

> **Your AI never sees your token**
>
> Consile holds its own, separate access to your data source, and your AI is
> never given it. The login your AI uses with Consile is also never passed on
> to your systems (no "token passthrough").

> **Encrypted with a key per customer**
>
> Tokens, API keys and logins are encrypted with keys that can only be used for
> your own account, and that are protected by a hardware-secured key vault. Another
> customer's key cannot open your data.

> **Access is checked on every call**
>
> On every tool call, Consile checks that your organization subscribes to the
> connector, that your user has been given access to it, that the tool is part of
> your access level, and whether the tool requires an administrator's approval.
> Only then is the stored access to your system used. If the connection is locked
> to one company, Consile also checks that the call stays with that company.
> Consile never trusts your AI client to stick to the tools it has access to on
> its own.

> [!NOTE]
>
> The safety barriers in the write connectors are built-in defaults. How the
> confirmation works, and exactly what requires it, is described in
> [Actions & guardrails](https://docs.consile.ai/en/essentials/actions-and-guardrails.md). Consile always
> enforces three things on the server: the data connectors have no
> write tools, a user on the **Read only** access level cannot use
> write tools, and a tool that requires approval runs only once an
> administrator has approved the call.

## Access per user

An administrator decides under [Team](https://docs.consile.ai/en/portal/team.md) which users have
access to which connectors. A user without access to a connector cannot
use its tools, even if the organization subscribes to it. With
[the Consile Studio membership](https://docs.consile.ai/en/portal/membership.md), the administrator instead gives
one licence per person, which covers all of the membership's systems.

For e-conomic and Uniconta, the administrator also chooses an access level for each
user: **Read only** (28 tools in e-conomic, 21 in Uniconta) or
**Full access** (40 tools in e-conomic, 25 in Uniconta). With Read
only, Consile blocks all write operations on the server for that user. Both
levels cost the same. If the administrator changes the level, a conversation that
is already open may show the old tools until the user starts a new chat.

## Calls that need an administrator's yes

An administrator can decide that a tool requires approval. The rule applies to
the whole organization, including administrators and AI bots. A call to the tool
waits, and nothing is carried out until an administrator has approved it under
**Team** → **Approvals**. Consile enforces this on the server, whichever
AI client is used. See [Approvals](https://docs.consile.ai/en/portal/approvals.md).

## Double authorization (token vending)

When you connect, two things actually happen:

**1. Your AI logs in to Consile**

Your AI client (for example Claude) authenticates with Consile using your
Consile login, not with, for example, Google. That is how Consile knows who you
are and which connectors you have access to.

**2. Consile gets its own access to your data source**

You give Consile access to, for example, Google, or you enter an API key in
the portal. Consile stores the access encrypted, and where the provider allows
it, Consile renews expiring login tokens itself. Meta Ads is an
exception: there you usually have to connect again about every 60 days. Your AI
never sees this access.

The result: your AI can ask questions, but neither it nor any other customer
can reach your access credentials.

## How customers are kept apart

> [!NOTE]
>
> Each customer (*tenant*) is completely isolated. Which data a request may
> touch is decided only from the session Consile has verified itself, never from
> anything your AI sends along. A tool uses only your own organization's stored
> access, and your access is checked on every call.

### One company per connection

Some logins reach several companies, for example a Google account with many websites in
Search Console or an accountant login in Dinero. In Google Search Console, Meta Ads,
LinkedIn Ads, Dinero and Business Central, an administrator can lock a connection
to one company. Consile then checks on every call that the call stays with that
company, and refuses calls to others. Tools that cannot be limited to one
company are not available on a locked connection. If Consile cannot
limit an answer to the company, the call is refused instead of answering with
data that may belong to another company. See [Company lock](https://docs.consile.ai/en/portal/company-lock.md).

In Uniconta, a connection works only in the company (Company ID) it is set up with,
even if the server user has access to several companies.

## What we store and log

The content from your systems, for example accounting data, orders and search figures, is not
stored by Consile. The tools read live from the provider, and the answer is passed
straight on to your AI.

We log technical events, for example which tool was called, how long it
took, and whether it succeeded. If a call fails, we log the error type and any
status code, but not the provider's error text. For the usage statistics, we count
the number of calls per tool per day.

* **The activity log:** For every tool call, Consile stores who made
  it (a person or an AI bot), which tool, in which system and which
  agreement, when, the outcome and how long the call took. An agreement is one
  connection to a system. Administrators see the log under **Team** →
  **Activity**. Each call is kept for 90 days. See
  [Activity log](https://docs.consile.ai/en/portal/activity.md).
* **Approvals:** For a call that is waiting for approval, Consile stores who
  asked for it, the system, the tool, the status, the times and who answered. Neither
  the values in the call nor the system's answer are stored. Consile stores only a
  fingerprint that can recognize exactly the same call again. The call cannot be
  recreated from it. See [Approvals](https://docs.consile.ai/en/portal/approvals.md).
* **AI bots:** The bot's own log stores the time, tool, result and
  the address the call came from, for 30 days. See [AI bots](https://docs.consile.ai/en/studio/ai-bots.md).

The content of the calls (what your AI sends to the tools, and the answers from your
systems) is not logged, not even in the activity log, with approvals or in
the bot's log. Tokens, API keys and passwords are never logged.
Messages you send us through [Concierge](https://docs.consile.ai/en/concierge.md) are stored, though, so we can
answer them. The optional message an administrator can write when a call is
approved or refused is also stored. See
[GDPR & your rights](https://docs.consile.ai/en/essentials/gdpr.md).

## Your rights (GDPR)

* An administrator can disconnect a connection at any time with **Disconnect**
  in the menu next to the agreement on the **Connections** card on
  the connector's page. The stored access is deleted immediately, and the subscription continues.
  Consile does not revoke the access at the provider, so you do that yourself in
  the provider's settings.
* When a subscription ends, Consile automatically deletes the stored access to that
  connector.
* An administrator can delete the whole account under
  [Account & data](https://docs.consile.ai/en/portal/account-and-data.md). Access is suspended immediately, and
  all encrypted access credentials are deleted at once. The rest of the account is deleted
  permanently after a 14-day grace period. The deletion does not cancel your
  subscriptions, so cancel them under [Subscription](https://docs.consile.ai/en/portal/subscription.md) before you
  delete the account.
* Invoices and payment history are kept by the payment provider, because
  the Danish Bookkeeping Act requires it.

> [!NOTE]
>
> The Consile service and your encrypted access credentials are in the EU (Frankfurt).
> Our login service processes identity data (for example your email) in the US under
> EU-approved transfer mechanisms. The full overview, including the list of
> suppliers, is in [GDPR & your rights](https://docs.consile.ai/en/essentials/gdpr.md).

If you have questions about data processing, write to
[support@consile.dk](mailto:support@consile.dk).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.