Privacy Policy

Last updated: August 14, 2026

1. Overview

Aesir Labs, LLC d/b/a ForthWrite (“we,” “our,” or “us”) provides ForthWrite, an AI-powered email drafting tool. This policy explains how we collect, use, and protect your information when you use our Chrome extension, Outlook Add-in, and web application at forthwrite.ai.

2. Information We Collect

We collect the following categories of information:

  • Account information: Email address and authentication data when you sign up.
  • Subscription data: Plan type, billing interval, and payment processor IDs (handled by Stripe).
  • Usage data: Draft generation counts for tier rate limiting, and product-analytics events (page views, clicks, sign-in, and payment events) sent to PostHog and HeyCatch. Neither receives email content or drafts.
  • Gmail content read by the Chrome extension: When the extension is installed and signed in to a Google account, it reads (a) the thread you are currently viewing so it can generate a contextually relevant draft, and (b) the inbox-thread list (using the read-only filter in:inbox is:unread) at most once every 60 seconds so it knows which new conversations to draft for. We do not read Gmail labels, attachments, archived mail, or any folder other than the inbox. Thread content is never persisted to our servers; it is held in memory only for the duration of the draft request.
  • Email content during draft generation: When you generate a draft, the relevant thread content is sent to your configured AI provider (BYOK) or, on the Free tier and AI-included plans, through our backend proxy to OpenAI. We do not retain the thread content after the response is returned.
  • Microphone audio for voice dictation (Standard and above): If you use the dictation button in the Chrome extension, your microphone audio is recorded locally, sent to our servers, and forwarded to OpenAI's Whisper API to produce a text transcript. The audio is used only to generate that transcript, is held in memory for the duration of the request, and is not stored by ForthWrite. Only the resulting text is returned to your compose box. Free-tier users see an upgrade prompt instead of a microphone permission request.
  • Gmail send-as aliases: When you connect a Google account on the web app, we call users.settings.sendAs.listonce to enumerate the alias addresses configured on that account so the right “From” identity can be attached to drafts. We store only the alias email address and display name, never the alias signature HTML.
  • Sent-email snippets for voice matching (all tiers): Snippets of emails you send (the body of your reply, the surrounding thread, and metadata like timestamps and platform) are stored in our database so we can learn your writing voice. Voice capture is on by default for all signed-in users; you can opt out at any time from the extension options page. On all tiers, this powers a private writing-style profile injected into the model. On Standard and above, it also drives the coaching and improvement dashboard. On Pro, snippets are additionally embedded so the model can retrieve your past similar emails at draft time.
  • PlusVibe / Pipl.ai integration: If you use ForthWriteinside PlusVibe or Pipl.ai (cold-email and sales-engagement platforms), the extension reads the thread, lead, and email-list data those platforms load in your browser tab, along with the corresponding network requests to pipl.ai/plusvibe.ai domains, so it can generate a contextually relevant draft the same way it does for Gmail. This data (thread and lead identifiers, request metadata, and email content) is cached locally in the extension's own browser storage on your device, capped to the most recent 100 requests, and is not sent to our servers except when you generate a draft, at which point it is handled the same way as the email content described above.
  • LinkedIn messaging integration (opt-in):LinkedIn support is off by default and only activates after you explicitly grant the extension access to linkedin.com from its options page. Once granted, the extension reads the currently open LinkedIn messaging conversation (the same visible-thread-only scope as Gmail) so it can generate a contextually relevant draft, and inserts the generated reply into LinkedIn's own message box for you to review and send. We do not read your LinkedIn connections, feed, profile data beyond what appears in the open conversation, or any conversation other than the one you have open. This data is handled the same way as the email content described above: held in memory only for the duration of the draft request and never persisted to our servers except when you generate a draft. You can revoke this access at any time from the extension options page or from Chrome's own site-permissions settings.
  • Historical email backfill (Pro only, opt-in): If you choose to import historical emails from the Training Dashboard, we read up to the last twelve months of your sent mail via Gmail or Microsoft OAuth and store the same snippet-level information described above. We do not read inbox or non-sent folders, and the import is one-shot. We do not poll your mailbox in the background.
  • Inbox Hub drafting and sending (dashboard, connected accounts): The Inbox Hub at /dashboard/inboxreads thread metadata from your connected Gmail and Outlook accounts to show a unified triage view, and lets you generate a voice-matched reply for any thread. Saving a reply to your Gmail Drafts folder or Outlook Drafts folder uses your account's existing draft-creation permission. Sending a reply requires you to first opt a specific mailbox into sending on the Connections page (off by default), then explicitly click Send and confirm the recipient and content in a confirmation step; a short undo window follows before the message is actually sent through your provider. We never send automatically, in bulk, or without that explicit per-message confirmation, and thread content read for this feature is not persisted beyond what is needed to render the triage view and generate the draft you asked for.
  • OAuth tokens for connected inboxes:When you connect a Gmail or Outlook account on the web, we store the access and refresh tokens issued by the provider, encrypted at rest using AES-256-GCM with per-user data-encryption keys wrapped by a master key held only on our servers. Tokens are used solely to support the features you have asked for: historical email backfill, the Inbox Hub's thread feed, and, for mailboxes you explicitly opt into on the Connections page, drafting and sending replies to threads you review and confirm in the Inbox Hub.
  • Outlook Add-in: When you install the ForthWrite Outlook Add-in and click “Connect,” we create a linked-mailbox record storing your Outlook mailbox email address and a 7-day signed authentication token. This record is shown on your Security dashboardand can be revoked at any time. When you click “Generate Draft,” the current email thread (headers and body) is read via Office.js and sent to our proxy in the same way as the Chrome extension. Thread content is not stored after the draft is returned. If you send a reply after generating a draft, the add-in's Smart Alerts handler captures the generated draft and your final sent body so we can learn how you edited the AI output (the same training-capture flow as the Chrome extension). Capture only fires when a draft was generated for the same thread in the same session.
  • Mobile phone number (consulting inquiries only): If you request a consulting engagement through our qualification form (linked from the consulting practice page), we collect the mobile phone number you provide so we can schedule and follow up on your consulting appointment by text message, if you separately opt in to SMS as described in Section 3 below. We do not collect phone numbers anywhere else in the Service. Booking paths that do not use the qualification form do not collect a mobile number for SMS.

