Contextsheet is a free and privacy friendly Google Sheets™ extension connecting spreadsheets to LLMs (Gemini, Claude, ChatGPT) and Google Drive™ for contextual answers, without ever leaving your Google environment (besides the LLM endpoints).
How it Works (4 Simple Steps)
- 🔗 1. Insert URL to Drive folder / file for context.
- ❓ 2. Select cells and ask a question about them.
- ⏳ 3. Wait.
- 🥳 4. Check responses and insert into your sheet.
Future Roadmap
- 🖖 Save tokens by combining queries using same documents as context
- 🔍 OCR Scanning for scanned PDFs (Google vision)
- 🔗 Better sourcing of context in snippets
- 🐢 Slower answers as a workaround quota limits
Have suggestions for new features or found a bug? Email me at albert.steenstrup@contextsheet.com
Feature Explanations
Main Interface
This shows the primary Contextsheet sidebar view. Here, you can select your preferred AI model (like Gemini, Claude, or ChatGPT) from the dropdown, manage the API keys for each service via the tabs, and set the core context source using a Google Drive file or folder URL. Buttons for accessing Options and Advanced Settings are also visible.
Loading Response
While processing your queries, the sidebar shows a loading state. It indicates how many non-empty cells were found in your selection and displays placeholders while preparing context and fetching answers from the AI model for each query.
Example Response
Here's how Contextsheet displays results after processing queries. Each card corresponds to a cell query (e.g., "Age of Alice"). It shows the relevant text snippet extracted from the context document (if enabled in options), along with the final answer generated by the AI. You can select results to insert back into your sheet.
Options
The Options panel allows basic configuration. You can set the required Google Drive URL for context, toggle whether to include the context snippet in the result display, and choose whether to list the context documents used when inserting answers back into the sheet. Access to Advanced Settings is also provided.
Advanced Options
Dive deeper into customization with Advanced Settings. Control the preference for recent files when ranking search results. Adjust the Search Focus slider to prioritize document titles versus their full content. Modify the Context Strategy slider to favour finding answers in smaller text snippets versus reflecting upon whole documents. An upcoming PDF OCR feature is also hinted;)
Settings Panel
The main Settings panel is the hub for core configuration. Select the AI model (LLM) you want to use from the dropdown menu. Use the tabs (Gemini, Claude, ChatGPT) to securely enter and manage your API keys for each respective service. Direct links to obtain keys and manage settings are provided here as well.
About Contextsheet



