How Fresh Sheets handles your data

The homepage gives the short version in four points. This page is the longer read behind each one. The privacy policy is the legal version, and this page links to it for the full detail.

Read-only, always

We never write to the data sources you connect. Analytics and Search Console connect with Google's read-only permissions. Google Ads offers none, so our access there is registered with Google for reporting only and our code never issues a write. Klaviyo connects with a private API key you create, Shopify through an app your store creates, and Mailchimp with an API key. The Klaviyo key needs read access only and the Shopify app needs read access to orders. A Mailchimp key cannot be limited to reading. TikTok connects when you sign in on TikTok's own page, for ad account information and reporting. Meta Ads is connected by signing in with Facebook, with Meta's ads_read permission only. Apple Ads connects through Sign in with Apple. Microsoft Advertising connects through Microsoft's own sign-in. You choose the account. Our code only ever reads through any of them.

Every connector Fresh Sheets ships is read-only, permanently. That is a design decision, not a current limitation. In Google Ads, Fresh Sheets reads your reporting data and never creates, edits, pauses or deletes a campaign, ad, bid or budget.

Fresh Sheets asks for read access to accounts, campaigns, flows and metrics, and checks the key with Klaviyo before saving it. A key that does not work, or cannot read all four, is refused and nothing is stored. Our code only ever reads from Klaviyo, even if the key you create allows more. It never creates, edits, sends or deletes a campaign, a list, a profile or anything else in your account, and it refuses any request to Klaviyo that is not a read before the request is sent.

Shopify connects through an app your store creates in Shopify's Dev Dashboard. Fresh Sheets requires the scopes read_orders and read_all_orders on that app, and checks its client ID and secret with Shopify before saving them. Credentials Shopify will not give access with, or an app that cannot read orders from any date, are refused and nothing is stored. Our code only ever reads from Shopify, even if the app you create allows more. It sends Shopify nothing but read queries and a request for a short-lived access token, and it refuses anything else before the request is sent. It never creates, edits or deletes an order, a product or anything else in your store.

Mailchimp connects with an API key you create in your Mailchimp account. Mailchimp does not offer read-only API keys. A key can do anything through Mailchimp's API that the user who created it is allowed to do, which can include sending campaigns and changing audiences. Fresh Sheets checks the key with Mailchimp before saving it. A key Mailchimp will not accept, or one that cannot read your campaign reports, is refused and nothing is stored. Our code only ever reads from Mailchimp. It sends Mailchimp nothing but read requests, and refuses anything else before the request is sent. It never sends a campaign, changes an audience or edits anything in your account.

You connect TikTok by signing in on TikTok's own page and choosing which ad accounts Fresh Sheets can read. The app Fresh Sheets signs in with asks TikTok for ad account information and reporting only. Our code only ever reads from TikTok. Besides read requests, it sends TikTok only the request that completes your sign-in and, when you remove the connection or delete your account, the request that ends Fresh Sheets' access. It refuses anything else before the request is sent, and never creates, edits or pauses a campaign, an ad group or an ad.

You connect Meta Ads by signing in with Facebook on Meta's own page. Fresh Sheets asks Meta for one permission, ads_read, and never for permission to manage your ads. Our code only ever reads from Meta. Besides read requests, it sends Meta only the requests that complete your sign-in and, when you remove the connection or delete your account, the request that ends Fresh Sheets' access. It refuses anything else before the request is sent, and never creates, edits or pauses a campaign, an ad set or an ad.

Apple Ads connects through Sign in with Apple.

Apple Ads access is read-only in our code: only reports and lists of ad accounts and campaigns are ever requested.

Apple Ads: read-only by our code. When you connect, Apple lets you grant Read Only access, which covers reading reports and viewing campaigns.

Microsoft Advertising connects through Microsoft's own sign-in. You choose the account.

Our code only requests reports and account lists from Microsoft Advertising.

