The short version: we analyze, we don’t store
Your browser fetches your Gmail directly from Google. The messages you choose to triage are then sent to our server over an encrypted (HTTPS) connection, where AI analyzes them in memory to produce your triage results. We do not store the content of your messages in our database — it exists only for the moment it takes to analyze it, then it is discarded.
The following never reach our backend at all:
- Your Gmail access token (it stays in your browser’s memory only).
- Your Google password or sign-in credentials.
The following passes through our backend in memory to be analyzed, but is never stored:
- The subjects, bodies, snippets, and senders of the messages you choose to triage.
- The triage results returned to your browser.
What our backend does handle
Our backend runs the AI triage on your behalf and stores only the following (never your message content):
- AI triage (in memory only): when you run a scan, the selected messages are sent to our server, which calls OpenAI with our key to analyze them and returns the results to you. The message content is held in memory just long enough to analyze it and is not written to our database.
- Account data: username, email address, and your password stored as an Argon2id hash (never the password itself).
- Two-factor (optional): your TOTP secret and one-time recovery codes (stored hashed). These are account-security credentials, not message data.
- Session metadata: a signed session cookie with short idle and absolute lifetimes; we store a per-login nonce to enforce a single active session.
- Subscription status: trial/active state. Payments are handled by Stripe; we never see full card numbers.
Gmail access (optional, in your browser)
- When you connect Gmail, your browser performs Google sign-in directly using Authorization Code with PKCE — a public client with no secret on our servers.
- Access is read-only (
gmail.readonly) and session-only: we request no offline access and receive no refresh token. The short-lived access token lives only in your browser’s memory and is cleared on logout, idle timeout, or closing the tab.
- Messages are fetched directly from Google to your browser and converted to plain text. The ones you choose to triage are then sent to our server over HTTPS to be analyzed by AI, and are discarded right after — never stored.
- To fully revoke access at any time, use your Google Account permissions page.
OpenAI (AI triage on our backend)
- The AI analysis is performed by OpenAI, called by our backend using our own API key — you do not need to bring or enter any key.
- When you run a scan, only the messages you selected are sent (browser → our server → OpenAI) to be analyzed. OpenAI processes them under our account and their terms; OpenAI does not use API data to train its models.
- Neither we nor OpenAI store your message content as part of this feature — it is used only to generate your triage results and then discarded.
Who you talk to directly
- Google — for Gmail sign-in and message retrieval (your browser ↔ Google).
- OpenAI — for triage analysis, called by our backend on your behalf (your browser ↔ our server ↔ OpenAI).
- Stripe — for subscription billing (handled on Stripe’s hosted pages).
Security
We use HTTPS everywhere (so your messages are encrypted in transit), Argon2id password hashing, optional TOTP two-factor with one-time recovery codes, login rate-limiting, short-lived single-active sessions, and a strict Content-Security-Policy with no third-party scripts. Message content is analyzed in memory only and is never written to our database.
Data retention & deletion
Because we never store your message content, there is no message data to delete — it is analyzed in memory and discarded immediately. Account, subscription, and security records are stored in Azure SQL in the United States. You may cancel anytime from the billing portal and contact us to delete your account.
Google API Services — Limited Use
Message Triage’s use and transfer of information received from Google APIs to any other
app will adhere to the
Google API Services User Data Policy,
including the Limited Use requirements. Specifically:
- We use Google user data only to provide the inbox-triage features you see in the app.
- We do not sell Google user data or share it with data brokers or advertisers.
- We do not use Google user data for advertising of any kind.
- We do not allow humans (including our staff) to read your message content or its AI-derived summaries, except where you give explicit consent, for security, or to comply with law.
- We do not use, and contractually prohibit our AI provider from using, your Google user data to train or improve generalized AI/ML models.