Multi-Tenant Isolation
Row-Level Security (RLS) on every customer-data table. Default DENY — explicit grants only. Tenant-isolation is verified by automated test-suite running on every PR.
Trust Center
Mignuti Chatbot is built for B2B from day one — every architectural decision starts with "would a DSGVO-officer sign this off?". Below: how the system works, where the bytes live, who else touches them, and the legal scaffolding around it.
Compliant
DSGVO / GDPR
Art. 28 DPA available
Compliant
EU-AI-Act
Article 50 disclosure
Roadmap
ISO 27001
Audit planned
Roadmap
SOC 2 Type II
Audit 2027
From the moment a visitor types a question until the answer reaches them — drawn to scale.
Subscribe to changes via your Compliance settings — you'll get 30 days notice before any change takes effect.
| Processor | Purpose | Region | Transfer | DPA |
|---|---|---|---|---|
| netcup GmbH (Germany) | Server hosting (self-hosted Supabase stack: DB, Auth, Edge Functions, Storage) | Germany | Intra-EU | View DPA |
| Anthropic PBC | LLM inference (Claude Haiku 4.5) | USA | EU-SCCs 2021/914 | View DPA |
| OpenAI (USA) | Embeddings (text-embedding-3-small) — query & document vectors, PII-redacted | USA | EU-SCCs 2021/914 | View DPA |
| Microsoft Azure OpenAI | LLM fallback (GPT-4o-mini) | Sweden Central — EU data zone | Intra-EU | View DPA |
| Stripe | Payment processing | Ireland (Stripe Payments Europe Ltd.) | Intra-EU | View DPA |
| Cloudflare | CDN + DDoS protection (widget delivery) | Global anycast, EU PoPs | SCCs + EU IDTA | View DPA |
| Resend | Transactional email (invites, notifications, magic links, form submissions) | USA | EU SCCs 2021/914 | View DPA |
| Sentry | Error monitoring (stack traces, anonymized user IDs) | EU (Frankfurt) | Intra-EU | View DPA |
| Plausible Analytics | Marketing-site analytics (page views, no cookies) | EU (Germany) | Intra-EU | View DPA |
The pillars we hold ourselves to — verified by automated tests on every change and ongoing internal security reviews.
Row-Level Security (RLS) on every customer-data table. Default DENY — explicit grants only. Tenant-isolation is verified by automated test-suite running on every PR.
Database, file storage and the vector database run in the EU (our own server in Germany). Embedding inference runs at OpenAI (USA) and the primary LLM inference at Anthropic PBC (USA) — both safeguarded by the EU SCCs 2021/914, with personal data automatically redacted before transfer (PII redaction). The optional fallback LLM runs in the Azure EU data zone (Sweden Central).
TLS 1.3 on every connection, bcrypt for widget secrets. JWT tokens are HS256-signed and bound to the originating IP-hash.
User-content is enveloped in <source> markers, control-characters are stripped, and 12 known injection patterns are blocked at the Edge layer before they reach the LLM.
On by default: incoming messages are scanned rule-based for personal data and redacted before the LLM call — email, phone, IBAN, credit card, ID-card and tax numbers, IP addresses; street addresses and names following a salutation are matched by pattern. Free-standing names without a salutation are not detected by the rules.
Every privileged action writes an append-only entry. Retention 2 years operational, 7 years for compliance-relevant events. Read-only via service-role.
Article 50 disclosure shown on every chat session — unblockable, contractually fixed. Bot identifies as AI in the welcome line and in the persistent footer banner.
End-users can delete their conversation history without an account via a per-session token. Org owners get one-click data exports and a 30-day cooling-off period before account deletion.
Layered defence against automated abuse: rate-limiting per session, IP and project key plus hard per-plan usage caps (protection against cost-driving request flooding). Prompt-injection and jailbreak attempts are detected and flagged; the bot reveals neither its instructions nor another project’s data, and every link in a reply is validated against the sources actually on file.
We store as little as possible: visitor IPs and browser identifiers are kept only as a one-way hash, never in the clear. Chat histories are anonymised automatically and deleted once the retention period ends.
All current versions. Older versions on request.
Data Processing Addendum (DPA)
Art. 28 GDPR · current version
Privacy Policy
EN · DE
Terms of Service
B2B · liability cap 12mo fees
EU-AI-Act Disclosure
Article 50 obligations
Subprocessor list (canonical)
Updated within 24h of changes
VPAT 2.5 / Accessibility Statement
WCAG 2.2 AA · EAA 2025
The ten questions every DPO and CISO asks before signing.
Postgres, file storage and the vector database: our own server in Germany (netcup). Embedding inference (text-embedding-3-small) runs at OpenAI (USA) and the primary LLM (Claude Haiku 4.5) at Anthropic PBC (USA) — both safeguarded by the EU SCCs 2021/914, with personal data automatically redacted before transfer. Fallback LLM: Azure Sweden Central. Widget delivery: Cloudflare anycast with EU PoPs. All stored platform data remains in the EU.
No. Anthropic, OpenAI and Azure OpenAI all have explicit no-training-on-API-data terms. Our DPA cascades these obligations. Provider-side retention of inputs and outputs follows the Anthropic Commercial Terms; personal data is redacted before any LLM call.
Postgres Row-Level-Security on every customer table, Default DENY. Tenant isolation is verified by an automated test-suite running on every PR (RLS-tenant-isolation.test.ts). The pgvector retrieval RPC is session-scoped — a stolen JWT cannot query embeddings outside its bound project_id.
Rule-based redaction removes emails, phone numbers, IBAN, credit-card numbers, German ID-card and tax numbers and IP addresses from logs and embeddings BEFORE they reach the LLM; street addresses and names following a salutation are matched by pattern. End-users are warned in the permanent Article 50 disclosure banner (contractually fixed in our TOS) not to share sensitive data.
Notification within 72 hours per Art. 33 GDPR to your DPO email on file. Service-status updates on /status (5-minute sampling). Post-mortem published within 14 days for any P1 incident affecting customer data.
User inputs are wrapped in <source> sentinel tags and 12 known injection patterns are
blocked at the Edge layer. Output is validated against a canary token — if the LLM echoes our system prompt,
the response is blocked client-side. Prompt-injection-test.ts runs on every PR with 8 attack vectors.
On the roadmap: an ISO 27001 audit, then SOC 2 Type II (targeted 2027). Today we operate under TOMs aligned to those frameworks but without the external-auditor stamp. For early-stage customers we accept this; for regulated industries, please reach out before signing.
Yes, Pro and Agency plans. Our standard DPA is at /en/legal/dpa and matches Art. 28 GDPR + EU SCCs. For your custom form, mail it to media@mignuti.com — we sign within one business day on weekdays.
Self-service in the dashboard: 1-click data-export (signed-URL, 60s validity) and account-deletion with 30-day grace period. End-users can delete their conversation history without logging in via a per-session delete-token shown in the widget footer — no login required.
Contractually: 90-day notice + final data export. Practically: every customer can self-export PDFs + conversations + Q&A pairs as JSON/CSV at any time, no support call needed. Source code escrow available on Enterprise plans.
We welcome responsible reports. If you find a vulnerability, please tell us confidentially first — before you publish it. We acknowledge receipt within one business day on weekdays, keep you updated, and credit you as the finder if you’d like.
Please no automated mass-testing against production and no access to other customers’ data — when in doubt, check with us first.
Reply within 1 business day on weekdays.
media@mignuti.com