Skip to content

Legal

Subprocessors and Data Details

Effective Date: October 23, 2026

BabelBot uses the subprocessors below to provide its Discord bot, dashboard, and website. This page is the detailed layer of the BabelBot privacy notice. It also gives more information about data categories and retention. A provider can act as our processor or as an independent controller, depending on its service and legal duties. Read the Privacy Policy.

For data-processing agreement requests, transfer questions, or provider concerns, contact [email protected].

Current Subprocessors

Discord

  • Legal Entity: Discord Inc., United States
  • Purpose: Discord platform, bot gateway, OAuth login, server membership checks, messages, reactions, attachments, and account information required to operate BabelBot.
  • Data Categories: Discord account IDs, server IDs, channel IDs, message content processed in real time, attachment URLs, OAuth profile data, and permission information.
  • Hosting Region: United States and other regions where Discord operates.
  • Transfer Safeguard: Standard Contractual Clauses, or the EU-US Data Privacy Framework where Discord is certified.

OpenRouter

  • Legal Entity: OpenRouter, Inc., United States
  • Purpose: AI inference for translation, language detection, text extraction from images and other media, and speech-to-text transcription.
  • Data Categories: Message text, selected attachment content, voice audio for transcription, target language settings, and request metadata needed to return translations.
  • Hosting Region: OpenRouter routes AI translation, media processing, and language detection to Google (Gemini) through Google Vertex AI's EU endpoint. Translation retries and fallback requests use that same EU endpoint. Voice chat and voice note transcription use OpenAI (Whisper). Those providers receive the content OpenRouter sends them. BabelBot uses OpenRouter's standard gateway. The EU model endpoint does not guarantee that OpenRouter's gateway processing stays in the EU. Gateway processing and Whisper transcription can occur in the United States and other regions those providers use.
  • Transfer Safeguard: Standard Contractual Clauses or an adequacy decision for each transfer outside the European Economic Area, including the EU-US Data Privacy Framework where the provider is certified.

Railway

  • Legal Entity: Railway Corporation, United States
  • Purpose: Discord bot hosting, PostgreSQL hosting, and Redis hosting. Railway also provides logs and internal networking for these services.
  • Data Categories: Discord message content processed by the bot, recent context, Discord and dashboard identifiers, translation feedback submitted through Discord forms, server configuration, bridge records, billing state, authentication data, and operational logs.
  • Hosting Region: European Union (Netherlands).
  • Transfer Safeguard: Data stays in the EU region. Railway's data processing addendum includes Standard Contractual Clauses for access from outside the European Economic Area.

Cloudflare

  • Legal Entity: Cloudflare, Inc., United States
  • Purpose: HTTPS delivery and protection of the website and dashboard. Storage of encrypted PostgreSQL backups in Cloudflare R2.
  • Data Categories: IP address, requested URL, user agent, and security logs needed to deliver and protect the site. Encrypted PostgreSQL backups of the database records described in Data Details.
  • Hosting Region: Global network for website and dashboard delivery. PostgreSQL backups are stored in an R2 bucket with EU jurisdiction, in the European Union.
  • Transfer Safeguard: Standard Contractual Clauses, or the EU-US Data Privacy Framework where Cloudflare is certified.

Polar

  • Legal Entity: Polar Software, Inc., United States
  • Purpose: Checkout, subscription management, customer portal access, invoices, tax handling, payment records, and billing webhooks.
  • Data Categories: Billing identifiers, customer records, subscription status, payment metadata, invoice data, tax records, and customer portal events.
  • Hosting Region: European Union and other regions used for payment processing.
  • Transfer Safeguard: Standard Contractual Clauses or an adequacy decision when Polar processes payment data outside the European Economic Area.

Resend

  • Legal Entity: Plus Five Five, Inc., United States
  • Purpose: Billing, account, and non-essential lifecycle emails for dashboard users and customers.
  • Data Categories: Email addresses, delivery metadata, and email content for billing, account, abandoned checkout, and review request messages.
  • Hosting Region: Ireland, European Union, for email sending. Resend stores customer data in the United States, including message content, delivery logs, webhook payloads, and account records.
  • Transfer Safeguard: Standard Contractual Clauses, or the EU-US Data Privacy Framework where Resend is certified, for the stored data.

Infrastructure We Operate Ourselves

Suurd Digital runs the services below on its own server in the Netherlands. No other company operates them, so they are not subprocessors.

Website and dashboard
The public website, the BabelBot dashboard, and their cookieless web analytics. Cloudflare delivers both sites, as described above.
SigNoz
Service monitoring that we host ourselves. SigNoz receives traces, logs, and metrics from the Discord bot. These records contain identifiers, timing, languages, providers, and results. They do not contain message text, translations, or transcripts.
Backup service
Makes one encrypted PostgreSQL backup each day and sends it to Cloudflare R2. See Retention Details for how long backups stay.

Data Details

These descriptions explain the main technical data groups. They support the summary in the Privacy Policy without listing internal database fields or infrastructure keys.

