Privacy Policy — Tutor Flow
Last updated: 2026-09-15
Contact: support@nativeflow.me
Overview
Tutor Flow is a Chrome extension that helps tutors on the Ringle platform manage lessons, track student progress, and streamline in-lesson workflows. This policy explains what data the extension handles, where it lives, and what control you have over it.
The short version: your lesson content and student notes stay on your own computer, always. We run one small backend service for licensing, and it only ever sees your license key and subscription status — never your lesson or student data. Error reporting is switched off unless you turn it on, and even then it sends only technical details about what failed — never anything you or your student typed. See “Where data leaves your device” below for the full picture.
What data the extension collects
While you use the extension during Ringle tutoring sessions, it may store the following on your own device:
- Student information you enter or that appears during lessons — student names, private notes, ratings, and lesson history.
- Lesson content — question text, tutor responses, and paraphrase data generated during feedback workflows.
- Draft content — in-progress text from the lesson editor, saved locally so it isn’t lost if the page reloads.
- Diagnostic and error logs — a rolling record of extension activity used for troubleshooting, capped at a fixed size so older entries drop off automatically. Your license key is always masked before anything is logged. Beyond that specific masking, other message content isn’t filtered field-by-field, so an error or warning entry can occasionally include page-related text. This log stays on your device: it is never sent anywhere unless you choose to export and share it yourself. If you switch on error reporting (see below), a separate, more heavily redacted version of an error is sent — not this log.
- License and subscription status — your license key, activation status, and expiry date, so the extension knows it’s activated. The key is masked (only the last few characters shown) anywhere it appears.
- Google Calendar data — if you connect your Google account, the extension reads your calendar list and events to display your schedule, and your Google name and email so you can see which account is connected. It doesn’t read, write, or modify anything else in your Google account.
The extension does not collect analytics, usage tracking, advertising identifiers, or browsing history outside of the Ringle platform pages it operates on.
Where this data is stored
Your lesson content, student notes, drafts, and diagnostic logs are stored locally in your browser, on your own device. None of it is transmitted to or stored on any server we operate — it never leaves your machine except in the situations below. Two things do leave: your license key and subscription status, which we need to verify against our license server, and — only if you switch error reporting on — redacted technical details of a failure, which go to Sentry and never include your lesson or student data.
Where data leaves your device
Data leaves your device in four situations, one of which is off unless you turn it on:
- Google Calendar — read-only requests to display your calendar and connected-account name/email, sent only when you’ve connected your Google account, and only to Google’s own servers.
- Ringle’s own platform — the extension reads and writes data on Ringle’s pages as part of normal tutoring functionality, the same way any browser extension interacts with the page it’s installed on.
- The Tutor Flow license server (a small backend service we run) — your license key is sent here to activate and periodically re-verify your subscription. This service talks to Creem, our payment processor, on our behalf. It never sees your lesson content, student notes, or calendar data — it only stores your license key’s associated customer ID, subscription/activation status, and (if you use a referral code) which customer referred which.
- Sentry, our error-tracking service — only if you switch on “Send error reports” in the extension’s Settings tab. It is off by default and stays off until you turn it on; you can turn it off again at any time, and nothing is sent while it is off. See “Error reporting” below for exactly what an error report contains, and “Sending a diagnostic” for the separate, more detailed report you can choose to send when a feature stops working.
No data is sent to any analytics service or advertiser, and none to any third party beyond Google, Ringle, our own license server, and — only with error reporting switched on — Sentry, as described above. The extension has no usage tracking, no advertising identifiers, and no way to report on what you do with it.
How we protect your data
The data at stake here is your Google Calendar data and profile, and your license key. Here’s what protects each of them:
- Encrypted in transit. Every network request the extension makes — to Google’s Calendar API, to Ringle’s platform, to our license server, and to Sentry when error reporting is on — travels over HTTPS/TLS. The extension is only permitted to contact
https://origins; it has no way to make an unencrypted request. - Your Google Calendar data and profile never reach a server we run. As described above, that data is read, displayed, and stored only inside Chrome’s own local extension storage on your device, which Chrome isolates from other extensions and websites. We keep no copy of it, so there’s nothing on our side to expose, lose, or have accessed by anyone else.
- What our license server holds is deliberately minimal. It stores your license key’s associated customer ID, subscription/activation status, and (if applicable) referral relationship — never your lesson content, student notes, or Google data. It runs behind Cloudflare, which enforces TLS on every connection to it.
- Error reports are stripped of sensitive content before they ever leave your device. See “Error reporting” above for exactly what is redacted; what reaches Sentry never includes your lesson content, student information, calendar data, or Google account details.
- Only the people running Tutor Flow can access the license server and our Sentry project, and neither one holds anything that would let us read your lessons, your students’ work, or your Google data.
Your Google Account data
If you choose to connect your Google account, we request two permissions:
-
Read-only calendar access — this powers “Calendar Defender,” the feature that shows your existing Google Calendar events alongside your Ringle teaching schedule so you can spot double-bookings immediately. We only ever request read access, because the feature only needs to detect and display conflicts — it never creates, modifies, or deletes anything on your calendar. Calendar data is read and shown locally inside the extension; it’s never sent to or stored on any server we operate, and never shared with third parties. We looked at a narrower, per-calendar version of this permission, but tutors need conflicts checked across every calendar they keep (personal and professional), so a narrower scope wouldn’t support the feature as designed. (Technical scope:
calendar.readonly.) -
Basic profile info (name and email) — this confirms which Google account is connected, so you can see at a glance that the calendar being read is the one you meant to connect. Shown only inside the extension; never stored on our servers or shared with anyone. (Technical scope:
userinfo.profile.) - You can disconnect at any time from the extension’s settings — this immediately revokes access through Google’s own systems.
- Our use of Google data follows the Google API Services User Data Policy, including its Limited Use requirements.
Error reporting
Tutor Flow sits on top of Ringle’s own pages, which means a change on Ringle’s side can stop a feature working without anything visibly breaking — a button quietly stops responding, a shortcut does nothing. Error reporting exists so those failures can be found and fixed rather than waiting for someone to notice and write in.
It is off by default. Nothing is sent unless you switch on “Send error reports” in the extension’s Settings tab, and you can switch it off again at any time. While it is off, errors are still recorded in the local log on your own device, exactly as described above, and go nowhere else.
When it is on, an error report is sent to Sentry, an error-tracking service, and contains:
- What failed — the name of the feature and the specific step, plus the technical error message and stack trace from the extension’s own code.
- Which part of the extension it happened in, using our own names for our own features —
feedback,classroom,docsand so on. No web address is included. Not the page you were on, not a shortened or templated version of it, not the domain. Any value that looks like an address is removed before a report is sent, whatever field it arrived in. - The version of Tutor Flow, and Ringle’s own build identifier, so a breakage can be matched to the Ringle release that caused it.
- A random identifier generated once on your install. It is not derived from your Ringle account, your Google account, your email, or anything else about you. Its only purpose is to tell “this broke for one person” apart from “this broke for everyone”.
- Whether a feature that used to run has stopped running. The extension notes, on your device, which features ran on a given day; if some stop while others carry on, that is reported. It records nothing about which pages you visited.
What an error report never contains: your lesson content, your students’ names or writing, your own feedback text, notes, drafts, calendar entries, your Google account details, your license key, or the web address of any page. The details attached to a failure are deliberately limited to counts, positions, and status values rather than text. On top of that, any field whose name indicates it could hold writing is removed before sending and replaced with a character count — so a report can say whether something was empty or unexpectedly long without carrying what it said — and every remaining value is truncated to a short length.
Sending a diagnostic
Automatic error reports say that something broke. They cannot say what to change, because fixing a broken feature means seeing how Ringle’s page is now built. That is what a diagnostic is for, and it is only ever sent because you chose to send it.
When a feature can’t find something it needs on a Ringle page, the extension records the structure of that page and keeps it on your device. It waits there until you open the extension and decide. You’ll see a small number on the Tutor Flow icon, and a row in Settings naming the feature and when it happened, with Send and Discard beside it. Nothing is sent if you do nothing, and anything you don’t act on is deleted automatically after 24 hours.
“Structure” means the skeleton of the page and nothing written on it: the names of the HTML elements, the identifiers Ringle puts on its own buttons and panels, how the elements are nested, and how many there are. Every piece of text is removed. Where knowing that a label changed is useful, the extension stores a short scrambled fingerprint of that text instead, from which the original cannot be read. Your students’ writing, your feedback, and anything else you or they typed are not part of it.
There is also a Report the page I’m on button in Settings. It exists for the case where Ringle has moved something to an address the extension doesn’t recognise at all, so nothing is recorded automatically. Pressing it reads the page currently open in front of you — once, only when pressed — and sends its structure along with that page’s web address, because in that situation the address is the answer we need. This is the only circumstance in which Tutor Flow sends an address anywhere, and it never happens without you pressing that button.
Diagnostics require error reporting to be switched on. Switching it off deletes anything still waiting to be sent.
Sentry processes this data on our behalf as a service provider, on servers in the European Union. Turning the setting off stops anything further being sent; reports already sent are retained by Sentry for a limited period and then deleted. If you would like a report deleted sooner, email support@nativeflow.me.
Data retention and your control over it
- Everything stored locally stays on your device until you remove it — by uninstalling the extension, clearing your browser’s extension storage, or using the extension’s built-in tools.
- Diagnostic and error logs are capped and rotate automatically as new entries arrive. You can clear the stored log anytime from the extension’s popup (“Clear stored errors”). Clearing the local log does not affect any error report already sent to Sentry — see “Error reporting” above.
- Error reporting can be switched on and off at any time from the extension’s Settings tab (“Send error reports”). It is off until you turn it on.
- Diagnostics waiting to be sent are listed in Settings, can be discarded individually, are deleted automatically after 24 hours, and are all deleted the moment you switch error reporting off.
- Student tracker records (names, notes, ratings, lesson history) can be cleared anytime from the popup (“Reset all tracker data”).
- The “Export error log” feature saves a diagnostic file to your Downloads folder for troubleshooting. It’s created locally and only exists if you choose to export it — treat exported files the same way you’d treat any file containing student information.
Data we don’t collect
We don’t collect, and the extension has no way to collect: payment details (Creem, our payment processor, handles that directly — we never see your card), passwords, browsing history outside Ringle’s platform, contacts, location data, or anything from websites other than the Ringle, Google, and license-server systems described above.
Emails we may send you
When you buy a licence, Creem collects your email address in order to send you your activation key. We may also use that address to tell you about problems affecting the extension — for example, if a change on Ringle’s side has stopped a feature working and we need to let you know, or ask for your help diagnosing it.
These are service messages about something you’re using, not marketing. We won’t send you promotional email on the basis of a purchase, and we won’t share your address with anyone for their own use.
Chrome Web Store Limited Use
Tutor Flow’s use of information received from Google APIs adheres to the Chrome Web Store User Data Policy, including the Limited Use requirements. We use the data the extension handles only to provide and improve the features described on this site and in the extension itself. We don’t transfer it to anyone except as set out above, we never use it for advertising or to build a profile of you, and no human reads it except where you’ve asked us to look at something.
Children’s privacy
Tutor Flow is a professional tool intended for adult tutors. It’s not directed at children, and we don’t knowingly collect data from children.
Changes to this policy
If this policy changes, the “Last updated” date above will be revised, and material changes will be noted in the extension’s release notes.
Contact
Questions about this policy or your data: support@nativeflow.me