EU-resident configuration
How to configure an assistant so speech-to-text, the language model and text-to-speech all process inside the EU.
This page is a configuration guide: how to set up an assistant whose speech-to-text, language model and text-to-speech all process inside the EU.
It deliberately no longer states where each provider processes, how long they retain data, or on what legal basis a transfer takes place. Those statements changed whenever a provider changed their terms, and keeping them accurate across three separate places did not work: some of them were wrong for months. They now live in one place, and this page links to it.
Where the compliance statements live
Our data-residency position, the sub-processor list with each provider's processing location and transfer basis, the retention periods and the Data Processing Agreement are all in the VoiceDock Trust Center.
The public documents are readable there directly. The confidential ones, including the DPA, the security overview and the full sub-processor annex, are released on request once we have verified who is asking.
If you need to know what your own setup currently does, ask us: we can tell you per assistant which component processes where.
VoiceDock is the platform, Flireo B.V. is the company that operates it, and HMS Sovereign is the orchestration technology that runs your calls. See VoiceDock, Flireo & HMS Sovereign for how the three relate.
What is fixed and what you choose
The platform layer is EU-resident in every configuration: real-time voice processing runs on dedicated servers in Germany, and platform data is stored in an EU cloud region.
The AI providers are your choice. Speech-to-text, the language model and text-to-speech each call an external provider unless you use our on-premise models, and providers differ in where they process. The setup below keeps all three inside the EU.
Data flow
flowchart LR
A[Caller] --> B[VoiceDock<br/>Nuremberg, DE]
B --> C[On-premise STT<br/>Nuremberg, DE]
C --> D[Mistral LLM<br/>EU]
D --> E[On-premise TTS<br/>Nuremberg, DE]
E --> B
B --> A
style A fill:#1e40af,color:#fff
style B fill:#f97316,color:#fff
style C fill:#f97316,color:#fff
style D fill:#8b5cf6,color:#fff
style E fill:#f97316,color:#fffThis is the flow for the setup below. Configure a different provider for any of the three steps and call content goes wherever that provider processes it.
Setup
Step 1: Enable on-premise speech-to-text
On-premise STT runs on our own hardware in Germany and requires has_local_models_access on your organisation. Contact support@flireo.com to have it enabled; there is no API key to configure.
If you prefer an external speech-to-text provider, add its key the same way as Step 2.
Step 2: Add a Mistral API key
curl -X POST https://api.hmsovereign.com/api/v1/byok \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider": "mistral",
"api_key": "YOUR_MISTRAL_KEY"
}'Get a key at mistral.ai.
Supplying your own key changes whose account is billed, and puts that provider's retention and training settings under your control. It does not change who the processor is: we still route the audio and make the request from our own infrastructure, so the provider remains our sub-processor.
Step 3: Configure your assistant
curl -X POST https://api.hmsovereign.com/api/v1/assistants \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "EU-Resident Assistant",
"stt_config": {
"provider": "local",
"model": "medium",
"language": "en"
},
"llm_config": {
"provider": "mistral",
"model": "mistral-medium-latest",
"temperature": 0.7,
"messages": [{"role": "system", "content": "Your system prompt here"}]
},
"tts_config": {
"provider": "local"
}
}'Step 4: Verify
Place a call to your assistant's number. With this configuration, speech-to-text and text-to-speech run on our own EU infrastructure and the language model runs at Mistral in the EU.
Storing less in the first place
Residency is one lever. Not storing the content at all is the other, and it is often the stronger answer.
GDPR Mode stops transcripts, recordings, summaries and analysis from being stored. Recording consent requires the caller to press 1 before any recording or AI processing begins. Both are documented with their configuration fields in Privacy & Compliance.
On-premise deployment
For organisations that cannot accept any external dependency, the full stack can run on hardware you own. Scoping that is a conversation rather than a configuration: contact support@flireo.com.
Related
- Privacy & Compliance — GDPR Mode and recording consent, with configuration fields
- BYOK Setup — bringing your own provider keys
- VoiceDock Trust Center — residency, sub-processors, retention and the DPA