Skip to content

Privacy Policy

Last updated: November 5, 2026

What we collect

Account information: your name and email address; if you use a password, it is stored as a salted hash and never in plain text. If you sign in with Google, we also store the Google account identifier and profile-picture URL that Google provides.

Billing information: we store Stripe customer, subscription, and transaction identifiers, plan status, amounts paid, and access dates. Full card details are collected and processed directly by Stripe and never pass through our servers.

Chat exports on our website: the WhatsApp chat export file (.txt) you upload to our website is parsed and analyzed in your browser. The messages, analytics, scores, and insights it produces are stored in your browser's local storage (IndexedDB), with an expiry window after which they're automatically deleted. They are not uploaded to or stored on our servers except as described below.

MyChatWrap plugin in ChatGPT: after you explicitly agree, ChatGPT sends the full text of your WhatsApp chat export, including participant names, timestamps, and messages, to our analysis server. The server processes it in memory to calculate descriptive statistics and returns a report without message bodies. The plugin code does not save the export or messages to our database or write them to application logs; it does not retain request data after processing. Traffic passes through our hosting provider. OpenAI's ChatGPT settings and policies govern how the attachment and conversation are handled there. If you do not want to send your chat to our server, do not use the plugin. Ordinary imports on our website remain browser-based, subject to the separate exceptions described here.

AI-derived analysis on our website: if you run AI analysis on a website import (a feature that requires it to be explicitly configured), each message receives labels (sentiment, emotion, topic, toxicity, affection, and similar scores). For website imports, this is a path where message content can leave your browser β€” see β€œWho processes it” below.

Share links: creating a share link is an explicit exception to browser-only storage. We send a redacted snapshot of the Overview and Insights to our server so the link can open on another device. The snapshot can include participant names, the imported filename, aggregate analytics, scores, and generated insights, but excludes raw message text and message previews. The link and snapshot expire after 24 hours.

Product & traffic analytics (first-party): regardless of the cookie-consent choice below, we record aggregate, content-free telemetry to understand how the product is used: which chat exports were processed (chat type, message count, participant count β€” never a filename, participant name, or message content), which pages get visited and for how long, and the external site (if any) a visitor arrived from. Anonymous events aren't tied to any personal identity; signed-in visits are additionally attributed to your account.

Usage analytics (PostHog): if you accept the cookie-consent banner, we additionally collect richer, consented product-usage data via PostHog, including named events, automatic interaction tracking, and, where enabled, session recordings. You can withdraw consent by clearing this site's local storage.

Our Android app

Account and purchases: the Android app requires a MyChatWrap account. We store the name and email you provide and a secure record of your session. If you buy in the app, Google Play processes your payment; we store the product, purchase status, expiry and an encrypted purchase token so we can verify access and detect refunds. We do not receive your full payment-card details.

Your chats stay on your phone: a WhatsApp export you share into the app or pick from your files is read and analyzed on your device. The messages, analytics and a private copy of the export are kept in the app's own storage and are never uploaded. Deleting a chat in the app, or uninstalling it, removes them.

Usage analytics and crash reports (first-party): unless you turn off "Share anonymous usage stats" in the app's Settings, the app sends the same kind of content-free telemetry as our website to our own servers: a random ID created for your installation, which screens you open and for how long, which features you use, whether an import succeeded or failed (message and participant counts, file type and our own error message), how long imports take, and, if the app hits an unexpected error, the error type, the first line of its message (with any quoted text removed) and the screen it happened on. Like any request to our servers, these include your IP address and a device description (phone model, Android version, app version, language). They never include chat names, participant names, contacts or message text.

Filler-word lookup: to hide filler words from word clouds, the app sends a list of up to 500 of the chat's most-used single words (never messages) to our server, which checks them against words already classified. If you switch on "Filter filler words with AI", the remaining words are also classified by Google Gemini.

AI-detected patterns (opt-in, per chat): only if you switch it on for a chat, the app sends a sample of up to 1,200 of that chat's text messages (each shortened to 500 characters, with sender names and timestamps) to our server and Google Gemini to label them and write a summary. The results are stored on your phone.

Share links and feedback: sharing a Wrapped creates a public link to the slideshow (participant names, the chat's first message and the slideshow's statistics, never the rest of your messages) that expires after 7 days. Sharing an Overview link uploads the same redacted snapshot as on our website, which expires after 24 hours. Feedback you send from Settings (your rating and what you write) is stored with our other feedback.

How we use it

Your chat data is used exclusively to generate the analytics, scores, and insights you see in your dashboard. We do not sell your data, and we do not use your chat content to train any model.

Who processes it

Google sign-in: if you choose this option, Google verifies your identity and provides us with an identity token containing your Google identifier, verified email address, name, and profile picture under Google's privacy terms.

Payments: Stripe processes website checkout, invoices and subscription management. Google Play processes Android in-app purchases and subscriptions under Google's terms.

AI analysis: if you trigger the AI analysis pipeline, message content is sent to the configured provider (OpenAI or Google Gemini) solely to generate the labels described above, under that provider's data-processing terms.

First-party product analytics: the aggregate, content-free telemetry described above is sent to and stored on our own servers, not a third party.

Shared analytics snapshots: when you create a share link, the redacted snapshot is stored on our server and is available to anyone with its unguessable link until it expires.

Product analytics (PostHog): if you've consented, richer usage events and, where enabled, session recordings are sent to PostHog.

Error tracking: if an unexpected error occurs, diagnostic information (not your chat content) may be sent to Sentry to help us fix it.

Your rights

You can export a complete copy of your account data, or permanently delete your account, at any time from Settings β†’ Privacy & data. Deletion is immediate and irreversible for your account record and any legacy chat data still stored server-side; we recommend exporting first if you want a copy.

Chats processed in the browser live only in local storage. Account deletion doesn't touch them; delete them individually from the chat switcher or they'll expire automatically.

For the Android app, choose Settings β†’ Delete account to remove your account and that account's chats stored on the phone. You can also follow the steps on our account deletion page. Deleting the account does not cancel a Google Play subscription; cancel it separately in Google Play.

Data retention

Account data is retained for as long as your account exists. Deleting the account removes the profile and anonymizes our internal transaction records; Stripe may retain its own payment records where legally required. Browser-stored chats follow their own expiry window. Shared analytics snapshots and links expire after 24 hours. Aggregate, content-free product-analytics events are retained to understand product usage over time and generally aren't attributable to an account.

Meta advertising cookies

If you separately allow Meta advertising cookies, the Meta Pixel sends your public landing-page visit (including campaign URL parameters), browser information and cookie identifiers to Meta to build audiences for follow-up ads on Facebook and Instagram. We do not send chat content or enable automatic form-data matching. Private dashboard, shared-chat and upload pages are excluded. This permission is separate from analytics consent.

You can withdraw this permission using the button below. Meta processes previously collected data under its own privacy policy.

OpenAI advertising measurement

With advertising consent, the OpenAI Pixel uses browser identifiers and the ChatGPT ad click reference to attribute checkout starts and signed-in chat dashboard activation to our ads. Dashboard activation sends only the event name and a random event identifier after a processed chat is available. We send the selected plan and a unique event identifier when a Stripe checkout session is created. We do not include chat content in advertising events. You can withdraw advertising consent using the button below.

Contact

Questions about this policy or your data can be sent to the contact address listed on our homepage.