Summary
- SheetWatch is a Google Sheets change-monitoring service. It polls spreadsheet ranges you select, detects cell-level changes, and notifies you.
- We never sell your data. Google user data is not sold, rented, or shared with advertisers, data brokers, or credit bureaus.
- We never train AI on your data. Google user data is not used to develop, improve, or train generalized artificial intelligence or machine learning models.
- We store the cell ranges you choose to watch. This is required to compute before-and-after differences. Nothing outside your selected range is stored.
- One cookie only. A strictly necessary signed session cookie. No analytics, no advertising, no tracking pixels.
- You can revoke access instantly at myaccount.google.com/permissions, and request full deletion by email.
01Who we are
SheetWatch ("SheetWatch", "the Service", "we", "us") is operated by Prem Raichura, an independent software developer based in India, acting as the data controller for personal data processed through the Service.
| Service name | SheetWatch |
|---|---|
| Operator | Prem Raichura (individual developer) |
| Country | India |
| Service URL | https://sheetwatch.vercel.app |
| Privacy contact | premraichura7@gmail.com |
02Scope of this policy
This policy applies to the SheetWatch web application hosted at
https://sheetwatch.vercel.app, its supporting API, and its background
monitoring workers. It covers everyone who signs in with a Google account, as well as
anyone who opens a public SheetWatch share link.
This policy does not cover Google Sheets, Google Drive, or any other Google product. Your use of those products is governed by Google's Privacy Policy. It also does not cover third-party destinations you choose to send notifications to, such as a Slack or Discord workspace; once a notification is delivered there, that platform's own privacy policy applies.
03Google user data
SheetWatch signs you in with Google OAuth 2.0. We never see, receive, or store your Google password. During sign-in, Google shows you a consent screen listing the permissions below, and you can decline at any point.
Scopes we request, and why
| OAuth scope | Sensitivity | Why SheetWatch needs it |
|---|---|---|
.../auth/spreadsheets |
Restricted |
Read: fetch the cell range you chose to watch, on the interval you
chose, so changes can be detected. Write: used only when you explicitly accept a cross-sheet suggestion in the Compare feature, which writes that one value into the target cell. |
.../auth/drive |
Restricted | List the spreadsheets you own or that are shared with you, so you can pick one to watch without pasting a URL; read spreadsheet titles and modification timestamps; and move a spreadsheet to your Drive trash when you choose to remove it. |
email |
Basic | Identify your account, keep your watch list attached to it, and deliver email notifications and scheduled reports. |
profile |
Basic | Read your Google account identifier so returning sign-ins map to the same SheetWatch account. |
What we store
| Data | Stored? | Detail |
|---|---|---|
| Google account email | Yes | Your account identifier and the default destination for email notifications. |
| Google account ID | Yes | An opaque, stable identifier issued by Google. |
| OAuth access and refresh tokens | Yes | Encrypted at rest with AES-256-GCM. Required so background monitoring can run while your browser is closed. |
| Spreadsheet IDs, tab names, cell ranges | Yes | The configuration describing what you asked us to watch. |
| Cell values inside your watched range | Yes | Stored as point-in-time snapshots so a change can be diffed against the previous state. See Retention. |
| Change history | Yes | A summary and structured detail of each detected change, such as which cell moved from which value to which value. |
| Cell values outside your watched range | No | Never fetched and never stored. |
| Google password | No | Never transmitted to or seen by SheetWatch. |
| Drive files that are not spreadsheets | No | Not read and not stored. |
| Google contacts, calendar, or Gmail | No | Not requested and not accessible. |
On the breadth of the Drive scope. The drive scope
technically grants access to all files in your Google Drive. SheetWatch's code only ever
queries spreadsheet files, reads their titles and modification times, and — at your
explicit request — moves a spreadsheet to trash. We do not read, download, index, or
store any other file. If you prefer to grant less, you can watch sheets by pasting a URL
instead of browsing, and revoke access at any time.
What we do not do with Google user data
- We do not sell it, rent it, or trade it.
- We do not transfer it to advertising platforms, data brokers, information resellers, or credit bureaus.
- We do not use it to serve, target, or measure advertisements.
- We do not use it to develop, improve, or train generalized artificial intelligence or machine learning models.
- We do not allow humans to read it, except in the narrow cases listed in the next section.
Human access
A human being reads your Google user data only when one of these is true:
- You give explicit, specific consent — for example, you send us a screenshot or ask us to debug a particular sheet.
- It is necessary for security purposes, such as investigating a suspected abuse or an active vulnerability.
- It is required to comply with applicable law.
- The data is aggregated and fully anonymised, and is used for internal operations such as capacity planning.
04Google API Services Limited Use disclosure
SheetWatch's use and transfer of information received from Google APIs to any other app will adhere to the Google API Services User Data Policy, including the Limited Use requirements.
Concretely, this means SheetWatch limits its use of data obtained through Google APIs to providing and improving the user-facing features that are prominently described in the SheetWatch interface — monitoring the sheets you select, detecting changes, showing you history, and sending you notifications. Any other use requires your explicit consent.
05Other data we collect
| Category | Examples | Source |
|---|---|---|
| Watch configuration | Poll interval, tab and range scope, row-match rules, alert rules, pause and snooze state, project grouping, labels and colours | You |
| Notification settings | Web push subscription endpoint and encryption keys, webhook URLs for Slack, Discord, or a generic endpoint, Telegram chat ID, quiet-hours window, digest cadence | You |
| Delivery logs | Channel used, destination label, notification title and body, status, error message, retry count, timestamps | Generated by the Service |
| Interface preferences | Theme, accent colour, density, font scale, animation setting, default landing tab, time format | You |
| Dashboard objects | KPI widgets, chart widgets, comparison groups, scheduled report settings, share links and their view counts | You |
| Technical logs | IP address, request time, user agent, error traces. Used for rate limiting, abuse prevention, and debugging. | Automatic |
Some interface preferences are also cached in your browser's localStorage under
the key sw:prefs so the correct theme paints before the app loads. That data
stays on your device and is cleared when you clear site data.
06Why we process data
- To run the core feature. Fetch your watched range on schedule, compare it to the previous snapshot, and record what changed.
- To notify you. Send web push, email, Slack, Discord, generic webhook, or Telegram messages according to the rules you configured.
- To show history. Render change timelines, KPI tiles, charts, and comparison suggestions.
- To deliver scheduled reports. Generate PDF or CSV summaries and email them on your chosen cadence.
- To keep you signed in. Maintain an authenticated session.
- To keep the Service safe and available. Rate limiting, abuse detection, error monitoring, and capacity planning.
- To comply with law. Respond to valid legal process and enforce our Terms.
07Legal bases for processing
Where the EU or UK GDPR applies, we rely on the following legal bases. Where India's Digital Personal Data Protection Act, 2023 applies, we process personal data on the basis of the consent you give when you connect your Google account and configure the Service.
| Processing | Legal basis |
|---|---|
| Reading and storing your watched sheet data to detect changes | Performance of a contract |
| Sending notifications you configured | Performance of a contract |
| Connecting your Google account and requesting OAuth scopes | Consent |
| Optional integrations such as Telegram or webhooks | Consent |
| Security logging, rate limiting, and abuse prevention | Legitimate interests |
| Responding to legal requests | Legal obligation |
11Retention
| Data | Kept for |
|---|---|
| Account record, OAuth tokens, preferences | Until you delete your account or revoke access |
| Watch configuration | Until you delete the watch or your account |
| Snapshots of watched cell ranges | The 50 most recent per sheet are kept. Beyond a 7-day detail window, only one snapshot per day is retained; the rest are pruned automatically. |
| Change history | Until you delete the sheet or your account. Archiving a sheet stops monitoring but deliberately keeps its history. |
| Notification delivery logs | Until you delete your account |
| Revoked share links | The record is retained after revocation so the view-count history stays intact; the link itself stops working immediately |
| Technical and error logs | Typically 30 days, subject to our hosting providers' own retention |
Deleting a sheet from SheetWatch cascades to its snapshots, change history, widgets, and webhook associations. Deleting your account cascades to everything listed above.
12Security
- Token encryption. Google access and refresh tokens are encrypted at rest with AES-256-GCM using a 32-byte key held outside the database. The Service refuses to start with a weak or placeholder key.
- Transport encryption. All traffic between your browser, our API, and Google runs over HTTPS/TLS.
- Session hardening. The session cookie is signed,
HttpOnly, andSecure. Signing keys can be rotated without logging users out. - CSRF protection. The OAuth round-trip is bound to your browser session with a one-time
statevalue. - Server-side request forgery defence. Outbound webhook URLs are validated to block internal and private network hostnames.
- Rate limiting. Authentication and API endpoints are throttled per IP address.
- Least storage. Only the cell range you select is ever fetched or retained.
No system is perfectly secure. If you believe you have found a vulnerability, please email premraichura7@gmail.com rather than disclosing it publicly, and allow reasonable time for a fix. If a breach affects your personal data, we will notify you and the relevant authority as required by applicable law.
13International transfers
SheetWatch is operated from India and runs on cloud infrastructure whose regions may be located in the United States, the European Union, or elsewhere. Using the Service therefore involves transferring your data across borders. Where the GDPR applies, such transfers rely on the European Commission's Standard Contractual Clauses or an equivalent safeguard offered by the relevant provider. Each provider listed in Sharing and subprocessors maintains its own transfer safeguards.
14Your rights
Depending on where you live, you may have the following rights. We honour these requests for all users regardless of location.
- Access. Ask what personal data we hold about you and receive a copy.
- Rectification. Ask us to correct inaccurate data. Most fields are directly editable in the app.
- Erasure. Ask us to delete your account and all associated data.
- Portability. Receive your change history in a machine-readable format. The app also exports reports as CSV.
- Restriction and objection. Ask us to pause certain processing, or object to processing based on legitimate interests.
- Withdraw consent. Revoke Google access or disable an integration at any time, without affecting processing already carried out.
- Complain. Lodge a complaint with your local supervisory authority, or in India with the Data Protection Board.
To exercise any right, email premraichura7@gmail.com from the Google account you signed in with. We respond within 30 days. We do not charge a fee, and we do not discriminate against you for exercising a right.
15Deleting your data
Revoke Google access
Go to myaccount.google.com/permissions, select SheetWatch, and choose Remove access. This takes effect immediately and stops all further reading of your sheets. Any tokens we hold become permanently unusable.
Delete individual items
In the app, deleting a tracked sheet removes its snapshots, change history, and widgets. Revoking a share link disables it instantly.
Delete your entire account, from inside the app
Go to Settings → Account → Danger zone and choose Delete account. You will be asked to type your account email to confirm. Deletion is immediate and permanent: we revoke SheetWatch's grant on your Google account, then erase your account record, OAuth tokens, watch configuration, snapshots, change history, widgets, webhooks, push subscriptions, scheduled reports, share links, and notification logs. No email, no waiting period, and no request for us to process.
Your spreadsheets themselves are never touched by deletion — they remain in your Google Drive exactly as they were.
Backups holding residual copies are overwritten on their normal rotation, within 90 days at the outside. If you would rather we handled it, or you have lost access to the account, email premraichura7@gmail.com from the Google account you signed in with and we will erase it within 30 days.
Revoking access in your Google account stops SheetWatch from reading anything new, but it does not by itself erase data we already stored. To remove that too, use the in-app deletion above.
16Children
SheetWatch is not directed at children and is not intended for anyone under 16, or under 18 in India where a parent or guardian has not provided verifiable consent. We do not knowingly collect personal data from children. If you believe a child has provided us with personal data, email us and we will delete it.
17Changes to this policy
We may update this policy as the Service changes or the law requires. The Last updated date at the top always reflects the current version. For material changes — for example, requesting a new OAuth scope or adding a new category of data sharing — we will give notice in the app before the change takes effect, and where the law requires it, ask for your consent again. Continuing to use SheetWatch after a change takes effect means you accept the updated policy.
18Contact
For any privacy question, data request, or security report, email premraichura7@gmail.com. Please write from the Google account associated with your SheetWatch account so we can verify the request. We aim to acknowledge within 7 days and resolve within 30.
19Frequently asked questions
Does SheetWatch sell or share my Google data?
No. SheetWatch does not sell, rent, or trade Google user data, and does not transfer it to advertisers, data brokers, information resellers, or credit bureaus. Google user data is never used to train artificial intelligence or machine learning models.
Does SheetWatch store the contents of my spreadsheets?
Only the cell range you explicitly choose to watch. SheetWatch stores point-in-time snapshots of that range so it can compute a before-and-after difference when something changes. Cells outside your selected range are never fetched and never stored. Snapshots are pruned automatically: the 50 most recent per sheet are kept, and beyond a 7-day detail window only one snapshot per day is retained.
Can SheetWatch edit or delete my spreadsheets?
Only in two situations you trigger yourself. First, when you explicitly accept a cross-sheet suggestion in the Compare feature, SheetWatch writes that one value into the target cell. Second, when you choose to remove a spreadsheet from the Sheets page, SheetWatch moves that file to your Google Drive trash, where you can restore it. During routine monitoring SheetWatch only reads.
Why does SheetWatch ask for full Drive access?
The Drive scope lets SheetWatch list the spreadsheets you own or that are shared with you, so you can pick one from a browser instead of pasting a URL, and lets it move a spreadsheet to trash when you ask. SheetWatch only queries spreadsheet files and never reads, downloads, or stores any other file in your Drive.
How do I delete my account and all my data?
Open Settings → Account → Danger zone and choose Delete account, then type your account email to confirm. Deletion is immediate and permanent: SheetWatch revokes its Google grant and erases your account record, OAuth tokens, tracked sheets, snapshots, change history, widgets, webhooks, share links, and notification logs. Your spreadsheets are never touched and stay in your Google Drive. If you would rather we handled it, email premraichura7@gmail.com from the registered account.
Does SheetWatch use tracking cookies or analytics?
No. SheetWatch sets exactly one cookie, a signed session cookie named sw_session that is strictly necessary to keep you signed in. There are no analytics cookies, no advertising cookies, and no third-party tracking pixels.
Where is my data stored?
In a managed PostgreSQL database operated by Neon, with the application hosted on Vercel and realtime updates delivered through Cloudflare. Regions may be in the United States, the European Union, or elsewhere, so using SheetWatch involves international data transfers.
Who can see my public share links?
Anyone who has the URL. Share links are unguessable but not access-controlled, so treat them like public web pages. They expose only the KPI widget values you selected and the board title, never your email address or your other sheets. You can revoke a link at any time in Settings.