Privacy Policy
SheetLink never stores your transactions. Financial data flows from Plaid to your spreadsheet in under a second — and is never cached on our servers.
Last updated: March 2026
TL;DR — Plain language summary
What we do store
- Encrypted Plaid access tokens
- Your Google user ID and email
- Linked sheet metadata (sheet ID, title)
- Plaid metadata (item_id, institution_id, cursor)
- Subscription tier (Free / Pro / MAX)
- Minimal operational logs (non-PII)
What we never store
- Transaction amounts, merchants, categories, or dates
- Account balances or transaction history
- Bank usernames or passwords (Plaid handles these)
- Google OAuth tokens (stay in your browser)
- Your spreadsheet contents
We do not sell or share your data. Ever. You can delete all your data at any time by disconnecting your bank and uninstalling the extension.
How your data flows
SheetLink is a transparent data pipe, not a data vault.
Plaid → SheetLink API
Token exchange only — no transaction data
SheetLink API → Plaid
Fetch transactions using your encrypted token
SheetLink API → Your browser
Returns JSON (deleted from memory immediately after)
Your browser / CLI → Your destination
Data written directly to Google Sheets, Excel, Postgres, SQLite, JSON, or CSV — never stored on our servers
Privacy guarantee: Transaction data exists on SheetLink servers for less than a second during sync — just long enough to fetch from Plaid and return to your browser. Nothing is cached or logged.
Google OAuth & the callback page
How sign-in works
- 1. Extension opens Google OAuth in a secure popup
- 2. You authorize Google Sheets access via Google's page
- 3. Google redirects to
sheetlink.app/oauth/callbackwith access token - 4. Callback page sends token to extension via local Chrome messaging
- 5. Extension stores token locally for subsequent syncs
OAuth guarantee: The callback page at sheetlink.app/oauth/callback never sends your token to any server. It runs entirely client-side, extracts the token from the URL, and passes it directly to the extension via Chrome's local messaging API. No analytics, no logging, no server processing.
Google API OAuth compliance
In compliance with the Google API Services User Data Policy.
Scopes requested
auth/spreadsheets— write transaction data to sheets you selectauth/script.projects— create Apps Script projects for recipe installationauth/userinfo.email— your email for authentication and account management
Data sharing
We do not sell data, share with advertisers, or send Google user data to any external analytics services. Disclosure is only made if required by law.
Data storage
- Google Sheets data — not stored on our servers; written directly to your sheet
- Apps Script projects — container-bound to your spreadsheet; we don't store script content
- OAuth tokens — managed by Chrome extension storage; never transmitted to our backend
- User info — Google user ID and email stored in our database for authentication only
Data deletion
- Revoke Google access at myaccount.google.com/permissions
- Delete your sheet data by removing the spreadsheet tab in Google Sheets
- Uninstall the extension to clear all local storage
JWT authentication & sessions
What tokens contain
- ✓ Your user ID (UUID)
- ✓ Your email address
- ✓ Expiration timestamp (60 minutes)
- ✓ Cryptographic signature
What tokens don't contain
- ✗ Google OAuth token
- ✗ Bank data or transactions
- ✗ Google Sheets information
- ✗ Any financial data
Session expiry: JWT tokens expire after 60 minutes. Re-authentication is usually one click (Google remembers recent sign-ins). Tokens are stored in Chrome's secure local storage and never transmitted to third parties.
Client application disclosures
Chrome Extension
The extension does not collect browsing activity or track which websites you visit. It does not inject scripts into web pages. All data processing occurs locally in your browser. JWT tokens are stored in chrome.storage.local and never transmitted to third parties. Google OAuth tokens remain in your browser and are never sent to our servers.
Excel Add-in PRO & MAX
The add-in is a Microsoft Office task pane application hosted at sheetlink.app/excel/. It uses the same backend API and Plaid integration as the Chrome extension.
- Auth: Google OAuth via
Office.context.ui.displayDialogAsync— a Microsoft-managed dialog - Token storage: JWT stored in the task pane's
localStorage, scoped to the task pane and cleared when Excel closes - Data destination: Transactions written directly to your workbook via Office.js — no data sent to Microsoft servers by SheetLink
CLI & API MAX
MAX subscribers receive a REST API key and access to the sheetlink CLI for unattended, scheduled syncs.
- Auth: API key sent as a bearer token over HTTPS — never stored in plaintext
- Data destinations: Postgres, SQLite, JSON, CSV — data is written directly to your chosen destination and never cached on our servers
- Logs: The CLI produces local logs only; no request bodies or transaction data are logged server-side
- Claude AI: If you use the Claude integration, your transaction data is sent to Anthropic's API on your behalf. SheetLink does not retain any data submitted to Claude. Subject to Anthropic's privacy policy.
Encryption & transparency
Fernet encryption
Plaid access tokens are encrypted at rest using Fernet (AES-128-CBC + HMAC). The encryption key lives in environment variables — even database access wouldn't expose your tokens without it. Tokens are only decrypted during sync operations.
Open source client
SheetLink's browser extension and landing site are fully open source on GitHub. You can inspect exactly how your data flows through the extension before installing. The backend API is private for security reasons but its architecture is documented in the public repo.
Privacy middleware
Our backend includes middleware that automatically suppresses detailed logging for all Plaid-related endpoints. Only high-level request metadata is logged (e.g. "POST /plaid/sync") — never request bodies or transaction data.
Your rights
- Disconnect anytime — removes encrypted token from our DB immediately
- Delete your sheet — we have no copy
- Uninstall — clears all local storage
- Audit the code — extension is open source
Third-party services
Plaid
Securely connects to your bank and retrieves transaction data. Your banking credentials are handled exclusively by Plaid, never by SheetLink.
Plaid Privacy Policy →We write data to your Google Sheet via the Sheets API. You control who can access your sheet.
Google Privacy Policy →Microsoft
The Excel Add-in uses the Office.js API to write transactions. SheetLink does not transmit workbook data to Microsoft.
Microsoft Privacy Statement →Anthropic (MAX)
MAX subscribers may use Claude AI to query their transaction data. SheetLink sends transaction data to Anthropic's API on your behalf and does not retain any data submitted to Claude.
Anthropic Privacy Policy →Questions about privacy?
Email us at privacy@sheetlink.app
This policy may be updated from time to time. Material changes will be communicated via email or through the extension. Continued use after updates constitutes acceptance.