Subprocessors
Last updated: 2026-09-17 (draft) · Version: 0.11 (privacidad remediation round 2: fixed Moonshot/OpenRouter Region cells against the code registry; added a "Trains on prompts?" column to the Voice/audio/transcription table; corrected the AI-providers changelog wording so it no longer itself makes the registry-consultation claim it warns against; v0.10 already added the per-provider training column and OpenAI/Whisper)
CINTA engages the third-party subprocessors below to provide the Service. The active set depends on your deployment's configuration: a provider only processes data when its API key/integration is enabled. We require each subprocessor to protect data under terms no less protective than our DPA and Privacy Policy.
Draft v0.10 — pending review by licensed counsel before production use. This list is verified against the live routing/billing code as of 2026-09-17; confirm each entity's legal name + processing region and keep it current (the DPA commits us to notice of new subprocessors). Do not list a provider we do not actually use (Constitution §VI: transparency).
AI / model providers (inference)
CINTA routes inference locally on capable hardware (no subprocessor) or to a cloud provider when local isn't available or cloud is clearly better (Rule #1). Not every provider below refuses to train on your prompts. The "Trains on prompts?" column is verified per-provider, not assumed, against each provider's own published policy — see src/lib/privacy/provider-privacy.ts for the sourced note and confidence tag (ALTA = provider's own policy text found directly; MEDIA = policy is plan/tier-dependent and CINTA's live account tier was not re-verified). A Yes means: do not route data you need kept out of a third party's training set through that provider.
| Provider | Role | Data processed | Region | Trains on prompts? |
|---|---|---|---|---|
| Anthropic (Claude) | LLM inference (primary brain) | Prompts/content for the turn | US | No (ALTA) |
| OpenRouter (DeepSeek free route) | LLM inference (default execution tier) | Prompts/content | varies by upstream | Yes (ALTA) — free-tier route, logged/trained by the upstream provider |
| NVIDIA NIM | LLM inference | Prompts/content | US | Yes (ALTA) — free hosted NIM endpoint |
| Moonshot (Kimi) | LLM inference | Prompts/content | CN | Yes (ALTA) — no documented opt-out |
| Groq | LLM inference (fast fallback) | Prompts/content | US | No (ALTA) |
| Google (Gemini) | LLM inference + embeddings | Prompts/content | US/Global | Yes (MEDIA) — conservative default for CINTA's unverified free-tier/AI-Studio key; paid Vertex/API keys do not train |
| OpenAI | LLM inference (fallback) | Prompts/content | US | No (ALTA) |
| Cerebras | LLM inference (fast free tier) | Prompts/content | US | No (ALTA) |
| Mistral | LLM inference | Prompts/content | EU | No (MEDIA) — paid La Plateforme tier; the free "Experiment" tier trains by default |
| GLM (Z.ai) | LLM inference | Prompts/content | Singapore (intl.) / CN | No (MEDIA) — international API only; mainland Zhipu terms differ |
| GitHub Models (Azure) | LLM inference — retired 2026-08-24 (HTTP 410 measured live; code still lists it in the cascade, permanently circuit-broken, not called) | N/A — inactive | US (Azure) | No (ALTA, not currently called) |
OmniRoute (self-hosted gateway, 127.0.0.1:20128) | Proxies to ~1.5k catalog models when the cascade above falls through | Prompts/content, forwarded to whichever third-party model the gateway resolves that request to (not individually audited per-provider) | Local gateway → varies | Yes (ALTA, conservative default) — the gateway itself retains nothing, but the downstream provider it proxies to is not resolved back to this table per-request, so it is treated as training until that is wired |
| Local models (Ollama, on-device) | LLM inference | Stays on the user's hardware | On-device | No (ALTA) — no network egress |
src/lib/privacy/provider-privacy.ts is the source of truth for the column above and exposes isNoTrainProvider() for callers that need a no-train gate. As of this writing that gate has no caller in llm-router.ts (0 hits for trainsOnData/no-train/zdr in that file) — routing does not yet prefer or exclude providers by training policy; it is declarative data only. Do not describe it as an active routing filter until it is wired. tests/unit/subprocessors-lists-all-providers.test.mjs fails the suite if this table's provider list, or its "Trains on prompts?" column, falls out of sync with that code-driven registry.
Voice, audio & transcription
Meeting audio is more sensitive than a text prompt, so it gets the same per-provider "Trains on prompts?" discipline as the AI-providers table above — verified against each provider's own published policy (2026-09-17), not assumed. A Yes means: do not route audio/voice data you need kept out of a third party's training set through that provider.
| Provider | Role | Data processed | Region | Trains on prompts? |
|---|---|---|---|---|
| Deepgram | Speech-to-text for real meetings recorded through the meeting bot | Meeting audio | US | Yes (ALTA) — hosted/self-serve API requests are enrolled in the Model Improvement Partnership Program by default; audio is retained and used to improve models unless mip_opt_out=true is set per request. developers.deepgram.com/docs/the-deepgram-model-improvement-partnership-program |
| OpenAI (Whisper) | Speech-to-text for real meetings (src/lib/meetings/transcribe/openai-whisper.ts, api.openai.com/v1/audio/transcriptions) | Meeting audio | US | No (ALTA) — same OpenAI API data-usage policy as the LLM row above (not used to train since 2023-03-01 unless explicit opt-in); this is OpenAI's general API policy, not audio-specific language. openai.com/policies/how-your-data-is-used-to-improve-model-performance |
| ElevenLabs | Text-to-speech (voice replies), when ELEVENLABS_API_KEY is configured | Text to synthesize | US | Yes (ALTA) — "We may process your Personal Data to research, develop, train and/or otherwise improve our AI models"; account-level opt-out only applies going forward, not retroactively. elevenlabs.io/privacy-policy |
| Fish Audio | Text-to-speech / voice cloning (when FISH_AUDIO_API_KEY is configured) | Text to synthesize, voice reference audio | Global | Yes (ALTA) — Terms of Use: "Usage Data and Content may be used to develop, train, or enhance artificial intelligence or machine learning models"; no opt-out documented. fish.audio/terms/ |
| faster-whisper (local) | Speech-to-text, on-device fallback | Stays on the user's hardware | On-device | No (ALTA) — no network egress |
| Recall.ai | Meeting bot that joins calls and captures audio/video for transcription | Meeting audio/video | US | No (ALTA) — "Recall.ai does not use Customer Data for the purpose of training or fine-tuning machine learning or artificial intelligence models." recall.ai/data-processing-agreement |
Search / research
| Provider | Role | Data processed | Region |
|---|---|---|---|
| Brave Search | Web search (when enabled) | Search queries | US/Global |
| Perplexity | Deep research (when enabled) | Research queries | US |
Payments & messaging
| Provider | Role | Data processed | Region |
|---|---|---|---|
| Polar | Merchant of Record / billing (primary) | Billing identifiers, subscription/payment events | US/EU |
| Stripe | Payment processing (fallback, used only if a US entity is incorporated) | Billing identifiers, subscription/payment events | US/Global |
| Resend | Transactional email (Auth.js magic-link sign-in, when enabled) | Recipient email address, sign-in link | US |
| Telegram (Bot API) | Owner/operator notifications (alerts, escalations) | Notification content, chat identifiers | Global |
Infrastructure, storage & observability
| Provider | Role | Data processed | Region |
|---|---|---|---|
| Self-hosted infrastructure (EU/US region VPS — provider to be confirmed at go-live) | Application hosting / edge TLS | All Service data in transit/at rest | EU/US |
| Self-hosted PostgreSQL (same region) | Primary database | All persisted Service data | EU/US |
| Sentry | Error tracking (when SENTRY_DSN set) | Error diagnostics, may include request metadata | US/EU |
| Langfuse | LLM tracing (when enabled) | Prompt/response traces, cost/latency | EU/US (self-host option) |
Security / bot protection
| Provider | Role | Data processed | Region |
|---|---|---|---|
| Cloudflare Turnstile | CAPTCHA on signup, anti-abuse — default OFF (CINTA_FEATURE_TURNSTILE flag; inert until the owner enables it and sets TURNSTILE_SECRET_KEY) | Challenge token, IP address, when enabled | Global |
Customer-directed integrations (not CINTA subprocessors)
When you connect a provider via OAuth (e.g. Google Workspace, GitHub, messaging or CRM tools), you direct CINTA to access that service on your behalf under the scopes you grant. Those providers act under your relationship with them, not as CINTA's subprocessors. Tokens are stored encrypted (AES-256-GCM) and revocable at any time.
Changes
We update this page when we add or replace a subprocessor and, per the DPA, provide reasonable notice and an opportunity to object for affected customers.
Draft v0.10 — pending review by licensed counsel before production use. Last updated: 2026-09-17 (draft).