3. SMS / Text Messaging Communications

If you submit your mobile phone number through our consulting qualification form and check the box to receive text messages, Aesir Labs, LLC d/b/a ForthWritemay send you SMS text messages related to your consulting appointment, including scheduling confirmations, reminders, and related follow-ups (“Consulting SMS Program”). Consent to receive these messages is never required to submit the rest of the form or to book a consultation by any other means, and the consent checkbox is unchecked by default.

  • Message frequency varies based on your scheduled appointment and may include follow-up messages related to your consulting engagement.
  • Message and data rates may apply.
  • Reply STOP at any time to opt out of further text messages, or reply HELP for assistance.
  • We use Twilio, Inc. as our messaging delivery provider to send these text messages.

We do not share, sell, or otherwise provide your mobile phone number or messaging consent information to any third parties or affiliates for marketing or promotional purposes. Your mobile number and SMS opt-in status are used solely to operate the Consulting SMS Program described above.

For a screenshot of the live consent form and opt-in wording, see our SMS Consent page.

4. How We Use Your Information

  • To provide and maintain the ForthWrite service.
  • To manage your subscription and billing.
  • To enforce rate limits on the free tier.
  • To communicate important service updates.
  • To improve the product based on aggregate, anonymous usage patterns.
  • To learn your writing voice by summarizing your sent-email snippets into a private writing-style profile and, on Pro, by embedding those snippets so the model can retrieve your most relevant past replies at draft time. Your snippets are never used to train shared or third-party models, and are never combined with another user's data.

5. API Keys and AI Providers

When you provide your own API key (BYOK), keys saved through the web app are stored encrypted at rest using AES-256-GCM envelope encryption with per-user data-encryption keys wrapped by a master key held only on our servers. The key is decrypted only long enough to send your draft request to the AI provider you selected (OpenAI, Anthropic, Google, xAI, etc.). Some legacy extension-only keys may still live only in Chrome's local storage until you migrate them to the web app. For free-tier users without an API key, draft requests are routed through our backend proxy, where email content is sent to OpenAI to generate drafts. The email thread we read to write a draft is never stored. The draft text we generate is not retained for general use, with three narrow exceptions: for a new account we keep a copy of its first 10 drafts for up to 60 days so we can check whether early drafts were any good; a draft you never send may be kept for up to 180 days as a quality signal; and when you regenerate or refine a draft before sending, the earlier rejected draft and any instruction you used to replace it are kept with that training sample under the same retention window as your sent-email snippets. None of these is used to train shared or third-party models, and none is ever combined with another user's data.

6. Data Storage and Security

Account and subscription data is stored in a secure Supabase (PostgreSQL) database with row-level security enabled. Payment information is handled entirely by Stripe and never touches our servers. All data is transmitted over HTTPS.

Sent-email snippets captured for voice matching are stored in the same Supabase database, scoped per user, and accessible only to your own account. OAuth tokens for connected Gmail and Outlook accounts and BYOK credentials saved in the web app are encrypted at rest using AES-256-GCM envelope encryption with per-user data-encryption keys; the master key is held only on our application servers and is never written to the database.

