1. What is ClassWatcher?
ClassWatcher is a Chrome browser extension used by teachers to track missing assignment submissions in D2L Brightspace. It helps teachers quickly identify which students have not submitted work, and optionally send SMS or email reminders, to the right audience for their school level:
- Elementary: teachers text or email parents directly
- High school: teachers can reach students, parents, or both
- College / university: teachers message students only, no parent contact
ClassWatcher is a productivity tool for teachers. It does not modify Brightspace, does not interact with grades, and does not have access to assignment content or course materials.
In plain terms: ClassWatcher reads the list of student names on an assignment or quiz submission page and compares it against the teacher's class list to find who's missing. That is the full extent of its data access from Brightspace.
2. What Data Does ClassWatcher Access?
ClassWatcher accesses only what is visible to the teacher on screen:
- Student names: read from submission summary pages in Brightspace to identify who is present or absent from a submission list
- Assignment or quiz page URLs: used to track which pages the teacher is monitoring
- Teacher-entered contact data: parent phone numbers and email addresses that the teacher manually enters into the app; this data is never collected from Brightspace automatically
ClassWatcher does NOT access or transmit:
- Student grades or marks
- Assignment content, rubrics, or feedback
- Course materials, files, or resources
- Student account credentials or personal records
- Any data from pages the teacher has not explicitly opened and watched
- Any data from other tabs or websites
3. Google Sheets Integration
ClassWatcher offers an optional Google Sheets export feature. When a teacher uses this feature, ClassWatcher requests permission to create a spreadsheet in the teacher's own Google Drive.
| OAuth Scope | What It Allows | What ClassWatcher Uses It For |
|---|---|---|
| https://www.googleapis.com/auth/spreadsheets | Create and edit Google Sheets in the user's Drive | Creates one spreadsheet called "ClassWatcher.com" with the teacher's class list, missing items grid, and contact history |
ClassWatcher does not read, access, or transmit any other files in the teacher's Google Drive. The authorization token is stored locally in the teacher's browser and is never sent to ClassWatcher servers. Teachers can revoke this access at any time via their Google Account permissions page.
ClassWatcher's use of Google APIs complies with the Google API Services User Data Policy, including the Limited Use requirements.
If your board restricts Google API access: Some boards configure their Google Workspace environment to block third-party OAuth applications by default. If teachers encounter an error when attempting to export to Google Sheets, a board administrator can allowlist ClassWatcher using the details below.
| Field | Value |
|---|---|
| App name | ClassWatcher |
| OAuth Client ID | 1088965326290-s3gl7cgge4nh0q48282vt60748a6ohg1.apps.googleusercontent.com |
| Google Cloud Project Number | 1088965326290 |
| Scope requested | https://www.googleapis.com/auth/spreadsheets |
In Google Workspace Admin Console, go to Security → API Controls → App Access Control and add the OAuth Client ID above to your allowlist. For questions, contact [email protected].
4. Where Is Data Stored?
- Browser local storage: class lists, student names, and watch list settings are stored in the teacher's Chrome browser profile using the Chrome Storage API
- ClassWatcher servers: account credentials (hashed passwords), messaging logs (SMS/email delivery records, retained 365 days), and scan summaries for account-level features. Hosted on DreamHost (United States).
- Teacher's own Google Drive: if the Google Sheets export is used; ClassWatcher has no access to this data after export
- Third-party delivery providers: when a teacher sends an SMS or email reminder, the message content, the recipient's phone number or email address, and the student's first name are passed to our delivery providers solely for the purpose of sending that message. No class lists, grades, or other student data are transmitted. Scanning happens entirely in the teacher's browser — third-party providers are only involved at the moment a teacher chooses to send.
| Provider | Purpose | Data Received | Retention |
|---|---|---|---|
| Twilio | SMS delivery | Recipient phone number, message text, student first name | Governed by Twilio's Privacy Policy. ClassWatcher message logs are purged after 365 days. |
| AgentMail | Email delivery | Recipient email address, message subject and body, student first name | Governed by AgentMail's Privacy Policy. ClassWatcher email logs are purged after 365 days. |
ClassWatcher does not use third-party analytics, advertising networks, or data brokers. Student data is never sold, shared, or used for any purpose other than delivering the features the teacher explicitly uses.
5. Security Measures
- All data in transit is encrypted via HTTPS/TLS
- Passwords are hashed using bcrypt. Plaintext passwords are never stored
- Session tokens are cryptographically random (256-bit) and expire after 30 days
- No Brightspace API credentials are ever requested or stored. ClassWatcher reads submission pages through the teacher's existing browser session — it sees exactly what the teacher already sees on screen, and nothing beyond that
- The extension does not run on pages outside of D2L Brightspace domains (except classwatcher.com for account management)
- Parent contact information entered by teachers is accessible only to that teacher's account
ClassWatcher follows the Principle of Least Privilege — the extension requests only the permissions needed for each specific feature, and does not hold broad access by default.
| Permission | Why It's Needed |
|---|---|
| storage | Saves class lists, watch lists, and settings locally in the teacher's browser — no server call required for everyday use |
| tabs | Opens assignment and quiz pages in background tabs to scan submission status without disrupting the teacher's active session |
| scripting | Injects the ClassWatcher interface (side panel, student badges) into Brightspace pages the teacher is already viewing |
| sidePanel | Displays the ClassWatcher panel alongside Brightspace using Chrome's native side panel API |
| alarms | Runs a background watchdog timer to clean up stalled scans — no data is accessed or transmitted by this timer |
| Brightspace domain access (host_permissions, all frames) |
Allows the content script to read submission pages on known Brightspace domains. Scoped to specific domains: brightspace.com, desire2learn.com, and a small set of other known Brightspace hostnames. The extension runs across all frames on these pages because D2L Brightspace uses nested iframes as part of its own page structure — this is required for accurate scanning, not a request for broader access |
| Any-site access (optional — not held by default) |
Some school boards host Brightspace on a custom domain (e.g. learn.schoolboard.ca) that doesn't match the standard Brightspace patterns. If a teacher enters a custom Brightspace URL in ClassWatcher Settings, the extension requests access to that specific domain only at that moment. This permission is never requested or held unless a custom domain is configured by the teacher |
In plain terms: ClassWatcher reads your browser, not your Brightspace. No administrator needs to approve an API integration, no OAuth token is issued to the LMS, and nothing changes on the Brightspace side when a teacher installs ClassWatcher. The extension is entirely teacher-controlled and session-bound.
6. School Plan — Multi-Teacher Accounts
The School plan allows up to 10 teacher seats under a single billing account. The account holder (admin seat) has access to a usage dashboard showing activity across all seats. This section explains the data boundary between the admin seat and individual teacher seats.
What the admin seat can see for each teacher:
- Teacher name and email address
- Number of SMS messages sent this month
- Number of email messages sent this month
- Date and time of last scan
- Shared credit pool balance
What the admin seat cannot see:
- Individual teachers' class lists or student names
- Parent phone numbers or email addresses entered by teachers
- The content of any SMS or email message sent by a teacher
- Contact notes or scan results for specific students
The admin seat is a billing and oversight role — it can see that a teacher sent 12 messages this month, but not who was contacted or what was said. Each teacher's student data remains private to their own account.
7. Privacy Compliance
ClassWatcher is operated by David W Cooper and is designed with the following privacy frameworks in mind. Teachers and administrators are responsible for ensuring use of ClassWatcher aligns with their institution's acceptable use policies.
PIPEDA (Canada): Canada's federal private-sector privacy law. ClassWatcher limits data collection to what is necessary for the features the teacher explicitly uses and does not share data with third parties. As a data-minimization measure, message logs are retained for 365 days and then deleted. ClassWatcher maintains a public Privacy Policy and IT overview. See our PIPEDA compliance guide for full details.
FERPA (United States): The Family Educational Rights and Privacy Act applies to US schools receiving federal funding. Key points for evaluating ClassWatcher under FERPA:
- Submission status is scanned locally in the teacher's browser, not transmitted to ClassWatcher servers during a scan
- ClassWatcher does not access grades, gradebooks, transcripts, or SIS data
- Parent contact information is entered by the teacher, not pulled from student records
- Teacher use of ClassWatcher falls under the school official / legitimate educational interest exception
- Data Processing Agreements are available for US districts on request
See our FERPA compliance guide for a full analysis. For DPA requests or security questionnaires, contact [email protected].
Provincial laws (Canada): Ontario (MFIPPA), Alberta (FOIPPA), and BC (PIPA) govern school boards rather than tool vendors. ClassWatcher's data minimization design is intended to support compliance. Note: ClassWatcher's servers are hosted in the United States (DreamHost). Boards with data residency requirements should consult their privacy officer before adopting any US-hosted tool.
Full details are in our Privacy Policy and Terms of Service.
8. Contact for IT Inquiries
Questions from your IT or security team?
We're happy to provide additional documentation, answer security questionnaires, or discuss board-specific requirements. Reach out directly:
Email [email protected]You can also review our Privacy Policy and Terms of Service for full legal detail.