QuietMail

Legal · Privacy Policy

Privacy Policy

Last updated · September 22, 2026

1. Overview

QuietMail is a subscription service that filters unwanted email out of Gmail inboxes you connect — and inboxes on the other mail services described in section 8 — using rules you configure. This page describes exactly what data QuietMail accesses, how it flows through the system, what is stored, and how to delete it. It is written to match how the product actually works.

2. Google user data we access

When you connect a Gmail inbox, QuietMail requests the https://www.googleapis.com/auth/gmail.modify scope (plus your email address to identify the inbox). We use exactly these capabilities of that scope, each for one reason:

  • Read messages — to filter mail we must read it. QuietMail lists unread messages in your inbox and Spam folder from the last 30 days (at most 25 per run) and fetches each new one's headers (From, Subject, Date) and body text, truncated to the first 12,000 characters. It also reads a few signals Gmail attaches to the message: its Gmail category labels (such as Promotions or Updates) and whether it carries a List-Unsubscribe or bulk-mail header.
  • Modify labels — to carry out the action you chose: "mark as read" removes the UNREAD label; "move to spam" adds the SPAM label and removes INBOX. For senders on your whitelist, QuietMail also makes two label changes in your favour: a whitelisted message Gmail put in Spam is rescued to the inbox (SPAM removed, INBOX and CATEGORY_PERSONAL added), and a whitelisted message Gmail sorted into the Promotions, Updates, Social or Forums tab is moved to Primary (that category label removed, CATEGORY_PERSONAL added). On paid plans, a message in Spam that the AI judges both wanted and legitimate is returned to the inbox the same way. The optional "tidy old unread" cleanup also removes the UNREAD label from unread inbox mail older than 30 days. The optional "Mark checked messages" switch (section 3), if you turn it on, also creates a label named "QuietMail/Checked" in your mailbox the first time it is needed and adds it to each message QuietMail has finished checking without finding a prompt injection attack.
  • Trash messages — only if you chose "move to trash" as your action. Trashed messages remain recoverable in Gmail for about 30 days; QuietMail never permanently deletes mail. The optional "Block prompt injection" switch (section 3), if you turn it on, also moves the messages it detects to trash, whatever action you chose.
  • Mailbox change notifications — QuietMail registers a Gmail push watch so filtering runs promptly when new mail arrives. These notifications from Google contain only your email address and a history id — no message content.

QuietMail never sends email on your behalf, never reads your contacts, drafts, or attachments as files, and never touches mail outside the unread messages in your inbox and Spam folder (plus the specific messages it acts on).

3. How your email is processed, step by step

  1. An unread message arrives in a connected inbox. Filtering runs on a schedule (about every 5 minutes) and, for a Gmail inbox, when Google's push notification nudges us. Mailboxes on other mail services (section 8) are checked on the schedule only.
  2. QuietMail fetches the message's headers, Gmail signals, and body (it reads at most the first 12,000 characters) from the Gmail API over TLS — or, for a mailbox on another mail service, from that service's own API, as section 8 describes.
  3. Our own code decides first whether an AI model is needed at all: whitelisted senders are always kept (and rescued from Spam or moved to Primary if Gmail had put them elsewhere), blacklisted senders always get your chosen action, a reply in a conversation you have written in yourself is otherwise kept, and if the sender is in the inbox's sender memo (see section 4) the previous decision for that sender is reused. In those cases no message content leaves our servers. On the Free plan, mail in your inbox (every Gmail tab) is sent to an AI model, within at most 80 AI calls per calendar month (one call per message sent); mail in Spam is never sent to one and stops here. On paid plans, unread mail in Spam is sent as well, so that wanted mail can be taken out of it.
  4. Otherwise the sender, recipient and reply-to addresses, subject, date, up to the first 1,500 characters of the body, and the Gmail signals above (plus whether the message is a reply or was sent automatically) are sent to our primary AI subprocessor (TypeSafe AI, model "jev") together with your filtering rules. If you have turned on the "Block prompt injection" switch, up to 500 characters of text hidden in the message's HTML are also sent to TypeSafe AI for that check. The model is given no tools and no access to your mailbox, and it produces no text: its only output is a fixed set of typed probabilities (how likely the message is to match your rules and, where that question is asked, what category it falls in).
  5. If TypeSafe AI is temporarily unavailable when a message has to be classified, its sender, subject, date, message ids and up to the first 12,000 characters of its body are sent instead to our other AI subprocessor (OpenAI, gpt-4o-mini) with your rules, solely to answer one question for that message. That model is likewise given no tools and no access to your mailbox; its only possible output is a single yes/no answer ("does this message match the user's rules?") in a strict JSON schema. This fallback is the only case in which OpenAI receives a message from your mailbox. Every message is classified automatically — never by a person.
  6. Our own deterministic code — never the AI — then performs the one action you configured (mark read, move to spam, or trash), or does nothing if the message didn't match. The one exception is the optional "Block prompt injection" switch: while you have it on, a message it detects is moved to trash (recoverable, like any trashed message) whatever action you configured. If you also turn on "Mark checked messages", a message that check has passed (and that QuietMail is not moving to spam or trash) is given the "QuietMail/Checked" label before anything else is done to it, so an assistant you point at labelled mail only never reads a message before that check. For a message in Spam, the only thing QuietMail ever does is return it to the inbox.
  7. An audit log entry is written recording only the message's id, sender address, subject line, the probabilities the model returned (and a category, where that question is asked — by default it is not), which step and which of your rules (if any) decided, the decision, the action taken, how many tokens the classification used, and any error.