Microsoft Advertising: Microsoft's advertising permission allows changes as well as reading. Our code only requests reports and lists of your accounts, and never issues a change.

In your Google Drive, Fresh Sheets can reach only the spreadsheets you pick, through Google’s own file picker, and the ones it creates for you when you ask it to. It cannot see or open any other file, and it never asks for broader Drive access.

In your OneDrive, if you connect your Microsoft account to send reports to Microsoft Excel, Fresh Sheets reads the names of files, folders and worksheets, and whether a worksheet you choose already has values in it, while you choose where a report goes, reads a report’s own worksheet when it refreshes, and changes only the worksheets your reports use and the workbooks it creates for you. Microsoft’s permission would allow more; our code doesn’t use it. It never opens a file shared with you, or a file in a SharePoint team site or Teams library.

Google asks for your consent when you add Fresh Sheets to Google Sheets, and the first time you connect your Google account, in Google Sheets or on freshsheets.uk, which is what lets Fresh Sheets refresh your reports while you are away. Microsoft asks for your consent when you connect a Microsoft account for Excel, on the Destinations page or from the report builder. Signing in with Microsoft only confirms who you are. It gives Fresh Sheets no access to your files or data. The privacy policy lists every permission and what it allows.

Writes only where you tell it

Fresh Sheets never changes anything you did not ask it to. Each report owns a tab or worksheet, and replaces what is in it on every refresh. Nothing else in the spreadsheet or workbook is touched.

A report’s tab is either a new one Fresh Sheets creates or an existing one you point it at. If you ask Fresh Sheets to create a new spreadsheet for a report, it creates one at the top level of your Google Drive, with one tab for that report. When you choose a report’s tab in the report builder, Fresh Sheets reads the first 200 rows and 26 columns of every tab, only to tell whether a tab already has something in it, and nothing read that way is stored. If Fresh Sheets finds something in that area, you are asked to confirm before the report is saved.

To write your reports, Fresh Sheets also reads the spreadsheet’s title and the name and size of each tab, and if a report takes its date range from cells, those cells each time the report runs or is previewed. Everything it reads inside your spreadsheet is listed in the privacy policy.

BigQuery

Fresh Sheets writes through its own service account, only to the datasets you share with it, and only to tables it created and labelled as its own.

Excel

Fresh Sheets writes to an Excel workbook through the Microsoft account you connect, only to workbooks in your own OneDrive and the ones it creates for you, and only to the worksheet each report owns.

Never sold, never used to train AI

Your data is never sold or used for advertising. Fresh Sheets does not use any data it receives from Google APIs, including Google Workspace APIs, to develop, improve or train artificial intelligence or machine learning models. The same goes for what it reads from Klaviyo, Shopify, Mailchimp, TikTok, Meta, Apple Ads and Microsoft Advertising. It is shared only with the companies that run the service and with Stripe, which sells paid plans, all named in our privacy policy, and with an AI tool you connect, which receives what it asks Fresh Sheets for.

Fresh Sheets’s use and transfer of information received from Google APIs to any other app adheres to the Google API Services User Data Policy, including the Limited Use requirements.

The marketing data itself is never stored. It is read from the source you connected and written straight into your spreadsheet, your Excel workbook, your BigQuery table, or more than one of them, on each refresh, and it is not kept in Fresh Sheets’s own systems afterwards. The privacy policy sets out what Fresh Sheets does store, where it is processed and which companies handle it, and the data deletion page describes the stored records in more detail.

Your OAuth refresh token, which lets Fresh Sheets reach your data without asking you to sign in every time, is encrypted at rest with a separate key that is never stored alongside it. All data in transit is encrypted over HTTPS.

Who can see your data

Virgo Analytics is two people. One of them, the developer, is the only person with access to the production systems and the data held in them. The other answers support email, and so sees what arrives there: your email address, and the report names, spreadsheet titles and workbook names a message includes, and the alerts Fresh Sheets sends there, which the privacy policy describes. Each time we open an account's records in our support tools, that is recorded.

