Privacy Policy: Sheetpane: Google Sheets Connector for Jira
Effective date: October 20, 2026
This policy explains what information Sheetpane handles, where it goes, and how long it's kept. Sheetpane is provided by Brainstatic Threads ("we", "us"). It has two parts:
- Sheetpane for Jira (the "Jira app"): an app for Jira Cloud, installed by a Jira admin from the Atlassian Marketplace. It runs on Atlassian Forge, Atlassian's hosted app platform.
- The Sheetpane add-on for Google Sheets (the "add-on"), listed on the Google Workspace Marketplace as "Sheetpane: Jira Connector": a free add-on each person installs in Google Sheets. It runs on Google Apps Script, in the person's own Google account.
Together they're "Sheetpane".
Summary
- Sheetpane copies Jira work items into a Google Sheets spreadsheet when a person asks it to. The data goes from Jira to that person's spreadsheet and nowhere else.
- Each person connects with their own Sheetpane key. Queries run as that person, so a spreadsheet only gets work items they can open in Jira.
- We run no servers of our own. The Jira app stores no work item content: only hashes of keys, who owns them, the site's on/off switch and daily usage counts.
- We don't sell data, show ads, or use tracking or analytics.
How data moves
- A person creates a key in Jira (Settings (⚙) → General settings → Sheetpane) and pastes it into the add-on.
- When the person imports or refreshes a query, the add-on sends a request from Google's Apps Script service to the Jira app's address on Atlassian Forge. The request carries the key's secret part, the JQL query, the chosen fields, and for later pages or hourly refreshes, a page token or the time of the last refresh.
- The Jira app checks the key, checks that a Jira admin hasn't turned Sheetpane off and that the license is active, and runs the query in Jira as the key's owner.
- The Jira app returns the requested fields of the matching work items. The add-on writes them into the query's tab in the spreadsheet.
The add-on never sends spreadsheet contents anywhere. It reads only what it needs to update its own tabs: their names, header row and work item key column, and the spreadsheet's time zone.
Information the Jira app handles (Forge)
| Information | Why | Where it's kept | How long |
|---|---|---|---|
| Keys: a SHA-256 hash of each key's secret, the owner's Atlassian account ID, the name the person gave the key, when it was created and when it was last used (updated at most hourly) | To check requests from the add-on, know whose permissions to use, and show each person their keys | Forge storage. The key itself is shown once, when it's created, and never stored | Until the person or a Jira admin revokes it, or the Jira app is uninstalled |
| Site setting: whether Sheetpane is on for the site | Admin control | Forge storage | Until changed or the Jira app is uninstalled |
| Usage counts: for each day, the number of requests and rows sent to Google Sheets, for the whole site | So Jira admins can see usage | Forge storage. Not per person | Until the Jira app is uninstalled |
| Error logs | To diagnose failures | Atlassian's Forge logging. Logs record errors, such as Jira's status code and error text, never query results | Per Atlassian's log retention |
While answering a request, the Jira app reads from Jira, as the key's owner: the work items that match the query, the fields they can see, and Jira's check of the JQL. As the app, it reads the owner's display name and time zone (the time zone turns "since the last refresh" into JQL) and the site's address. None of this is stored by the Jira app. It's held in memory only while the request runs.
The app also receives Atlassian account IDs and site details as part of the Forge platform context.
Information the add-on handles (Google)
The add-on stores its data with Google, using Apps Script's storage for add-ons:
| Information | Where it's kept | Who can see it | How long |
|---|---|---|---|
| The person's connection: the key (the Jira app's address and the secret), and the Jira site address and display name shown in the sidebar | The person's user properties for the add-on, in their Google account. Not in the spreadsheet | Only the add-on, running as that person | Until the person clicks Disconnect |
| The list of Jira fields for the field picker (names and IDs, no work item data) | The person's Apps Script cache | Only the add-on, running as that person | Up to 6 hours |
| Saved queries: name, JQL, chosen fields, the tab they fill, schedule, last run time, row count, the last error message, and a page token while a large refresh is unfinished | The spreadsheet's document properties for the add-on | Anyone who uses Sheetpane in that spreadsheet | Until someone deletes the query |
| Schedules: one hourly time-driven trigger per person per spreadsheet | Apps Script, in the person's account | The person | Until the person turns off or deletes every scheduled query in that spreadsheet, or clicks Disconnect there |
| Work item data: the fields people choose, for the work items their queries return | The spreadsheet's tabs | Everyone the spreadsheet is shared with | Until people delete it in Google Sheets |
Scheduled refreshes run as the person who set a schedule, even when the spreadsheet is closed, and use that person's key. They refresh only the queries that person owns (created, last changed or scheduled), so another editor can't change what a schedule fetches.
The add-on's requests to the Jira app, and the work item data coming back, pass through Google's Apps Script and URL Fetch service. Google handles them, and everything the add-on stores, as part of the Google service you use, under your agreement with Google (your Google Workspace agreement, or Google's terms for personal accounts).
Error messages. The add-on is set to record errors it hits in Google Cloud Logging for our Google Cloud project. An error message can include Jira's explanation of a problem, such as a JQL mistake, which may quote part of the query. It doesn't include query results or keys. Google Cloud Logging keeps these entries for 30 days by default.
Anyone who can see the spreadsheet can see the data
Jira's permissions decide what Sheetpane copies into a spreadsheet. After that, Google Sheets' sharing decides who can see it. Anyone the spreadsheet is shared with can see every tab, including work items they couldn't open in Jira. Anyone who can edit it can change its saved queries, and the next scheduled refresh runs those queries as the person who set the schedule. Share spreadsheets that use Sheetpane only with people who should see that data.
Google permissions (OAuth scopes) the add-on asks for
| Permission (scope) | Why Sheetpane needs it |
|---|---|
spreadsheets.currentonly |
To create each query's tab and write work items into it, only in the spreadsheet where you use Sheetpane |
script.container.ui |
To show the Sheetpane sidebar and menu |
script.external_request |
To fetch work items from the Jira app on your Jira site. The add-on can only contact the Jira app's address on Atlassian Forge |
script.scriptapp |
To run the hourly or daily refresh you schedule, while you're away |
Sheetpane doesn't ask for access to your Google Drive, Gmail, contacts, other spreadsheets, or your email address.
Google user data
Sheetpane's use of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements.
The add-on uses its access to the spreadsheet only to create, fill and refresh the tabs for its queries, and stores only the information described above. It doesn't send spreadsheet contents to us or anyone else, doesn't use them for advertising, doesn't sell them, and doesn't let people read them except as part of the spreadsheet itself.
Our access to your data
We can't see your Jira data, the Jira app's Forge storage, your spreadsheets, or what the add-on stores in your Google account. The add-on runs in your Google account and the Jira app runs on Atlassian's platform; no data passes through systems we run. We can see the add-on's error messages in Google Cloud Logging, as described above, and use them only to fix problems. If your Jira administrators allow log sharing for the Jira app (an Atlassian Administration setting), we can also see its error logs to help with support. Admins can turn log sharing off at any time.
Security
- Keys are Sheetpane's own. Each key is a random secret created by the Jira app. It isn't an Atlassian password or API token, and Sheetpane never asks for those. A key only lets the add-on run Jira searches as its owner through Sheetpane; it can't change anything in Jira.
- Stored as hashes. The Jira app stores only a hash of each key's secret and shows the key once, when it's created.
- Revocable. People can revoke their own keys at any time. Jira admins can turn Sheetpane off, which stops every key working, and revoke every key at once.
- Jira's permissions apply. Queries run as the key's owner, so they only return work items that person can open.
- Checked on every request. The Jira app checks the key, the site's on/off switch and the license before answering. Only Jira admins can use the admin page, and people can see and revoke only their own keys.
- One destination. The add-on can only send requests to Atlassian's Forge web trigger addresses, which Google enforces.
Deleting data
- A key: revoke it in Jira (Settings (⚙) → General settings → Sheetpane → Revoke). Every spreadsheet using it stops refreshing. Jira admins can revoke all keys in Jira settings → Apps → Sheetpane.
- Your connection in Google Sheets: click Disconnect in the Sheetpane sidebar. This removes your key from the add-on and removes your schedule in that spreadsheet; scheduled refreshes you set up in other spreadsheets stop too, because they have no key to use. Revoke the key in Jira as well if you no longer need it.
- A query: click Delete in the sidebar. This removes the saved query. Its tab stays; delete the tab in Google Sheets.
- Work item data in spreadsheets: delete the tabs or the spreadsheet in Google Sheets. We can't delete it for you.
- The add-on: remove it in Google Sheets (Extensions → Add-ons → Manage add-ons). Disconnect first, and revoke your key in Jira.
- The Jira app: when it's uninstalled, Atlassian removes its stored data (key hashes, settings and usage counts) under Forge's data retention practices.
Third parties
- Atlassian hosts the Jira app and its storage on Forge. Atlassian's privacy policy applies to its handling of data. Forge storage follows your organization's Atlassian data residency settings.
- Google runs the add-on, carries its requests to the Jira app, and stores the add-on's settings and the spreadsheets. Google does this as the provider of your Google service, under your agreement with Google, not ours. Google also keeps the add-on's error messages in our Google Cloud project, as described above. Google's privacy policy applies to its handling of data.
No other third parties receive data from Sheetpane.
Your rights
Depending on where you live, you may have rights to access, correct or delete personal data. You can see and revoke your own keys, and delete your connection and queries yourself, as described above. For personal data in Jira, contact your Jira administrator. For personal data in your spreadsheets or Google account, contact the spreadsheet's owner or your Google Workspace administrator. For anything else, contact us at support@brainstaticthreads.com.
Data Processing Addendum
For customers subject to the GDPR or UK GDPR, our Data Processing Addendum sets out our obligations as a processor.
Children
Sheetpane is a business tool and isn't directed at children under 16.
Changes
We'll post updates to this policy at https://brainstaticthreads.com/sheetpane/privacy/ and change the effective date above. Significant changes will also be noted in the Jira app's Marketplace release notes.
Contact
Brainstatic Threads support@brainstaticthreads.com