We collect information in three ways: (a) information you provide directly to us; (b) information we collect automatically through your use of the Service; and (c) information we receive from third parties such as identity providers, schools, payment processors, and integration partners.
Account & profile information. Name, email address, profile picture, password hash (where applicable), authentication identifiers from Google or other identity providers, role (student, educator, admin, founder, team member, individual), school or organization affiliation, time zone, language preferences, two-factor authentication status. Birthday (month and day only, used to trigger a confetti welcome on your birthday).
Content you create or upload. Tasks, notes, chat messages, attachments, files, comments, classroom materials, assignments, quizzes, quiz responses and grades, lecture materials, textbook uploads (PDFs and parsed text), flashcards, study sessions, whiteboards, canvas content, projects, calendar events, GitHub commit metadata you connect, marketing assets and campaigns you create, writing drafts and instructor feedback, course discussions, and any other content you submit while using the Service ("User Content").
AI inputs and outputs. When you use Tori or other AI features, we collect your messages, the context you select (such as a chat thread, assignment, classroom roster, note, or textbook chapter), the system prompt assembled for the request (which includes your first name and any memory facts Tori has stored about your preferences), and the AI response. These exchanges are retained so you and your collaborators can revisit them. See §8 for the full detail of what is sent to AI providers.
Adaptive learning model data (school deployments only). When Tori tutors a student in a school deployment, we build a learning model that personalizes her teaching to that specific student. The model tracks behavioural signals like average response time, which types of explanations work best, frustration and breakthrough indicators, and how long the student stays engaged before needing a break. It does not record conversation content — only behavioural signals derived from how the student interacts. In BYODB deployments this model lives in the school's database. Students and admins can reset it at any time from the student's profile.
Accommodation and accessibility data (school deployments only). Teachers may record accessibility information for students, including IEP or 504 plan status, learning differences (such as dyslexia or ADHD), preferred communication style, extended-time multiplier, text-to-speech voice, and teacher notes for Tori. This information is used only to personalize Tori's teaching approach for that student. It is never shared with other institutions and never used for any commercial purpose.
Exam integrity data (Academy proctored exams only). During proctored Academy exams, webcam access is used to detect whether a face is present, whether multiple faces appear, and whether eye gaze moves off-screen. We store only yes/no flags for each detection event — not raw images, video recordings, or biometric templates. We also record paste / blur / fullscreen-exit events during exams. These flags are visible to instructors and are deleted 90 days after the exam attempt is reviewed.
Safety signals. To protect student wellbeing, a small set of patterns screens messages for content that may indicate a student is in distress (self-harm, abuse disclosures). When a pattern matches, the message excerpt is reviewed by an AI classifier to determine whether a wellbeing flag should be created. Flagged messages may be visible to school counselors or administrators. This is a child-safety feature, not general surveillance, and is active only in school deployments where the school has enabled counselor access.
Communications. Messages you send to us through email, the support chat on our marketing site (handled by our own AI assistant Tori, with a human on call), feedback forms, support tickets, the Tori AI assistant, video calls placed through Jitsi, and any other communication channel we make available.
Payment information (when applicable). When paid plans are enabled, payment is processed by Stripe. We do not store full payment-card numbers on our servers. We may receive billing metadata such as last-four digits, card brand, billing zip code, and transaction status.
Authentication & integration data. When you sign in with Google, Microsoft, Clever, or ClassLink, we receive your basic profile information and email address from that provider. When you connect optional integrations (such as Google Classroom or GitHub), we request only the OAuth scopes needed for the feature you opted into and we store the resulting access and refresh tokens encrypted at rest using AES-256-GCM.
Device, log, and usage data. We automatically collect IP address, browser type, operating system, device identifiers, referring URLs, pages viewed, features used, click and scroll events, session timestamps, error and crash reports, and approximate location derived from your IP (city, region, and country level — used, for example, to render the admin live globe and to localize weather context for morning briefings). This data is generated by routine server logs and product analytics.
Cookies, local storage, and similar technologies. We use first-party cookies and local storage to keep you signed in, remember preferences, secure sessions, and run analytics. Section 13 explains your choices around cookies.
Information from schools and educators. If your school, educator, or organization invites you to SetFlow, we may receive your name, email, role, classroom assignment, and accommodations directly from them. Schools and educators are responsible for the accuracy of this information and for obtaining any consent required under applicable law before sharing it with us.