Message bodies are never stored in our database, never written to logs, and never used to train AI models.

Filtering starts right away. As soon as you connect an inbox, QuietMail classifies and acts on mail exactly as described above. Every action is listed in the Activity log and can be reversed there with "Undo".

Bodies exist in our systems only transiently, in memory, for the seconds a classification takes. If anything fails before an action is taken, QuietMail fails closed: no action is performed. Neither AI subprocessor trains on your data: per TypeSafe AI's privacy policy, TypeSafe will not train or fine-tune any AI or machine learning models on Input and will not disclose Input to any third party other than its service providers; per OpenAI's API terms, data sent to the OpenAI API is not used to train their models by default, and we have not opted in to any data sharing.

TypeSafe AI's services are hosted in the United States. Under its data processing addendum TypeSafe processes data only on our documented instructions, transfers from the EU and UK are covered by the EU Standard Contractual Clauses (Module 2, controller-to-processor) and the UK International Data Transfer Addendum, and TypeSafe must notify us of a security incident within 72 hours. Its privacy policy states that it retains personal data for as long as reasonably necessary to provide its services; classification requests contain no account identifiers beyond the message itself.

OpenAI may retain API inputs and outputs for up to 30 days for abuse and misuse monitoring, after which they are deleted unless retention is required by law or is reasonably necessary to protect OpenAI's services or others from harm; this data is not used for training. We do not use OpenAI's optional request-storage features, so classification requests are not otherwise persisted on OpenAI's side.

4. What we store, and how it's protected

Our database stores only:

  • Your account email address and optional display name (from sign-in).
  • For each connected inbox: its Gmail address and a Gmail OAuth refresh token encrypted with AES-256-GCM (a 256-bit key held only in our server environment; tokens are decrypted only in memory at run time and are never logged).
  • The audit log: for each processed message, its id, sender address, subject line, the probabilities returned by the model (and a category, where that question is asked — by default it is not), which step and rule decided, the decision, the action, token counts and any error — never message bodies.
  • A per-inbox sender memo: for each sender address, the last confident decision QuietMail's AI model made for it under your current rules, kept for at most 30 days. It lets mail from a sender that was already judged be handled the same way without sending it to an AI model again, and it is cleared whenever you publish changed rules, so senders are judged afresh. It holds no subject lines or bodies.
  • A list of already-processed Gmail message ids (bookkeeping so no message is classified twice).
  • Your filtering settings (presets, custom rules, whitelist, blacklist and chosen action).
  • Your support-chat history with our in-app assistant (see section 5).
  • Subscription state: Dodo Payments customer and subscription ids, plan, and status, plus, on the Free plan, a count of how many messages were analyzed by AI this month. Card details never touch our servers — Dodo Payments holds them.
  • Session and sign-in tokens, stored only as hashes.

The application runs on Vercel and the database is Neon Postgres; both encrypt data at rest, and all connections — to Google, TypeSafe AI, OpenAI, Dodo Payments, and between our own components — use TLS. Sessions use httpOnly secure cookies. Application logs never contain message bodies, tokens, or credentials.

5. Who we share data with

We never sell your data, never use it for advertising, and no human reads your message content in the ordinary course of operating the service. We share data only with the subprocessors needed to run QuietMail, each receiving only what its function requires:

  • Google — sign-in (OAuth) and the Gmail API itself.
  • TypeSafe AI — our primary classifier. Receives message metadata (sender, recipient and reply-to addresses, subject, date), up to the first 1,500 characters of the body, the Gmail signals listed in section 2, your filtering rules and, only while the "Block prompt injection" switch is on, up to 500 characters of text hidden in the message's HTML. It returns only typed probabilities (likelihood of matching your rules and, where asked, a category). It does not receive your account details or support-chat messages, and it does not train on the data.
  • OpenAI — our fallback classifier and the model behind the in-app support chat. Receives message metadata (sender, subject, date, message ids) and up to the first 12,000 characters of the body for the yes/no classification described above, but only for a message that has to be classified while TypeSafe AI is temporarily unavailable. It also receives the messages you type into the in-app support chat (which are also stored so the conversation has context). API data is not used for model training by default.
  • Dodo Payments — billing; our merchant of record for subscriptions, so it is the seller on your payment and collects and remits any sales tax or VAT due, and holds your payment details and email.
  • Vercel — application hosting.
  • Neon — Postgres database hosting.
  • Mailgun — sends transactional email such as sign-in links; receives your email address and the message we send you.