Hi! I'm Albert, I created Contextsheet.
I built Contextsheet because manually copying data into spreadsheets from AI chat interfaces, especially when needing context from Drive documents, felt inefficient.
This add-on aims to bridge that gap to connect Sheets, Drive, and various LLM APIs (Gemini, Claude via Anthropic/Bedrock, and OpenAI). It incorporates features like document ranking and context management to provide more relevant answers directly within the spreadsheet environment, kinda like RAGs.
Privacy has been priority number one, with all user data kept in your own Google environment / LLM endpoints. No data is shared with third parties, nor is any data stored on my servers. Besides Google libraries, no other libraries are used outside the call for the LLM APIs chosen by the user.
Some thoughts on the project as well:
The extension is no way near perfect, as both quota limits(if your on
free tier like me) and document finding is a bit inconsintent (hence
why i created all of the options). I'm also working on a PDF OCR
feature, so that you can use scanned PDFs as context as well. All of
this is coded without any libraries other than Google Apps Script,
which enables a lot of privacy, but decreases the amount of
opportunities for performance improvements (would have loved to
incorporate stuff like Langchain or even just a vector DB).
Connect
Feel free to connect with me:
-
LinkedIn: Albert Steenstrup
-
Email: albert.steenstrup@contextsheet.com
Privacy Policy for Contextsheet
Effective Date: April 27, 2025
1. Introduction
Welcome to Contextsheet. This Privacy Policy explains how I collect, use, disclose, and safeguard your information when you use my Google Workspace Add-on, Contextsheet (the "Add-on"), within Google Sheets.
The Add-on allows users to interact with Large Language Models (LLMs) like Google Gemini, Anthropic Claude, and OpenAI ChatGPT to get answers based on the context of selected cells in their Google Sheet and/or content from Google Drive files or folders they specify.
Contextsheet is designed with privacy as a core principle. Your Google Sheet data and Google Drive content accessed by the Add-on remain within Google's infrastructure and are only sent directly from Google's servers (where the Add-on script runs) to the specific third-party LLM API endpoint you select via the Add-on. I do not operate any intermediate servers that process or store your core data.
Please read this privacy policy carefully. If you do not agree with the terms of this privacy policy, please do not install or use the Add-on.
2. Information I Collect and Access
To provide its functionality, the Add-on needs to access or collect the following information, all processed within your Google environment or sent directly to your chosen LLM:
-
Google Sheet Data (User-Initiated Access):
- Cell Content: When you select cells in your Google Sheet and submit a query, the text content of those selected cells is accessed by the Add-on's backend script (Code.gs), running on Google's servers.
- Cell A1 Notation: The location (e.g., "A1", "B2:C5") of your selected cells is accessed to identify the source of the data and for potential insertion operations.
-
Google Drive Data (User-Initiated Access):
- File/Folder Content: When you provide a Google Drive file or folder URL, the Add-on's backend script (running on Google's servers) accesses the content of the specified files (including files within the specified folder) to use as context for answering your queries. This may include text extraction from documents, spreadsheets, presentations, and PDFs (potentially using Google's internal conversion services).
- File Metadata: The Add-on accesses metadata (like file names, IDs, web links, modified times, mime types) of the specified Drive files/folders using Google's APIs.
-
User Configuration and Input:
- Queries: The questions or prompts you type into the Add-on sidebar.
- API Keys: API keys you provide for third-party LLM services (Google Gemini, Anthropic Claude, OpenAI ChatGPT). These are required to interact with the respective services. These keys are stored securely within your Google environment (UserProperties) and are never transmitted outside Google except when used to authenticate directly with the LLM provider's API.
- Settings: Your chosen LLM preference, the provided Google Drive URL, toggle settings, and slider settings, stored within your Google environment (UserProperties).
-
Google Account Information (Implicit):
- The Add-on operates under your Google Account's authority within the Google Workspace environment. I do not directly collect or store your name or email address. Access is controlled through Google's standard OAuth consent screen.
3. How I Use Your Information
All processing of your Sheet data and Drive content occurs within Google's Apps Script environment. I use the information collected or accessed solely for the following purposes:
- To Provide Add-on Functionality: To construct prompts containing your query, selected Sheet data snippets, and/or relevant Drive content snippets to be sent directly from Google's servers to the selected third-party LLM API; To receive responses from the LLM API; To display the results within the Add-on sidebar; To insert the generated answers and optional notes back into your Google Sheet based on your instructions.
- To Store Your Configuration: To save your API keys securely using Google Apps Script's UserProperties service (scoped only to you and the script within your Google environment); To store your preferences (LLM, Drive URL, settings) in UserProperties.
- To Authenticate API Calls: To use your provided API keys to make authenticated requests to third-party LLM services from the Add-on's backend script (running on Google servers). Keys are never exposed client-side after saving.
- To Improve the Add-on: I do not currently collect anonymized usage data beyond standard Google Cloud error logging for script execution issues within Google's infrastructure.
AI/ML Model Training: Contextsheet does not retain or use any Google user data obtained through Google Workspace APIs (such as Google Sheet content or Google Drive content accessed via the Add-on) to develop, improve, or train my own generalized/non-personalized artificial intelligence (AI) and/or machine learning (ML) models. My use of Google user data is strictly limited to providing the core functionality of the Add-on as described in this policy.
4. Third-Party Services and Data Sharing
To function, the Add-on interacts with the following services, always initiating connections from within Google's infrastructure:
- Google Cloud / Apps Script: The Add-on's backend code runs on Google's infrastructure.
- Google Drive API: Used to access file/folder metadata and content within Google's ecosystem.
- Google Workspace APIs (Sheets, Docs): Used to read selected cell data, insert results, and potentially convert files within Google's ecosystem.
-
Large Language Model (LLM) Providers: Crucially, data sent to LLMs travels directly from Google's servers (where the Add-on code runs) to the selected LLM provider's endpoint. No data is routed through or stored on any servers controlled by me (the developer). Based on your
selection, prompts containing your query, selected sheet cell
content snippets, and/or snippets of content from your specified
Drive files are sent to one of the following services:
- Google (Gemini Models): https://policies.google.com/privacy
- Anthropic (Claude Models): https://www.anthropic.com/privacy
- OpenAI (ChatGPT Models): https://openai.com/policies/privacy-policy
Important: I send the minimum necessary information within the prompt required for the LLM to generate a relevant answer. I do not share your API keys with these LLM providers (they are used for authentication only). I do not route your data through any intermediate servers. Your interaction with these third-party LLM services is also subject to their respective privacy policies and terms of service. I encourage you to review them.
Contextsheet does not use the Google user data (Google Sheet content, Google Drive content, user queries) transferred to these third-party LLM providers for the development, improvement, or training of Contextsheet's own generalized/non-personalized AI or ML models. The transfer of this data to the selected LLM provider is solely to enable the LLM to generate a response to your specific query based on the context you provide. I explicitly affirm that such transfers to third-party AI tools are not intended for developing generalized/non-personalized AI/ML models by Contextsheet or for Contextsheet's benefit, and are subject to the terms and privacy policies of the respective third-party LLM provider.
Other than the interactions described above, I do not share your information with any other third parties. Your data stays within Google's environment or goes directly to the LLM endpoint you select.
5. API Key Handling and Security
- Storage: Your API keys are stored using Google Apps Script's UserProperties service, specific to you and this script only, residing securely within Google's infrastructure.
- Usage: Keys are retrieved by the backend script (running on Google servers) only when needed to make authenticated API calls directly to the LLM provider. They are never stored client-side or sent back to the sidebar after saving.
- Security: The security of your stored keys depends on your Google Account security. Use strong passwords and 2FA.
6. Data Storage and Security
- Configuration Data: Stored in UserProperties linked to your Google Account within Google's environment. (This storage is secured by Google's infrastructure).
- Processing Data: Sheet/Drive content is processed transiently by the backend script running entirely within Google's infrastructure and is not permanently stored by the Add-on itself on any external servers. Snippets are sent directly to LLMs (see Section 4).
- Transmission: All communication between your browser and Google's Apps Script servers, and between Apps Script servers and third-party APIs, occurs over encrypted HTTPS.
- Data Protection Mechanisms: I rely on Google Cloud's inherent security measures for data processed and stored within their infrastructure (Apps Script execution, UserProperties storage). Sensitive data like API Keys are stored using Google's secure UserProperties service, scoped only to the user and the script. Data in transit is protected using HTTPS encryption. I do not operate external servers for processing or storing core user data accessed via Workspace APIs.
- Infrastructure: The Add-on, including its backend script (`Code.gs`), runs entirely within Google's secure Cloud infrastructure. No external servers controlled by me are used for data processing or storage.
7. Data Retention
- Configuration Data (API Keys, Settings): Retained in UserProperties (within Google's environment) while the Add-on is installed or until you clear them. I recommend clearing keys before uninstalling.
- Sheet/Drive Content: Processed transiently on Google's servers; not retained by the Add-on itself. Residual data may exist in Google execution logs or third-party LLM logs per their respective policies.
8. Your Choices and Rights
- Accessing and Modifying Settings: Via the Add-on's interface.
- Managing API Keys: Add, view (masked), update, remove via the Add-on's interface.
- Revoking Access: Via your Google Account settings ([https://myaccount.google.com/permissions](https://myaccount.google.com/permissions)).
- Uninstalling: Via Google Sheets Extensions/Add-ons menu or the Marketplace.
- Contacting me: See Section 11.
9. Children's Privacy
The Add-on is not intended for use by children under the age of 13 (or a higher age threshold applicable in your jurisdiction). I do not knowingly collect personal information from children under this age.
10. Changes to This Privacy Policy
I may update this Privacy Policy. I will notify you by posting the new policy. Changes are effective when posted. Continued use after changes constitutes acceptance.
11. Contact me
If you have any questions or concerns about this Privacy Policy, please contact me at:
Terms of Service for Contextsheet
Effective Date: April 27, 2025
1. Acceptance of Terms
Welcome to Contextsheet (the "Service"), a Google Sheets Add-on provided by Albert Steenstrup ("me", "I", "my"). By installing, accessing, or using the Service, you ("User," "you," or "your") agree to be bound by these Terms of Service ("Terms"). If you do not agree to these Terms, do not install or use the Service.
These Terms incorporate by reference my Privacy Policy, available at https://contextsheet.com/privacy-policy. Please review the Privacy Policy carefully.
2. Service Description
Contextsheet is a Google Sheets Add-on designed to enhance spreadsheet analysis by leveraging external Large Language Models (LLMs) like Google Gemini, Anthropic Claude, and OpenAI ChatGPT. The Service allows users to:
- Provide a Google Drive file or folder URL as context.
- Select cells within their Google Sheet.
- Submit queries about the selected cells, optionally using the provided Drive context.
- Send the query, selected cell data (if any), and relevant context snippets (extracted by my backend process from the provided Drive URL) to a selected LLM via the User's own API key.
- Receive generated responses from the LLM.
- Insert these responses, and optionally context snippets or source document links, back into their Google Sheet.
- Configure settings such as LLM selection, API key management, result display preferences, and context retrieval parameters.
The Service acts as an intermediary, facilitating communication between your Google Sheet, Google Drive (for context retrieval), and the external LLM APIs you configure.
3. User Accounts and API Keys
3.1. Google Account: You must have a valid Google account to use Google Sheets and install the Service.
3.2. LLM API Keys: To use the core functionality of the Service involving external LLMs (Gemini, Claude, ChatGPT), you MUST provide your own valid API key(s) for the respective service(s) you wish to use.
3.3. API Key Storage: You are responsible for obtaining these API keys directly from the providers (Google AI Studio, Anthropic, OpenAI Platform). When you enter an API key into the Service's settings, it is stored securely using Google Apps Script's `PropertiesService.getUserProperties()`. This service stores data specific to your Google account within the context of this script/add-on. I, the developers of Contextsheet, do not have direct access to view or retrieve your stored API keys.
3.4. User Responsibility for Keys and Usage: You are solely responsible for:
- The security and confidentiality of your API keys.
- All activities that occur under your API keys, including any usage costs charged by the LLM providers (Google, Anthropic, OpenAI). I are not responsible for any charges incurred through your use of these third-party services.
- Complying with the terms of service, usage policies, and pricing of the respective LLM API providers.
4. Use of the Service
4.1. License: Subject to your compliance with these Terms, I grant you a limited, non-exclusive, non-transferable, revocable license to use the Service for your internal personal or business purposes within Google Sheets.
4.2. User Conduct: You agree not to use the Service:
- For any unlawful purpose or in violation of any applicable laws or regulations.
- To infringe upon or violate my intellectual property rights or the intellectual property rights of others (including Google and the LLM providers).
- To harass, abuse, insult, harm, defame, slander, disparage, intimidate, or discriminate based on gender, sexual orientation, religion, ethnicity, race, age, national origin, or disability.
- To submit false or misleading information.
- To transmit viruses or any other type of malicious code.
- To collect or track the personal information of others without consent.
- To spam, phish, pharm, pretext, spider, crawl, or scrape.
- To interfere with or circumvent the security features of the Service, Google Sheets, Google Drive, or the third-party LLM APIs.
- To reverse engineer, decompile, disassemble, or otherwise attempt to discover the source code of the Service.
4.3. Input Data: You are responsible for the accuracy, legality, and appropriateness of any data you select in your Google Sheet or provide as a query to the Service.
4.4. Google Drive Context: When you provide a Google Drive URL, you grant the Service permission, operating under your Google account's authority, to access the content of that file or the files within that folder for the sole purpose of extracting relevant text snippets to be used as context for the LLM API calls you initiate. The Service does not store this Drive content persistently. Access is performed via standard Google APIs authorized by you.
5. Data Privacy and Security
My collection and use of information are described in my Privacy Policy (https//contextsheet.com/privacy-policy). Key points relevant to these Terms include:
5.1. Data Processed: When you use the Service, the following data is processed temporarily by the Apps Script backend running under your authority:
- The text content of the cells you select in your Google Sheet.
- The query text you enter.
- The Google Drive URL you provide.
- Text content extracted from the file(s) referenced by the Drive URL (only for context generation).
- Your configured preferences (LLM choice, toggles, etc.).
5.2. Data Storage: The Service uses Google Apps Script's `PropertiesService.getUserProperties()` to store:
- Your encrypted or obfuscated LLM API keys (as described in Section 3.3).
- Your selected preferences (LLM model, Drive URL, toggle settings, slider values).
5.3. External LLM Processing: Data sent to external LLM providers (Google Gemini, Anthropic Claude, OpenAI ChatGPT) is subject to their respective terms of service and privacy policies. I are not responsible for how these third parties handle your data. You should review their policies before using their services via Contextsheet.
5.4. Google User Data Compliance (Limited Use): Contextsheet accesses user-selected Google Sheet content and user-linked Google Drive content solely to provide its intended functionality upon user request. This use adheres to the Google API Services User Data Policy, including Limited Use requirements. I do not use this data for advertising. Data is only transferred when necessary for core functionality (e.g., to selected LLM APIs). Human reading of data is prohibited except for security, legal compliance, or with explicit user consent for support.
5.5. Security: I rely on the security infrastructure provided by Google Cloud Platform and Google Workspace. Data transmission between your browser, Google's servers (running Apps Script), and the external LLM APIs uses standard HTTPS encryption. However, no method of transmission or storage is 100% secure.
6. Third-Party Services (LLMs)
The Service relies on third-party LLM APIs (Google Gemini, Anthropic Claude, OpenAI ChatGPT). Your use of these APIs through the Service is subject to the terms, conditions, privacy policies, and usage costs of those respective providers.
I do not control and are not responsible for:
- The availability, performance, or accuracy of the third-party LLM APIs.
- The content or quality of the responses generated by the LLMs.
- Any changes made by the providers to their services, terms, or pricing.
- Any costs incurred through your use of these APIs.
You agree to comply with all applicable terms and policies of the third-party LLM providers when using the Service.
7. Intellectual Property
7.1. Service Ownership: I own all rights, title, and interest in and to the Service, including its software, code, user interface, design, and documentation, and all associated intellectual property rights.
7.2. User Data: You retain ownership of the data contained within your Google Sheets and Google Drive files.
7.3. Generated Content: Ownership of the content generated by the third-party LLMs is typically governed by the terms of the respective LLM provider.
7.4. Feedback: If you provide me with feedback, suggestions, or ideas regarding the Service, you grant me a perpetual, irrevocable, worldwide, royalty-free license to use, modify, and incorporate such feedback into the Service without any obligation to you.
8. Disclaimers
THE SERVICE IS PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT.
I DO NOT WARRANT THAT: (A) THE SERVICE WILL BE UNINTERRUPTED, SECURE, OR ERROR-FREE; (B) THE RESULTS OBTAINED FROM THE USE OF THE SERVICE (INCLUDING LLM RESPONSES) WILL BE ACCURATE, RELIABLE, OR COMPLETE; (C) THE QUALITY OF ANY PRODUCTS, SERVICES, INFORMATION, OR OTHER MATERIAL OBTAINED BY YOU THROUGH THE SERVICE WILL MEET YOUR EXPECTATIONS; OR (D) ANY ERRORS IN THE SERVICE WILL BE CORRECTED.
RESPONSES FROM LLMS CAN BE INACCURATE, INCOMPLETE, OR BIASED. YOU ARE SOLELY RESPONSIBLE FOR EVALUATING THE ACCURACY AND APPROPRIATENESS OF ANY INFORMATION PROVIDED BY THE SERVICE AND THE UNDERLYING LLMS.
9. Limitation of Liability
TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL CONTEXTSHEET, ITS AFFILIATES, DIRECTORS, EMPLOYEES, OR AGENTS BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, OR PUNITIVE DAMAGES, OR ANY LOSS OF PROFITS OR REVENUES, WHETHER INCURRED DIRECTLY OR INDIRECTLY, OR ANY LOSS OF DATA, USE, GOODWILL, OR OTHER INTANGIBLE LOSSES, RESULTING FROM: (A) YOUR ACCESS TO OR USE OF OR INABILITY TO ACCESS OR USE THE SERVICE; (B) ANY CONDUCT OR CONTENT OF ANY THIRD PARTY ON THE SERVICE, INCLUDING WITHOUT LIMITATION, ANY DEFAMATORY, OFFENSIVE, OR ILLEGAL CONDUCT OF OTHER USERS OR THIRD PARTIES (INCLUDING LLM PROVIDERS); (C) ANY CONTENT OBTAINED FROM THE SERVICE (INCLUDING LLM RESPONSES); OR (D) UNAUTHORIZED ACCESS, USE, OR ALTERATION OF YOUR TRANSMISSIONS OR CONTENT (INCLUDING API KEYS STORED IN USER PROPERTIES IF YOUR GOOGLE ACCOUNT IS COMPROMISED).
IN NO EVENT SHALL THE AGGREGATE LIABILITY OF CONTEXTSHEET EXCEED THE GREATER OF ONE HUNDRED U.S. DOLLARS (USD $100.00) OR THE AMOUNT YOU PAID me, IF ANY, IN THE PAST SIX MONTHS FOR THE SERVICE GIVING RISE TO THE CLAIM.
10. Indemnification
You agree to defend, indemnify, and hold harmless Contextsheet and its affiliates.
11. Termination
11.1. By You: You may stop using the Service at any time by uninstalling the Google Sheets Add-on.
11.2. By me: I reserve the right to suspend or terminate your access to the Service at any time, with or without cause or notice, for any reason, including, but not limited to, a breach of these Terms. I may also modify or discontinue the Service at any time without prior notice.
11.3. Effect of Termination: Upon termination, your license to use the Service ceases. Data stored in your User Properties (API keys, preferences) will remain associated with your account unless you manually remove the keys via the settings or I are required to delete data under applicable law or my Privacy Policy. I are not liable for any loss or damage resulting from termination or discontinuation of the Service.
12. Changes to Terms
I reserve the right, at my sole discretion, to modify or replace these Terms at any time. If a revision is material, I will make reasonable efforts to provide notice prior to any new terms taking effect (e.g., via a notice on my website, within the Add-on, or by email if I have collected it according to my Privacy Policy). What constitutes a material change will be determined at my sole discretion.
By continuing to access or use my Service after those revisions become effective, you agree to be bound by the revised terms. If you do not agree to the new terms, please stop using the Service.
13. Governing Law
These Terms shall be governed and construed in accordance with the laws of [Jurisdiction, e.g., the State of California, United States], without regard to its conflict of law provisions.
14. Miscellaneous
14.1. Entire Agreement: These Terms and my Privacy Policy constitute the entire agreement between you and me regarding my Service and supersede and replace any prior agreements I might have between me regarding the Service.
14.2. Severability: If any provision of these Terms is held to be invalid or unenforceable, the remaining provisions of these Terms will remain in effect.
14.3. Waiver: My failure to enforce any right or provision of these Terms will not be considered a waiver of those rights.
15. Contact Information
If you have any questions about these Terms, please contact me at: albert.steenstrup@contextsheet.com
Contextsheet