Messages and recent context
BabelBot can temporarily keep the current message and up to five earlier eligible messages from the same channel or thread. Context records can include limited message text, message and author IDs, and timestamps. They expire after up to 15 minutes or when newer messages replace them.
Attachments and media
BabelBot receives attachment URLs, file metadata, embeds, stickers, and other Discord media needed for enabled translation features. Relevant content can be sent to an AI provider. BabelBot does not keep attachment files in its primary application storage.
Live voice and voice notes
When voice translation is enabled, BabelBot sends the audio to OpenRouter for transcription. BabelBot does not keep the audio after the transcript comes back. The transcript is then handled like other message text.
Server settings and opt-outs
BabelBot stores server and channel IDs, language settings, enabled features, ignored user IDs, bridge settings, webhook configuration, and other settings selected by server administrators. BabelBot keeps these records while it remains in the server. They expire 180 days after BabelBot leaves. If BabelBot rejoins during that period, BabelBot keeps them while it remains in the server.
Dashboard setting history
Setting-change records can include the acting dashboard account ID or name, source, time, action, and safe before-and-after summaries. The summaries omit custom-word text, bot profile content, and bridge webhook credentials. The dashboard shows up to 500 successful entries from the last 90 days.
Dashboard accounts
Dashboard records can include Discord account details, email address, profile image, OAuth tokens, sessions, IP address, user agent, roles, access restrictions, and account-administration metadata.
Usage and billing
BabelBot stores translation totals, quota records, plan status, customer and subscription identifiers, billing events, and support records. Usage counters do not contain message text.
Translation feedback
When a member reports a translation from a translation embed in a Discord thread, BabelBot stores the submitted problem description, optional suggested correction, Discord and translation identifiers, locale, and timestamps. The database feedback record does not copy the original message or translated text. If configured, an optional private Discord support webhook receives the feedback, any correction, relevant identifiers, and a link to the translation. The link can let authorized maintainers open the Discord translation, subject to their server access.
Bridges and diagnostics
Bridge records connect source messages to translated copies so BabelBot can synchronize edits, deletions, replies, and reactions. Message sync records for bridges, replacements, and reply and thread translations contain Discord IDs, delivery state, and a short fingerprint of the message. They do not store message text or translations. Reply previews store the quoted author's name, a short quote, and a message link. BabelBot deletes a preview 30 days after the reply is delivered. Diagnostic records can include Discord, provider, model, outcome, timing, and error identifiers. Authorized diagnostic exports can contain current Discord message content, author data, attachment URLs, and related metadata.
Analytics and local storage
BabelBot self-hosts cookieless analytics and performance measurement for the website and dashboard. We do not send this analytics data to the analytics software vendor. Data can include page views, interactions, referrers, browser or device category, approximate location, and performance information. Cookies and browser storage support authentication, locale, interface preferences, and onboarding state. BabelBot does not use advertising cookies.
Recovery backups and logs
Recovery backups contain the PostgreSQL database: server settings and setting history, billing and usage records, bridge and message sync records, translation feedback, saved target languages, and dashboard accounts and sessions. Operational logs can contain request metadata, Discord identifiers, provider results, and error information.

Retention Details

Data groupCurrent retention
Recent message contextKept for up to 15 minutes.
Message sync recordsBabelBot keeps message sync records for bridges, replacements, and reply and thread translations. Each record stores Discord IDs, delivery state, and a short fingerprint of the message. The fingerprint shows if the message changed. Message sync records do not store message text or translations. BabelBot deletes the sync record of a reply or thread translation 30 days after it posts that translation. New bridge and replacement records have no age-based expiry. Existing Redis bridge records keep their original expiry, normally 30 days after creation. Reply previews store the quoted author's name, a short quote, and a message link. BabelBot deletes a preview 30 days after the reply is delivered.
Recent translation recordsA 48-hour history. The records expire after 72 hours without new activity.
Daily usage aggregates180 days after the last update.
Translation feedbackThe database record is scheduled for deletion 90 days after submission. Copies in internal support tools follow the retention rules for those tools.
Accounting recordsAt least seven years where Dutch tax law requires it.
Monthly usage totals13 calendar months after the recorded month ends.
Saved target language180 days after the member last sets or uses it.
Server setup and billing recordsKept while BabelBot remains in the server. They expire 180 days after BabelBot leaves. Rejoining during that period removes this expiry.
Dashboard setting historyThe dashboard shows up to 500 successful entries from the last 90 days. BabelBot deletes the underlying record after 90 days.
Email limitsEmail event records expire after 400 days. Monthly abandoned-checkout email limits expire 62 days after the recorded month ends.
Sign-in storageBabelBot uses the expiry supplied by the sign-in service. If that expiry is missing or invalid, the record expires after 30 days.
Removal tasksRecords used to finish removing deleted channels and webhooks expire after 30 days. Translation thread deletion records expire 365 days after the scheduled deletion time.
Admin-requested troubleshooting filesBabelBot deletes an admin-requested troubleshooting file 30 days after the export, or 90 days after the related support request closes, whichever is later.
Recovery backupsA backup service on our own infrastructure makes one encrypted PostgreSQL backup each day. It stores the backup in Cloudflare R2, in a bucket with EU jurisdiction. BabelBot keeps each backup for 90 days and then deletes it. Deleting data from the live service does not delete the same data from existing backups. That data remains until the backup expires. BabelBot uses backups only to restore the service.
Dashboard accounts and sessionsKept while the account remains active or while needed for security, fraud prevention, recovery, support, billing, and legal duties. Expired sessions can be removed earlier.
Operational logsTraces and logs are kept for 15 days. Metrics are kept for one month.

Changes to This List

We update this page when our subprocessors or data details change. We add a dated row to the change history below for each change.

DateChange
October 23, 2026BabelBot no longer records install source, setup milestones, first payment or active-server events for measurement. We removed that section and its retention period.
October 20, 2026We no longer update this page 30 days before a new subprocessor starts. We no longer send emails about new subprocessors. We now update this page when the list changes.
October 19, 2026BabelBot no longer stores cancellation reasons. Polar keeps the reason and comment you give when you cancel a subscription.
October 17, 2026Cloudflare now also stores encrypted PostgreSQL backups in the European Union. Railway no longer stores backups. BabelBot no longer backs up Redis. We removed Discord Analytics. We added the section about infrastructure we operate ourselves.