Revoke any time

Disconnect your Google account and Fresh Sheets stops using it straight away. You can also revoke from your Google account directly. Remove a Klaviyo or Mailchimp key, your Shopify app credentials, your TikTok connection, your Meta connection or your Apple Ads connection on the Sources page and they are not used again. Remove your Microsoft connection on the Destinations page and it is not used again. Remove Microsoft Advertising on Sources and its tokens are deleted straight away. No report can read from it after that.

In your Fresh Sheets account, open Sources and choose Disconnect: Fresh Sheets stops using the account straight away and asks Google to revoke the access. A refresh that is already running when you disconnect can still finish, including writing to its tab. Or remove Fresh Sheets at myaccount.google.com/permissions: Google removes the access there, and Fresh Sheets records the connection as ended the next time it asks Google to renew it. Either way, reports that read from Google or write to Google Sheets stop refreshing.

A Klaviyo key is stored encrypted and is never shown back to you. You can replace or remove it at any time on the Sources page. Removing it stops the reports that read through it and leaves what they already wrote in your spreadsheets. It does not delete the key inside Klaviyo, which is yours to delete there.

Shopify app credentials are stored encrypted and are never shown back to you. You can replace or remove them at any time on the Sources page. Removing them stops the reports that read through them and leaves what they already wrote in your spreadsheets. It does not uninstall the app from your store, which is yours to uninstall there.

Your Mailchimp API key is stored encrypted and is never shown back to you. You can replace or remove it at any time on the Sources page. Removing it stops the reports that read through it and leaves what they already wrote in your spreadsheets. It does not delete the key in Mailchimp, which you can do there.

The access TikTok grants is stored encrypted and is never shown to anyone. You can remove it at any time on the Sources page. Removing it asks TikTok to end Fresh Sheets' access, stops the reports that read through it, and leaves what they already wrote in your spreadsheets. You can also end it in your TikTok for Business settings.

The access Meta grants is stored encrypted and is never shown to anyone. It has no fixed end date: it lasts until you remove it on the Sources page, or until Meta ends it. If Meta ends it, your Meta reports stop at their next run and, if any are scheduled, we email you. Choose Reconnect Meta on the Sources page with the same Facebook account and they start again. Removing it there asks Meta to end Fresh Sheets' access, stops the reports that read through it, and leaves what they already wrote in your spreadsheets.

A Microsoft connection is removed on the Destinations page. Fresh Sheets stops using it straight away, deletes the access it stored, and stops writing to the workbooks it reached; a report that also writes to a spreadsheet keeps refreshing that. Nothing is sent to Microsoft. To end Fresh Sheets' access on Microsoft's side too, go to myapps.microsoft.com, open the menu on Fresh Sheets, choose Manage your application, then Revoke consent. If Fresh Sheets isn't listed there, ask your organisation's Microsoft administrator to remove it.

Disconnecting also deletes a few records, among them the cached list of your Google Analytics fields, and keeps your account, your saved reports and your run history until you delete your account. Deleting is a separate action, in your account's Settings page. Deleting your account removes your data, almost all of it at once. The Data deletion page lists everything kept afterwards, how long we keep what we hold, and what stays at other services.

The company behind it

Fresh Sheets is a product of Virgo Analytics Ltd. You can check the details below yourself: the company on the Companies House register, and its data protection registration on the UK Information Commissioner’s public register, which lists the registration under the company’s name, with Fresh Sheets as one of its other names.

Who we are

  • Registered name: Virgo Analytics Ltd
  • Company number: 17397765
  • Registered in England and Wales
  • Registered office: 2 Parkstone Avenue, Poole, BH14 9LR
  • ICO registration number: ZC247204 (UK Information Commissioner’s Office)

Questions

Email support@freshsheets.uk.