Transcribe, translate, and summarize WhatsApp Web audio messages with AI
TECHMED SERVIΓOS MΓDICOS LTDA β CNPJ 46.367.941/0001-69
Rua Prof. RΓ΄mulo Almeida, 52, Ed. Lafayette Velloso β Acupe de Brotas β Salvador/BA β CEP 40290-030 β Brasil
Contact: [email protected] Β· zapvoxia.com.br
ZapVox is operated by the legal entity above, responsible for the contractual relationship, billing and support, and the controller of the personal data processed in the Service (Brazilian LGPD, art. 5, VI).
This Privacy Policy describes how the ZapVox extension ("we", "us", "our") collects, uses, and protects user information ("you"). ZapVox is a browser extension for Chrome/Edge that transcribes, translates, and summarizes audio messages on WhatsApp Web.
Last updated: September 5, 2026
chrome.alarms. On the Pro plan you can optionally sync them to your account so they also fire on your other devices (see section 2.2).chrome.storage.local for up to 90 days or until the cache reaches 7 MB β whichever comes first. When either limit is hit, the oldest transcriptions are deleted automatically to make room. This avoids reprocessing and powers the search across your transcriptions. This data stays exclusively in your browser.chrome.storage.local and never sent to servers.zapvox_deleted_msgs) is no longer created or written to. If you used an older version, that database was purged automatically under the 7-day window that already applied.chrome.storage.local. This data never leaves your browser β it is used only for you to review on the popup's Diagnostics screen. No message identifier, contact name, content, or audio metadata is recorded. The telemetry is strictly a whitelist of permitted technical phases. The "Local diagnostic telemetry" toggle controls collection and the "Clear" button resets the counter.chrome.storage.local (key zapvox_sentiment_cache) under the same 90-day and 7 MB limits, so the sentiment chip survives page reloads without reprocessing. The associated message identifier is the same sanitized hash used by the transcription cache. This data never leaves your browser and is automatically purged by the same 90-day and 7 MB limits.| Data | When | Destination | Purpose |
|---|---|---|---|
| Audio (base64) | Cloud transcription | Supabase Edge Function β Groq β Google (Gemini) β Cloudflare (Workers AI) β OpenAI, in this order, moving to the next one only when the previous one fails | Convert audio to text |
| Audio (base64) | BYOK transcription (your own key) | Groq or OpenAI (directly from browser, without passing through us) | Convert audio to text |
| Conversation names (the name saved in your address book and the contact's profile name, as shown in your WhatsApp Web) | Along with the audio, on every transcription β if the "Conversation names in the transcription" switch is on (it ships on) | The same destination as the audio: our Edge Function β transcription provider, or Groq/OpenAI directly under BYOK | Spelling hint for the model (Whisper's context field), so the speaker's name comes out spelled as it is in your WhatsApp. They are read at the moment of each transcription, straight from your WhatsApp Web (which is why renaming a contact already counts for the next audio), sent along with the audio and only at that moment, and not recorded on our servers or anywhere else because of this feature β the provider processes them with the audio and discards them, under the same retention rules as the audio. The only record of names that exists is the 30-day local cache described in 2.3, which already existed and does not change. |
| Transcribed text | Translation or summary | Supabase Edge Function β Groq/Gemini | Translate or summarize text |
| JWT token | Authentication | Supabase Auth | Validate session and plan |
| Login/signup | Supabase Auth | Create and manage account | |
| Gender and profession (optional, with "prefer not to say") | Only if you fill them in under My account β About you | Supabase Postgres (RLS) | To write to you the right way and, soon, to build a glossary with the terms of your field. You can erase them whenever you want, in the same place. |
usage_logs (user_id, action, timestamp) | On every cloud transcription/translation | Supabase Postgres (RLS) | Enforce the plan's daily limits. No audio/text content; counters only. |
| Reminder text + time (Pro only, opt-in) | When a Pro user creates a reminder | Supabase Postgres (RLS) | Sync reminders across the user's own devices so they fire everywhere. Stored under the authenticated user and readable only by them. |
| Message schedule text, recipient and time | When you create/edit a scheduled message (signed-in user) | Supabase Postgres (RLS) | Sync across your own devices and let you manage them in the dashboard. Stored under the authenticated user and readable only by you. After the send, the text is removed: only a summary remains (content type, file name, recipient and date). |
| Anonymous diagnostics (opt-in, off by default) | Only if the user enables "Anonymous diagnostics" | Supabase Edge Function | Report technical errors and WhatsApp DOM changes to improve reliability β including audio-loading failures (only the technical phase, e.g. "evicted"/"all_phases", plus version and browser). No message content, contact names, phone numbers, or message identifiers. |
user_settings.usa_chave_propria (user_id, yes/no, date) | When you save or remove your own key (BYOK), and on sign-in | Supabase Postgres (RLS) | To know how many accounts use their own key, so we can decide whether the feature deserves investment. It is a yes/no: the key never leaves your browser, and we do not record which provider, how many times you used it, or what was transcribed. |
active_sessions (user_id, browser identifier, label, timestamp) | On sign-in and when using account-based features | Supabase Postgres (RLS) | Maintain one active browser per account (Section 4.1 of the Terms), preventing credential sharing. See section 2.5. |
usage_logs: We record only that an operation happened (to enforce your plan's daily limit), not what was transcribed. No audio, text, contact name or message identifier is persisted on the server. The table is protected by Supabase Row-Level Security β you can only read your own records.
To provide a smooth experience, ZapVox temporarily stores the following technical data in your own browser (never on our servers):
chrome.storage.local (key zapvox_notes_v1), up to 500 characters per contact, and are never sent to any server. They go away when you delete the note, clear the extension's data or uninstall it.F12) have phone numbers sanitized to ***@ before being printed. This means that, even if you share a console screenshot with technical support, no WhatsApp phone number leaks.chrome://extensions.
Context: the extension may be installed on several computers, but the account is active on one at a time β activating it on one computer automatically disconnects the previous access; simultaneous use requires the "Additional computer" add-on (see Terms, Section 4.1).
To ensure your account is used by a single person at a time β as set out in Section 4.1 of the Terms of Service β ZapVox needs to tell one browser from another. To that end:
chrome.storage.local. It is accompanied by a generic, human-readable label (e.g., "Chrome Β· Windows"), derived only from browser type and operating system, so you can recognize on screen which browser is active.If you choose to use your own API keys (Bring Your Own Key β BYOK), they are:
chrome.storage.local| Permission | Why We Need It |
|---|---|
storage | Save settings, transcription cache, and encrypted keys |
notifications | Show notifications when transcription completes |
identity | OAuth authentication for login (Google or Microsoft, via Supabase) |
alarms | Keep the Service Worker active during long transcriptions and manage daily usage resets |
tabs | Detect WhatsApp Web tabs to send results |
host: web.whatsapp.com | Inject content script to add transcription buttons to audio messages |
ZapVox is operated from Brazil and the processing of your personal data is governed by Brazil's Lei Geral de ProteΓ§Γ£o de Dados (LGPD, Law No. 13,709/2018). Under it you have the right to:
We answer requests of this kind from anyone, wherever you live β we do not require you to be in Brazil to ask for access, correction or deletion of your data.
To exercise any of these rights, contact us using the information in Section 12 β or, for deletion, use the dashboard button.
chrome://extensions, click "Details" on ZapVox, then "Clear site data". This removes all cached transcriptions, settings, and BYOK keys.
Some data (settings, cached transcripts, reminders) stays in your browser, but audio transcription and other AI features rely on cloud processing, so your data may be transferred to and processed on servers located in the United States (through Supabase and Groq). We implement appropriate safeguards to protect your data during international transfers, including standard contractual clauses and encryption in transit via HTTPS. By using ZapVox, you consent to the transfer of your data to the United States for processing as described in this policy (LGPD, art. 33).
| Service | Purpose | Privacy Policy |
|---|---|---|
| Supabase | Authentication, Edge Functions (transcription/translation for Pro plan) | supabase.com/privacy |
| Groq | Cloud transcription, translation, summary (primary provider) + BYOK | groq.com/privacy |
| OpenAI | BYOK transcription (when user provides own key) | openai.com/privacy |
| Google Gemini | Translation and summary fallback (via Edge Function) | policies.google.com/privacy |
| Stripe | Payment processing (Pro plan) | stripe.com/privacy |
chrome.storage.local β never transmitted. Resettable via the "Clear" button in the popup.usage_logs (Supabase): Quota records (user_id, action, timestamp) are kept for 90 days for daily-limit auditing. No content, no PII beyond your account user_id.chrome.storage.local until logout or refresh-token expiration (~30 days). We chose local over session to avoid forcing a re-login every time Chrome opens β Supabase RLS is the primary defense layer.ZapVox is not intended for children under 13 years of age. We do not intentionally collect data from children. If you believe a minor has provided data, please contact us for immediate removal.
ZapVox complies with the Chrome Web Store's Limited Use policy:
ZapVox is distributed through the Chrome Web Store (Google), Microsoft Edge Add-ons and Firefox Add-ons (Mozilla). To publish and update the extension we send those stores the program package. Mozilla additionally requires the extension's source code, because the package is minified β this is a mandatory condition to publish there, applied to every extension in that situation, and the material is used only by Mozilla's review team, under confidentiality.
What the stores NEVER receive, under any circumstance:
What we send is the program, not your data. Source code describes how the extension works; it does not β and could not β contain any user's information. This section does not change any commitment in Sections 7 and 11: data transfers remain limited to the subprocessors listed there.
We may update this policy periodically. Significant changes will be communicated via notification in the extension or in the changelog. The last updated date will always be visible at the top of this page.
For questions, data requests, or to exercise your rights:
Email: [email protected]
Developer: Diegomaier Nunes Neri
Related documents: Terms of Service
To suggest features you haven't used yet (and avoid repeating ones you already use), the extension looks only at which features you have already used β a signal that already exists in your account. These notices collect no new data and never use the content of your messages or audios. You can turn them off in Settings → What's new.
Audio sent for cloud transcription is processed by one of these subprocessors, always in this order, moving to the next one only when the previous one fails: Groq β Google (Gemini) β Cloudflare (Workers AI) β OpenAI. They process the audio to produce the text and do not store it for that purpose. In BYOK mode, processing happens directly at your own key's provider (Groq or OpenAI), without passing through us.
Two transparency corrections made on 16/08/2026, so that this page describes what the code actually does:
Google (Gemini) receives the audio when it is reached in the cascade β not only the already-transcribed text. See the table in section 2.2.
On the website pages (zapvoxia.com.br) we use Google Analytics 4 to measure audience in aggregate (pages visited, traffic source, device). GA4 anonymizes the IP address by default and stores first-party cookies in your browser. We do not use advertising or remarketing cookies, and we do not sell data.
To operate the Service we rely on the following providers, each processing only the minimum necessary:
Some of these providers are based abroad; international transfers comply with the LGPD (arts. 33 et seq.) and are limited to what is necessary to provide the Service.