Contact: hello@tryswell.co Swell (San Gregorio Labs Inc.) uses the following third-party service providers (“subprocessors”) to operate the Service. This list applies to personal data and call content processed on our behalf. We review subprocessors for security and privacy practices appropriate to their role. Our standard DPA is available to download directly. Enterprise customers requiring notification of subprocessor changes should contact hello@tryswell.co.
Infrastructure and platform
Vercel
- Purpose: REST API hosting, auth proxy, transcript purge cron, Sparkle appcast
- Data processed: Account tokens (transit), API metadata, session sync
- Location: United States
- Security documentation: vercel.com/security
Railway
- Purpose: WebSocket coaching relay at
coach.tryswell.co(real-time audio ingress, speech-to-text, and AI coaching) - Data processed: Audio streams (transit), transcript text, session metadata, coaching state
- Location: United States
- Security documentation: Railway Trust Center
Convex
- Purpose: Database (profiles, session storage)
- Data processed: Email, user ID, transcripts, coaching data (temporary)
- Location: United States
- Security documentation: convex.dev/security
Upstash
- Purpose: Distributed rate limiting (auth and LLM-cost paths)
- Data processed: User IDs, rate-limit counters (metadata)
- Location: United States or EU (region-dependent)
- Security documentation: upstash.com/trust
Authentication
WorkOS
- Purpose: User authentication (Google OAuth via AuthKit)
- Data processed: Email, user identifier, auth tokens
- Location: United States
- Security documentation: workos.com/security
AI and speech
Deepgram
- Purpose: Speech-to-text
- Data processed: Audio stream (transit); transcript text
- Location: United States
- Model training: Swell is not opted into Deepgram’s model-improvement programs. Customer content is not used to train Deepgram base models (Deepgram trust & privacy)
- Security documentation: Deepgram Trust and Security
OpenAI
- Purpose: Moment detection via OpenAI Realtime API (direct connection; not routed through Vercel AI Gateway)
- Data processed: Mixed call audio for moment detection (transit); related session context
- Location: United States
- Model training: OpenAI API data is not used to train OpenAI models (OpenAI data controls)
- Vendor log retention: OpenAI may keep Realtime session content in abuse-monitoring logs for up to 30 days. Swell uses a standard OpenAI API account and has not purchased OpenAI Zero Data Retention. OpenAI does not store ongoing coaching session state for this API beyond the live request.
- OpenAI Traces dashboard: Disabled in Swell’s application code. This does not change abuse-monitoring log retention above.
- Security documentation: openai.com/security
Vercel AI Gateway
- Purpose: LLM request routing for flash tip decide/author and ledger ticks (coaching relay → Gateway → Anthropic or Google)
- Data processed: Transcript text and coaching context (transit)
- Location: United States
- Zero data retention:
zeroDataRetention: trueenforced on every Gateway coaching request in application code - Security documentation: vercel.com/docs/ai-gateway
Anthropic
- Purpose: Flash tip authoring (Claude Haiku)
- Access: Invoked only via Vercel AI Gateway; Swell does not call Anthropic directly
- Data processed: Transcript text, coaching context (transit)
- Location: United States
- Model training: Anthropic commercial/API terms prohibit training on customer content (Anthropic commercial terms)
- Zero data retention: Every Anthropic request is routed through Vercel AI Gateway with zero data retention enabled in application code
- Security documentation: anthropic.com/trust
Google (Gemini)
- Purpose: Flash tip decision and ledger tick (Gemini)
- Access: Invoked only via Vercel AI Gateway; Swell does not call Google AI APIs directly from the Mac
- Data processed: Transcript text and coaching context (transit)
- Location: United States
- Model training / retention: Requests are routed through Vercel AI Gateway with
zeroDataRetention: truein application code. Decide chooses silence vs flash and does not write tip copy. - Security documentation: Google Cloud security
Deepgram, OpenAI, Vercel AI Gateway, Anthropic, and Google (Gemini) are invoked server-side only from Swell’s coaching relay on Railway. Flash-tip decide/author and ledger-tick requests route through Vercel AI Gateway before reaching Anthropic or Google. The Mac app does not connect directly to these providers or hold their API keys.
Observability
Sentry
- Purpose: Crash and error reporting (Mac app, web API, coaching relay)
- Data processed: Stack traces, app version, error context; PII disabled by default; sensitive fields scrubbed before upload
- Location: United States
- Security documentation: sentry.io/security
Distribution (Apple)
Apple
- Purpose: Code signing, notarization, Gatekeeper
- Data processed: Binaries submitted for notarization
- Security documentation: Apple Platform Security
Data flow summary
From the user’s Mac:coach.tryswell.co(coaching WebSocket): split mic/system PCM audio streams and coaching events (Railway)api.tryswell.co(auth, sessions, profile, appcast): Vercel*.workos.com(OAuth sign-in): default system browser during login- Sentry (crashes): from Mac
- Deepgram (speech-to-text): invoked from Railway
- OpenAI (moment detection): invoked from Railway
- Vercel AI Gateway → Anthropic (flash tip authoring): invoked from Railway
- Vercel AI Gateway → Google Gemini (flash tip decision and ledger tick): invoked from Railway
- Convex (storage): via Swell backend with JWT-bound reads and per-service sync secrets
- Sentry (errors): from Vercel web and Railway coaching relay