7. Third-Party Services

  • Stripe: Payment processing. Subject to Stripe's Privacy Policy.
  • Supabase: Database and authentication hosting.
  • Sentry: Error tracking (no email content is sent to Sentry).
  • AI Providers: OpenAI, Anthropic, Google, xAI, and others. Subject to their respective privacy policies. Voice dictation audio is sent specifically to OpenAI's Whisper API for transcription.
  • Twilio, Inc.: SMS delivery for the Consulting SMS Program described in Section 3. Twilio receives only the mobile number and message content needed to deliver consulting-related text messages; it is not used for any other feature of the Service. Subject to Twilio's Privacy Policy.

8. Data Retention

Account and subscription data is retained while your account is active. Draft usage counters reset weekly.

Sent-email snippets captured for voice matching are retained for as long as you keep voice-matching capture enabled, so we can keep your writing-style profile current. Standard and Pro plans keep snippets for a rolling window tied to your plan (Standard: 1 year; Pro: 18 months) so recently captured data is never lost during normal use. If you are on the Free plan, or your subscription lapses or is canceled, we do not immediately delete your existing snippets: they age out under the same rolling 1-year window, giving you a grace period to resubscribe without losing your writing-style profile. You can disable capture at any time from the extension options page, and you can delete all captured snippets immediately from the dashboard's Settings page or by emailing us. Your account, subscription, and writing-style profile remain intact unless you also request full account deletion.

Voice dictation audio is never retained. It exists only in memory for the duration of the transcription request and is discarded immediately after the text is returned to your compose box.

You can request deletion of your account and all associated data (including snippets, the writing-style profile, OAuth tokens, and any embeddings) from Dashboard → Settings → Danger zone → Request deletion, or by emailing us at support@forthwrite.ai. We complete account deletion within 30 days of a confirmed request. Some records required by law (for example Stripe tax invoices) may be retained after deletion.

9. Your Rights

You have the right to access, correct, or delete your personal data. You can export your data or request account deletion at any time from Settings in the dashboard, or by contacting us at support@forthwrite.ai. Account deletion is completed within 30 days.

You can also disable voice-matching capture at any time from the extension options page, and disconnect any linked Gmail or Outlook inbox from the Settings tab in your dashboard. Disconnecting an inbox revokes our stored OAuth tokens for that account immediately.

10. Google API Services User Data Policy

ForthWrite's use and transfer to any other app of information received from Google APIs will adhere to the Google API Services User Data Policy, including the Limited Use requirements. Specifically:

  • We do not use Gmail data for serving advertisements.
  • We do not allow humans to read your Gmail data, except (a) with your explicit consent for specific messages, (b) where necessary for security purposes such as investigating abuse, (c) to comply with applicable law, or (d) where the data is aggregated and used for internal operations in accordance with applicable privacy laws.
  • We do not transfer Gmail data to others except as necessary to provide or improve user-facing features that are prominent in the application's user interface, to comply with applicable law, or as part of a merger, acquisition, or sale of assets with appropriate notice to users.
  • We do not use Gmail data to develop, improve, or train generalized or non-personalized AI or machine-learning models. The voice-matching writing-style profile and Pro retrieval embeddings described above are user-scoped, used only to draft email for that same user, and never combined with another user's data or shared with any third party.

The specific Google OAuth scopes ForthWrite requests, and the user-facing feature each scope powers:

  • gmail.readonly: reading the open Gmail thread to build draft context; polling the inbox-thread list (read-only, in:inbox is:unread) so the extension knows which new conversations to draft for; reading sent-mail snippets when you opt into voice capture or one-shot historical backfill; and (web) reading thread metadata for the Inbox Hub's triage view.
  • gmail.compose: creating, updating, and deleting only the drafts ForthWrite itself authored, whether from the Chrome extension or the web dashboard's Inbox Hub. We never modify or delete drafts you wrote by hand.
  • gmail.send (web only): sending a reply from the Inbox Hub, and only for a mailbox you have explicitly opted into sending on the Connections page, only after you click Send and confirm the recipient and content, and only after a short undo window elapses. We never send automatically, in bulk, or without that explicit per-message confirmation.
  • gmail.settings.basic (web only): enumerating your send-as aliases via users.settings.sendAs.list so the right “From” identity is attached when drafting. No other settings are read or written.
  • userinfo.email: identifying the authenticated Google account so the extension can match it to your ForthWrite subscription.

We also request the Microsoft Graph equivalents for Outlook accounts you connect: Mail.Read and Mail.ReadWrite for the Inbox Hub's triage view and draft saving, and Mail.Send for sending, under the same explicit opt-in-and-confirm gate described above.

11. Changes to This Policy

We may update this policy from time to time. We will notify you of material changes via email or a notice on the website.

12. Contact

For privacy-related questions, contact us at support@forthwrite.ai.