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. With regard to personal data, ZapVox acts in two roles: it is the controller of your account data (name, e-mail, plan, payment status and usage records — Brazilian LGPD, art. 5, VI; card data is handled by Stripe or PayPal and never passes through us) and the processor ("operador") of the content you submit to the Service (audio, transcripts, translations, summaries and contact names — LGPD, art. 5, VII), processed on your behalf and under your instructions. When you use ZapVox in a professional activity with third parties' data, you are the controller of that content. The terms of that processing are in Annex I of the Terms of Use.
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: October 8, 2026
chrome.alarms. Since extension version 3.16.32, they are not copied to our servers (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 are not sent to our servers.usage_logs, described in section 2.2) to enforce your plan's limits and curb abuse. They are two different things: the counter you see in the popup is local; the limit the server enforces is the server's.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 → one of the AI providers listed in Section 8 | 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. |
| Single words from the open chat (proper names and acronyms that appear in the text messages on screen; at most 8 words, never sentences) | Along with the audio, on each transcription done in the open chat — under the same "Conversation names in transcription" switch | The same destination as the audio | Spelling hint (for example, the name of a medicine, place or company mentioned in the chat). Read on the spot, sent only with the audio and not stored on our servers or in the browser. |
| Transcribed text | Translation or summary | Supabase Edge Function → text AI provider (Groq, Google or Cloudflare) | 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, operation, date and time, audio length in seconds, AI provider and model, response time, status and estimated cost | On every cloud transcription/translation | Supabase Postgres (RLS) | Enforce the plan's daily limits, curb abuse and track cost and service quality. No audio or text content, no contact names and no message identifiers. Automatically deleted after 40 days. |
user_settings — account-linked preferences (target language, auto-transcribe received and sent, show topics, cost estimate, trial-ending notice) | When you change one of these options | Supabase Postgres (RLS) | Make your preference apply across your devices. Preferences only — no content and no contacts. Readable only by you. |
| Text and time of reminders and schedules created in versions before 3.16.32 | Already existing — nothing new is stored | Supabase Postgres (RLS) | Copies from the time when reminders and schedules were synced across computers. Extension 3.16.32 or newer brings these copies into your browser and deletes them from our servers when it updates; anything left is deleted automatically on 2026-10-15. |
| Date and time of each scheduled message sent (sending log) | When a scheduled message is sent | Supabase Postgres (RLS) | Count your plan's sending limit and show the "Account sending log" in the dashboard. It does not include the text, the recipient or the computer it came from. The text, recipient and times of your schedules stay only in the browser where they were created. To prevent duplicate sends between computers on the same account, we keep a code for each send for 30 days (schedule identifier, time and a scrambled device code that does not reveal which computer it was). |
| 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. |
login_errors — the sign-in step that failed, the technical error message and the browser identification (user agent); no e-mail or name | Only when a sign-in fails | Supabase Postgres | Find and fix the cause of sign-in failures |
user_glossary — the terms of your custom glossary | When you save the glossary (Starter, Pro and Trial) | Supabase Postgres (RLS) | Bring your glossary to another computer on the same account and use it in transcription |
usage_logs: We record that an operation happened and its technical data — when, how much audio, which AI provider served it, whether it succeeded and what it cost — never 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.You sign in to ZapVox with your Google or Microsoft account (OAuth authentication brokered by Supabase). From that sign-in we receive only: your name, your e-mail address, the URL of your profile picture and a unique account identifier. We do not request or receive access to your Gmail, Drive, Contacts, Calendar or any other data in your Google or Microsoft account — the only scopes requested are openid, email and profile.
What we use it for: creating and identifying your ZapVox account, showing your name and picture in the dashboard, and sending the account's own e-mails (receipts, contractual notices and, if you opted in, product news). This data is not used for advertising, is not sold and is not shared with third parties beyond the subprocessors the service needs, listed in Section 8 (Supabase for authentication and database, Resend for e-mail delivery, Stripe for billing).
For how long: as long as your account exists. When you delete the account from the dashboard (Section 6), name, e-mail, picture and identifier are erased; of the picture we store only the URL provided by the provider, never the file.
Revocation: you can withdraw the permission at any time at myaccount.google.com/permissions (or in your Microsoft account settings). Your ZapVox account keeps existing; only sign-in through that provider stops working until you authorize it again.
Our use of data received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements.
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, write to [email protected] — or, for deletion, use the dashboard button. This is the channel of the person in charge of personal-data processing (LGPD, art. 41), for data subjects and for the Brazilian National Data Protection Authority; ZapVox is a small-scale processing agent (ANPD Board Resolution No. 2/2022). We reply within 15 days.
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 outside Brazil, mainly in the United States — where our infrastructure (Supabase) is located — and on the infrastructure of each AI provider listed in Section 8, according to the region in which it operates. The transfer complies with the LGPD (arts. 33 et seq.), relies on the contractual guarantees and data-protection commitments offered by those providers, is limited to what is necessary to provide the Service, and uses encryption in transit via HTTPS. For your account data, by using ZapVox you consent to this transfer (LGPD, art. 33, VIII); for the content you submit as controller, the terms are in Annex I of the Terms of Use.
| Service | Purpose | Privacy Policy |
|---|---|---|
| Supabase | Authentication, Edge Functions (transcription/translation for Pro plan) | supabase.com/privacy |
| Groq | Cloud transcription, translation, summary and sentiment analysis + BYOK | groq.com/privacy |
| OpenAI | Cloud transcription (when needed) + BYOK | openai.com/privacy |
| Google (Gemini) | Cloud transcription, translation, summary and sentiment analysis | policies.google.com/privacy |
| Cloudflare (Workers AI) | Cloud transcription, translation, summary and sentiment analysis | cloudflare.com/privacypolicy |
| Stripe | Payment processing (card) | stripe.com/privacy |
| PayPal | Payment processing (when you choose to pay with PayPal) | paypal.com/privacy |
chrome.storage.local — never transmitted. Resettable via the "Clear" button in the popup.usage_logs (Supabase): The usage record (user_id, operation, date and time, audio length, provider and model, status and cost) is kept for 40 days and deleted by an automatic daily routine (40, and no less, because the monthly quota needs to see the whole month). No content, and no personal data beyond your account identifier.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 the AI subprocessors listed in Section 8 — Groq, Google (Gemini), Cloudflare (Workers AI) or OpenAI. Which one handles each request depends on availability and on the feature used, is decided by us and may change without notice; the list does not — it only changes with an update to this Policy. Google (Gemini) may receive the audio, not only the text. Translation, summary and sentiment analysis are handled by Groq, Google (Gemini) or Cloudflare. In BYOK mode, processing happens directly at your own key's provider (Groq or OpenAI), without passing through us.
Model training. ZapVox does not use your content to train artificial-intelligence models. When each provider was contracted, its terms then in force stated that content sent through the API is not used to train models. Those terms belong to the providers and may change without our involvement; we review the list and the conditions periodically and update this Policy when something changes.
Retention by providers. We store neither the audio nor the text. Each provider follows its own retention policy: some may keep the content for a limited period, of up to 30 days, for security and abuse prevention, under their own rules. That period belongs to the provider, not to us, and is stated in each provider's policy (links in Section 8).
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.
?ref= and utm_*), country, an anonymous session code and the IP turned into an irreversible code (hash); the IP itself is not stored. To find the country, the IP is looked up with the ipapi.co service at the time of the visit;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.