6. Retention & deletion

  • Disconnecting an inbox deletes the inbox record immediately, including its encrypted refresh token, its entire audit log, its sender memo, its processed-message bookkeeping, and any per-inbox settings.
  • Sender memo entries expire on their own after at most 30 days from the last decision for that sender, even if the inbox stays connected, and are deleted sooner whenever you publish changed rules.
  • Deleting your account (Settings → Delete account) cancels any active Dodo Payments subscription and deletes your user row — which cascades to all inboxes, encrypted tokens, audit logs, sender memos, settings, chat history, and sessions. Dodo Payments keeps the customer and payment records for the transactions it processed, because as merchant of record it is legally required to retain them; we cannot delete those on your behalf.
  • You can also revoke QuietMail's Gmail access at any time at myaccount.google.com/permissions; QuietMail then loses all access to that mailbox and will prompt you to reconnect or disconnect it.
  • Data listed in section 4 is kept while the associated inbox or account exists and is deleted as described above; we do not keep our own backups of message content, because we never store it.

7. Google API Limited Use disclosure

QuietMail'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. In particular, Gmail data is used only to provide the user-facing filtering feature described above, is never transferred except to the subprocessors listed in section 5 as necessary to provide that feature, is never used for advertising, and is never read by humans except with your explicit consent for support, when required for security purposes, or to comply with applicable law.

8. Mailboxes that are not on Gmail

Sections 2 and 7 are about Google data. QuietMail can also connect mailboxes on other mail services: a mailbox on a mail server that supports the JMAP standard and lets you approve access on its own sign-in page (for example a self-hosted mail server) and, where QuietMail offers them, Outlook.com and Microsoft 365 and Zoho Mail. Everything in this policy applies to those mailboxes in the same way as to Gmail, with the differences set out here.

  • How access is granted — always by signing in on your mail service's own page and approving access there (OAuth). QuietMail never asks for, receives, or stores your mailbox password or an app password, and cannot connect a mailbox that could only be reached with one. We request only the access needed to read and organise mail, and QuietMail never sends email from a connected mailbox. When you type an address to connect, QuietMail looks up that address's domain and contacts the mail server it finds to check that it is compatible; the address you typed is passed to that server's sign-in page so it can prefill it, and nothing else about you is sent.
  • What we access — the same as for Gmail (section 2): unread messages in your inbox and spam folder from the last 30 days (at most 25 per run), each message's headers and its body text, of which QuietMail reads at most the first 12,000 characters (section 3 says how much of that reaches an AI model), and whether it carries a List-Unsubscribe or bulk-mail header. So that a conversation you have taken part in is never filtered, QuietMail also checks whether the conversation has a message in your Sent folder; it does not process the content of mail you sent. These services have no Gmail category tabs, so no such signal is read. The actions are the equivalents of the Gmail ones: marking a message as read, moving it to the service's own spam or junk folder, moving it to trash, returning a message from spam to the inbox (a whitelisted sender's, or on paid plans one the AI judged wanted and legitimate), and the optional "tidy old unread" cleanup. The optional "Mark checked messages" marker (sections 2 and 3) is the service's equivalent of the Gmail label: the category "QuietMail Checked" on Outlook.com and Microsoft 365, the tag "QuietMail Checked" on Zoho Mail (created the first time it is needed), or the keyword "quietmail-checked" on a JMAP server. QuietMail never permanently deletes mail; how long trashed mail is kept is decided by your mail service. There are no push notifications for these mailboxes: they are checked on the schedule (about every 5 minutes).
  • How it is processed, and who receives it — exactly as in sections 3 and 5: the same steps, the same limits, and the same subprocessors (TypeSafe AI and OpenAI) receiving the same message data under the same terms, including that it is not used to train AI models. Your mail service itself (Microsoft, Zoho, or whoever operates your mail server) is contacted directly over TLS to read and organise your mail; it is your provider, not a subprocessor of ours.
  • What we store — what section 4 lists, where for each such inbox we keep its address, the service's OAuth refresh token and a short-lived access token, both encrypted with AES-256-GCM in the same way as a Gmail token, and non-secret connection details (which mail server or data centre the mailbox is on). For a mail server found from your address we also keep QuietMail's own registration with that server, which contains no personal data.
  • Revoking access — disconnecting the inbox in QuietMail deletes our copy of its tokens, and everything else listed in section 6, immediately. To also end the permission at the service: for Microsoft and Zoho, remove QuietMail from the list of connected apps in that account's security settings. For a self-hosted or other JMAP mail server, revocation happens at your mail server, by whatever means its operator provides — on some servers the only way is to change the mailbox password, which ends every app's access at once. QuietMail cannot revoke a permission at your server on your behalf; an unused permission otherwise expires on that server's own schedule.

The Google API Limited Use commitments in section 7 concern information received from Google APIs. We hold mail from every other service to the same practical limits: it is used only to provide the filtering feature described above, is never transferred except to the subprocessors in section 5 as necessary to provide that feature, is never sold or used for advertising, and is never read by humans except with your explicit consent for support, when required for security purposes, or to comply with applicable law.

9. Changes & contact

If this policy changes materially, we will update this page and its date. For privacy questions or data requests, use the in-app support chat or write to privacy@quietmail.app.