Data flow: Where does a request go?
Three principles
Section titled “Three principles”- Data is stored in Germany. Processing by a model takes place at the respective model provider.
- The organization controls which models are available. Administrators decide which providers and models may be used. Users can only select from these models.
- Model processing remains in Germany or the EU. Models provided through Microsoft Azure and AWS also run exclusively in EU regions. Content is not transferred to the USA.
What is located where?
Section titled “What is located where?”flowchart TB
user["User<br/>in the browser"]
subgraph germany["German data center"]
core["Ayunis Core<br/>application"]
anonymization["Anonymization<br/>local model"]
database[("Database<br/>chats, accounts, documents<br/>and settings")]
approval{"Admin approval"}
core <--> |"mask and restore"| anonymization
core <--> |"store and retrieve"| database
core <--> approval
end
subgraph eu["Model providers in Germany or the EU"]
model["Approved model<br/>processes without storage"]
examples["e.g. StackIT, Mistral,<br/>Microsoft Azure or AWS"]
model --- examples
end
user <--> |"request and response<br/>encrypted"| core
approval <--> |"chat history and response"| model
style germany fill:#f0f7f3,stroke:#1c6049,color:#17211f,stroke-width:2px;
style eu fill:#fff7e8,stroke:#a8681a,color:#17211f,stroke-width:2px;
classDef local fill:#e2ede7,stroke:#1c6049,color:#17211f,stroke-width:2px;
classDef external fill:#f6ecdb,stroke:#a8681a,color:#17211f,stroke-width:2px;
classDef neutral fill:#f7f8f5,stroke:#94a29b,color:#17211f;
class core,anonymization,database,approval local;
class model,examples external;
class user neutral;
Green means that the data is held on Ayunis infrastructure in Germany. Yellow means that a model provider temporarily processes data in Germany or the EU.
The path of a request
Section titled “The path of a request”Standard chat
Section titled “Standard chat”flowchart TB
input["User<br/>asks a question"]
core["Ayunis Core<br/>stores the chat and<br/>checks model approval"]
provider["Model provider<br/>generates the response<br/>without storage"]
result["Ayunis Core<br/>stores and displays<br/>the response"]
output["User<br/>reads or edits<br/>the response"]
input --> |"question"| core
core --> |"existing chat history"| provider
provider --> |"response"| result
result --> |"display"| output
classDef local fill:#e2ede7,stroke:#1c6049,color:#17211f,stroke-width:2px;
classDef external fill:#f6ecdb,stroke:#a8681a,color:#17211f,stroke-width:2px;
classDef neutral fill:#f7f8f5,stroke:#94a29b,color:#17211f;
class core,result local;
class provider external;
class input,output neutral;
With every new message, the language model receives the existing chat history, not just the latest sentence. This enables it to understand the context of the conversation. The chat itself remains stored at Ayunis in Germany; the model provider only processes the history to generate the response.
Anonymous mode
Section titled “Anonymous mode”flowchart TB
input["User<br/>enters personal data"]
anonymization["Local anonymization<br/>detects and replaces<br/>personal data"]
core["Ayunis Core<br/>sends only the<br/>masked text"]
provider["Model provider<br/>sees placeholders only"]
restore["Ayunis Core<br/>restores the<br/>original values"]
output["User<br/>reads the response"]
input --> |"plain text"| anonymization
anonymization --> |"masked text"| core
core --> |"placeholders"| provider
provider --> |"response"| restore
restore --> |"readable response"| output
classDef local fill:#e2ede7,stroke:#1c6049,color:#17211f,stroke-width:2px;
classDef external fill:#f6ecdb,stroke:#a8681a,color:#17211f,stroke-width:2px;
classDef neutral fill:#f7f8f5,stroke:#94a29b,color:#17211f;
class anonymization,core,restore local;
class provider external;
class input,output neutral;
Anonymization runs entirely on Ayunis servers. A local model detects information such as names, addresses, telephone numbers, email addresses, dates of birth and reference numbers, and replaces it with placeholders before transmission. The original values are restored in the response and highlighted in color.
Anonymous mode is selected when starting a new chat and remains active for that chat. Administrators can enforce it for individual models and define exceptions for certain data types.
Chat with a knowledge collection
Section titled “Chat with a knowledge collection”flowchart TB
subgraph upload["Once when a document is added"]
document["Document or website"]
extraction["Ayunis Core<br/>stores the content<br/>and extracts the text"]
embedding["Embedding model<br/>prepares the text<br/>for search"]
index[("Search index<br/>stored in Germany")]
document --> extraction
extraction --> |"text"| embedding
embedding --> |"search data"| index
end
subgraph question["For every question"]
query["User's question"]
search["Embedding model<br/>prepares the question<br/>for search"]
matches["Ayunis Core<br/>finds relevant<br/>passages"]
language["Language model<br/>sees the question and<br/>relevant excerpts"]
answer["Referenced answer<br/>from the organization's<br/>own documents"]
query --> |"question text"| search
search --> matches
matches --> |"relevant excerpts only"| language
language --> answer
end
index -.-> matches
style upload fill:#f7f8f5,stroke:#94a29b,color:#17211f;
style question fill:#f7f8f5,stroke:#94a29b,color:#17211f;
classDef local fill:#e2ede7,stroke:#1c6049,color:#17211f,stroke-width:2px;
classDef external fill:#f6ecdb,stroke:#a8681a,color:#17211f,stroke-width:2px;
classDef neutral fill:#f7f8f5,stroke:#94a29b,color:#17211f;
class extraction,index,matches local;
class embedding,search,language external;
class document,query,answer neutral;
The complete document is not sent to the language model. Ayunis Core first finds the passages relevant to the question. Only those excerpts and the question are then transmitted to the language model.
The embedding model is required both when a document is added and for each subsequent question. This means the question text is also transmitted to the approved embedding model when searching. Document uploads and document analysis are unavailable without an approved embedding model.
Which settings change the data flow?
Section titled “Which settings change the data flow?”| Setting | Who controls it? | Effect |
|---|---|---|
| Model approval | Administrators | No model is active immediately after setup. A provider and individual models only become available after approval. Chat requires a language model, while document analysis requires an embedding model. If a model is disabled, existing conversations use another approved model. |
| Anonymous mode | Users when starting a chat; enforceable by administrators | Personal data is detected on Ayunis infrastructure and replaced with placeholders before the model call. |
| Knowledge collection | Team or skill | Documents and websites are prepared for search at Ayunis. Only relevant passages are sent to the language model; the question text is also processed by the embedding model. |
| External integration (MCP) | Administrators | Connected specialist systems, such as document management or council information systems, receive the data required for the respective call. This creates an additional data flow to the connected system. |
For more answers, see the data protection FAQ.
Important distinctions
Section titled “Important distinctions”- Storage in Germany does not mean that every processing step takes place only in Germany. Some models operate in other EU countries, such as Mistral in France.
- Anonymous mode cannot guarantee detection of every piece of personal information. It substantially reduces risk but does not replace organizational rules or careful review.
- Data flows from external integrations must be assessed individually. The data transmitted to a specialist system depends on the respective integration and its purpose.