Cookie & Storage Policy
Every cookie and browser-storage item the website and apps use, and how to change your choices.
Draft — pending legal review. This document describes how HEAL intends to operate and will be finalized by qualified counsel before launch. Until then, write to privacy@teleheal.com with any question.
In plain words
- 01The website and apps use only a handful of cookies and storage items, and every one of them is listed below.
- 02Sign-in and remembering your choice are strictly necessary. Everything else is optional.
- 03In the US, analytics is on by default and takes one click to turn off, and a Global Privacy Control signal turns it off for you. Everywhere else, nothing optional runs until you choose.
- 04HEAL runs no ads, so there is no marketing setting: Google’s advertising storage is always off, for everyone.
- 05The member web and desktop apps use no analytics cookies. The mobile app keeps its sign-in in your phone’s secure storage.
- 06The optional HEAL shop adds a cart cookie, and Stripe sets its own fraud-prevention cookies at checkout. Both are strictly necessary for buying.
- 07No advertising pixels, social-media trackers or data brokers, anywhere.
- 08Change your mind any time with “Cookie settings” in the website footer.
This summary is for convenience. The full text below is what applies.
On this page
- 01Cookies and storage, briefly
- 02Categories
- 03The public website
- 04Signing in (website and member web app)
- 05The HEAL shop and checkout
- 06Consent Mode, regional defaults and Global Privacy Control
- 07How to change your choices
- 08The desktop app
- 09The mobile app
- 10No advertising pixels
- 11The staff console
- 12Changes and questions
01Cookies and storage, briefly#
A cookie is a small text file a website saves in your browser. Browsers also offer “localStorage” and “sessionStorage” for small amounts of data, and phones offer secure storage to apps. This policy covers all of them on teleheal.com, the member app at app.teleheal.com, the HEAL shop at shop.teleheal.com, and the HEAL desktop and mobile apps.
We keep this list short on purpose. Several items are shared across teleheal.com addresses, so the website and app recognise one sign-in and one cookie choice. None of them hold workbook content, check-in notes, mood or meeting details.
02Categories#
- Strictly necessary: sign-in, security and bot checks, remembering your cookie choice, and, in the shop, your cart and payment fraud prevention. HEAL can’t work without these, so they don’t need consent. They’re never used for analytics or advertising.
- Preferences: settings that remember how you like things. The member apps currently keep these on your account, not in your browser. The only preference stored on your device is your cookie choice, listed with the strictly necessary items.
- Analytics: our own first-party analytics, and Google Analytics 4 on the public website. These help us learn which pages and features help people. Never sold.
- No marketing or advertising category. HEAL runs no ads, so we don’t ask for advertising consent and Google Analytics never gets advertising storage. See “Consent Mode” below.
03The public website#
| Name | Type and set by | Category | What it does | How long |
|---|---|---|---|---|
| ga_consent | Cookie, HEAL. Shared on .teleheal.com so the website and app use one choice. | Strictly necessary | Remembers your cookie choice: “a1” (analytics on) or “a0” (off). Choices saved before we removed the old marketing setting look like “a1.m0”; only the analytics part is read. | 1 year |
| ga_consent_v2 | localStorage, HEAL | Strictly necessary | Backup copy of the same choice, in case the cookie is blocked. | Until you clear site data |
| ga_geo | Cookie, HEAL (set by our website server) | Strictly necessary | Your two-letter country, taken from your connection, so the right default applies (US or elsewhere). The IP address itself isn’t stored. | 30 days |
| ga_consent_v1 | localStorage, HEAL (older version) | Strictly necessary | An earlier format of your cookie choice. We still read it if present, so an old choice is respected, but we no longer write it. | Until you clear site data |
| sx_vid | Cookie, HEAL first-party analytics. Shared on .teleheal.com. | Analytics | A random visitor ID, so our own analytics can tell new visits from return visits. Created only while analytics is allowed, and deleted if you withdraw. | About 13 months (395 days) |
| _ga | Cookie, Google Analytics | Analytics | Distinguishes browsers for Google Analytics 4. Written only when analytics storage is granted. | Up to 2 years |
| _ga_<ID> | Cookie, Google Analytics (ID is our measurement ID) | Analytics | Keeps Google Analytics session state. | Up to 2 years |
Without analytics consent, our own analytics still counts page views, but with no cookie and no identifier: each visit is grouped by a hash of your IP address and browser that changes daily, and bots are filtered out. If you’re signed in, the sign-in cookie below lets our own analytics link website visits to your account ID. We never send your account ID to Google.
Our analytics also notes the campaign tags (such as utm_source) and ad-click identifiers (gclid, fbclid, ttclid) in the link you arrived from, and the referring website, so we know which outreach works. They’re stored with the visit, not in a cookie.
04Signing in (website and member web app)#
| Name | Type and set by | Category | What it does | How long |
|---|---|---|---|---|
| better-auth.session_token (in production: __Secure-better-auth.session_token) | Cookie, HEAL sign-in. Shared on .teleheal.com so the app, website and API recognise you. | Strictly necessary | Keeps you signed in. It holds a random session token, not your email or password. | 30 days, renewed while you use HEAL; removed when you sign out |
| Cloudflare Turnstile | Third-party challenge frame, Cloudflare (challenges.cloudflare.com) | Strictly necessary | Checks that a person, not a bot, is signing up or signing in. It reads browser and device signals in its own frame. Cloudflare states it doesn’t use these to track you across sites. | Only for the check |
The member web app at app.teleheal.com doesn’t load Google Analytics or our website tracker, and doesn’t store anything else in your browser’s localStorage or sessionStorage. Its data is fetched fresh from our servers and isn’t cached on your device between visits.
05The HEAL shop and checkout#
The shop at shop.teleheal.com is optional. It shares the website’s cookie choice and sign-in cookie across teleheal.com addresses, and adds these items:
| Name | Type and set by | Category | What it does | How long |
|---|---|---|---|---|
| heal_cart | Cookie, HEAL. Set by the shop at shop.teleheal.com. | Strictly necessary | A random ID that links your browser to the cart we keep on our server, so items stay in your cart between pages and visits. It holds no items, prices or personal details. When you sign in, the cart is added to your account’s cart. | Until you check out or the cart expires. The exact lifetime will be listed here before the shop launches. |
| Shop preview access (name confirmed before launch) | Cookie, HEAL. Pre-launch only. | Strictly necessary | While the shop isn’t public yet, remembers that you entered the preview PIN so you aren’t asked on every page. It holds no personal details. It stops being used when the shop launches. | Pre-launch only |
| __stripe_mid | Cookie, Stripe (on the shop’s checkout page) | Strictly necessary | Set by Stripe’s payment fields to help detect and prevent payment fraud. | About 1 year, as Stripe describes it |
| __stripe_sid | Cookie, Stripe (on the shop’s checkout page) | Strictly necessary | Set by Stripe’s payment fields to help detect and prevent payment fraud during a checkout session. | About 30 minutes, as Stripe describes it |
| Stripe checkout and Customer Portal | Cookies on Stripe’s own pages (checkout.stripe.com and billing.stripe.com) | Strictly necessary | Supporter checkout and the Customer Portal run on Stripe’s pages, which set their own cookies for security and fraud prevention under Stripe’s cookie policy. | Set by Stripe |
Stripe’s payment fields run on our checkout page in a secure frame, so your card details go straight to Stripe and never touch HEAL’s servers. Stripe’s cookies are used for security and fraud prevention, not advertising, so they’re strictly necessary and don’t depend on your analytics choice. A Cloudflare Turnstile bot check may also run before checkout and before support payments. If you block Stripe’s cookies, checkout may not work.
Supporter plans are paid on Stripe’s own checkout page, and managed in Stripe’s Customer Portal, both of which follow Stripe’s cookie policy.
06Consent Mode, regional defaults and Global Privacy Control#
Google Analytics runs in Google Consent Mode v2. Before Google’s script loads, we tell it what you’ve allowed:
- Advertising, everywhere: ad_storage, ad_user_data and ad_personalization are always denied, for every visitor, and never updated. Ad identifiers are redacted, Google signals and ad personalization signals are off, and we tell Google not to pass click identifiers between pages.
- United States: analytics starts on, with a notice and a one-click way to turn it off. “Your privacy choices · Do not sell or share my info” in the notice links to our no-sale, no-sharing commitment; there is nothing to switch off, because we don’t sell or share for advertising.
- Everywhere else (including the EU, EEA, UK and Switzerland): analytics starts off. Google receives only cookieless signals, and no _ga or sx_vid cookie is set until you choose “Accept all” or switch analytics on. “Reject all” is as easy as “Accept all”.
- Region detection uses the ga_geo country cookie. If it’s missing, we fall back to your device’s time zone.
- Global Privacy Control (GPC): if your browser sends a GPC signal and you haven’t made a choice, we treat it as an opt-out of sale and sharing and of optional analytics: Google Analytics storage stays denied and no sx_vid cookie is set. You can still switch analytics on yourself in Cookie settings.
07How to change your choices#
- On the website: select “Cookie settings” in the footer to reopen your preferences and switch analytics on or off. Your choice applies across teleheal.com addresses for a year. If you withdraw analytics consent, we delete the sx_vid cookie.
- In your browser: you can block or delete cookies and site data. Blocking the sign-in cookie stops you signing in, and clearing site data resets your cookie choice.
- Google Analytics: Google offers a browser add-on that blocks Google Analytics on every site.
- GPC: turn on Global Privacy Control in a browser or extension that supports it.
08The desktop app#
The desktop app shows the same member app and keeps:
- the sign-in cookie above, in the app’s own private browser storage on your computer;
- a small settings file, heal-desktop.json, in the app’s data folder. It holds the window size and position, and the IDs of meetings it has already reminded you about, so a restart doesn’t repeat a reminder. Those IDs are removed after two days. It never holds sign-in tokens, workbook content or meeting names.
The desktop app sends no analytics events. Signing out removes the session, and uninstalling the app removes its data folder (on some systems you may need to delete the folder yourself).
09The mobile app#
The iOS and Android apps don’t use cookies in the browser sense. They keep these items in the phone’s secure storage (the iOS Keychain or Android’s encrypted storage):
| Key | Category | What it does | How long |
|---|---|---|---|
| heal_cookie | Strictly necessary | Your sign-in session, the equivalent of the sign-in cookie. | Until you sign out or it expires (30 days, renewed with use) |
| heal_session_data | Strictly necessary | A cached copy of your basic session details (account ID, display name, email), so the app opens quickly. | Until you sign out |
| heal.pushToken | Strictly necessary (only if you allow notifications) | This phone’s push token, so it can be unregistered when you sign out. | Until you sign out |
| heal.pushAsked | Preferences | Remembers that we’ve asked about notifications, so we don’t ask again. | Until you delete the app |
| heal.installId | Analytics | A random ID for this installation of the app, used to group app usage events. | Until you delete the app |
The mobile app sends usage events (screens, feature use, performance and errors, never anything you typed) to our server, which stores them keyed to the install ID and, when you’re signed in, your account ID. Only app opens, sessions, screen names, errors and performance timings are passed on to Google Analytics, keyed to the install ID and never your account ID; feature use such as joining a meeting, saving a check-in or posting a help request stays with HEAL. The app contains no Google or advertising SDK. You can turn notifications off in your phone’s settings at any time. Deleting the app removes everything it stored, though on iOS, Keychain items can sometimes survive until the device is reset.
10No advertising pixels#
HEAL doesn’t use advertising pixels (such as the Meta or TikTok pixels), social-media plug-ins that track you, session-replay tools, fingerprinting for tracking, or data brokers. The member apps contain no advertising code at all. We never use cookies or storage to target anything based on your recovery or health.
11The staff console#
HEAL staff and volunteers who use the staff console get the sign-in cookie, plus two preference cookies (heal-admin-theme and heal-admin-sidebar, 1 year) and saved table views in localStorage (keys starting heal-admin:views:). These appear only on the staff console, never for members.
12Changes and questions#
If we add a cookie or storage item, we’ll add it to this page before it goes live, and ask again where your consent is needed. See the Privacy Policy for how we use the information, and the Consumer Health Data Privacy Policy for health-related data. Questions: privacy@teleheal.com.
HEAL is not an emergency service. In danger, call 911. In crisis, call or text 988. Treatment referrals: SAMHSA 1-800-662-4357.