Privacy Policy
Tartini AI is an AI data agent. You connect your own Google Analytics property, your own BigQuery warehouse and your own GitHub repository, and the Assistant works against them on your behalf. This page describes what we receive, why, where it is kept, and what we do not do.
1. Who we are
Tartini AI LLC operates the service at https://tartini.ai. We are the controller of the personal data described here.
Tartini AI LLCMountain View, California, United States
Contact: hello@tartini.ai
Write to that address with any question about this policy, to ask what we hold about you, or to ask us to delete it.
2. Signing in
You sign in with Google. We request only openid, email and
profile — enough to know who you are and nothing else. These are the only
Google permissions Tartini AI ever asks a person for. Signing in grants no access to
your Google Analytics, your BigQuery data or your Google Drive, and there is no second consent
screen anywhere in this product that would: data access is granted by your administrators to a
service account, in Google's own consoles, as described below.
From that sign-in we store your Google account identifier, your email address, and the display
name and picture Google returns. Your session is a cookie scoped to
tartini.ai; it is HttpOnly, Secure and
SameSite=Lax, and it is not readable by JavaScript.
3. Cookies, and the choice you are given
Two things are stored in your browser without asking, because the site cannot work without them and neither identifies you to anyone else. The first is the session cookie described above. The second is the record of the answer you give the cookie banner — storing it is what stops the question being asked again.
Everything else is optional and off until you say otherwise. There are two such categories, analytics and marketing, and neither is in use today — so while that is true, Accept has nothing to grant and records the same thing Reject does. The banner always offers both answers, in the same place and the same size, and that is enforced in code rather than promised here. Your answer is stored in your own browser, not on our servers, so it is per browser and per device.
As of the date at the top of this page, no analytics or marketing cookie is set by this
site at all, whatever you answer — nothing of that kind is loaded yet. The choice
exists ahead of them on purpose: app/public/consent.js is the one gate anything
non-essential has to pass, so the day such a tag is added it cannot start until you have
already agreed to its category. If you decline, it never runs.
You can change your mind at any time by clearing this site's data in your browser, which removes the stored answer and brings the banner back.
4. The connections you choose to make
Each is separate, each is optional, and each is authorised by you at the moment you make it.
Google Analytics
Tartini AI holds no Google credential of yours for this. A Google Analytics
administrator in your organisation adds a Tartini-managed service account — an address of the
form tdata-….iam.gserviceaccount.com, unique to your project — the exact address is
shown in Tartini AI under Settings —
to your GA4 property as a Viewer. Our servers read that property with a
short-lived credential Google issues on request. There is no key, and nothing is stored.
It is read-only. Tartini AI reads your Data Stream configuration in order to describe what your site already measures. It does not modify your Analytics configuration and it is not the destination for your analytics events — those go directly from your website to your own Google Analytics property and never through us. You revoke it by removing that service account under Property Access Management, at any time, without asking us.
BigQuery
The same Tartini-managed service account, authorized by a BigQuery administrator in your organisation: BigQuery Job User on the project that runs and pays for queries, Data Viewer on the datasets you choose as sources, and write access on the one output dataset you nominate. Tartini AI uses that access to list the datasets and tables you can already see, to run the SQL you or the Assistant ask for, and to create and schedule the tables you ask it to create.
Your BigQuery costs stay yours and stay visible. Every query runs as a job in your project, so it appears in your billing and your job history under your own controls — not ours.
What your administrators granted is the boundary. Tartini AI acts as its own service account, not as you — so it reaches exactly the projects, datasets and property your administrators named, and nothing else. Removing those grants ends its access immediately and completely, and does not require our involvement. Query results are returned to your browser and are not stored as a copy by us.
GitHub
You install the Tartini AI GitHub App on the specific repository you name. It holds Contents read/write and Pull Requests read/write on that repository only. Tartini AI reads your source at the exact revision you authorised in order to propose tracking changes, and delivers changes as a Pull Request for you to review. It does not push to your default branch.
5. What you send the Assistant, and where it goes
When you use an Assistant, your message, the conversation it belongs to, and only the scoped source or schema observations that turn needs are sent to a large language model through OpenRouter, which routes it to the model this deployment is configured with. Images you attach are sent with it.
What that includes, precisely. The names, schemas and metadata of the datasets and tables the Assistant looked at; the Data Stream configuration it read from Analytics; the source files a tracking change touches; and, when you ask a question that runs a query, a bounded preview of the rows it returned, labelled as a preview. A full result set does not go to a model: a CSV export is a file your browser downloads, and its rows are not placed in the conversation.
It is sent for one purpose — answering the request you just made — and it is used for nothing else. We do not use it to train or improve any AI or machine-learning model, we do not send it to anyone for that purpose, and we do not use it for advertising or sell it.
Credentials are never sent to a model. Your Google refresh tokens, your GitHub installation token and our own provider keys are not placed in prompts, tool arguments or model output.
6. Where your data is stored
Tartini AI runs on Google Cloud in the us-west1 region (Oregon, USA).
- Firestore — your account, workspace, projects, conversations, dashboards, table definitions and saved queries.
- Cloud Storage — images you attach to a conversation, published artifacts, and any single field too large for one Firestore document.
- Google Secret Manager — the per-user provider key used for paid inference. Raw keys are held here and not in our database.
- Encrypted vault — your Google and GitHub refresh tokens are encrypted before they are stored, under a master key that lives outside the database.
If you are in the EU or UK, your data is processed in the United States.
7. Payments
Card payments are handled by Stripe. Tartini AI never receives or stores your card number. We keep a record of what was purchased and what it cost, which is what your balance is computed from.
8. Who else sees your data
We do not sell your data and we do not use it to train models. It reaches these processors, each for the purpose named:
- Google Cloud — hosting, storage and the services above.
- OpenRouter and the model provider it routes to — answering your Assistant turns.
- Stripe — payments.
- GitHub — when you have connected a repository.
We also disclose data where the law requires it.
9. Google user data and the Limited Use requirements
Tartini AI'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, for everything reached through the Google connections in section 3:
- Only the features you came for. Google user data is used to provide and improve the tracking, table, query and dashboard features this page and the home page describe, and for no other purpose.
- Never for advertising. It is not used to serve ads of any kind — personalised, retargeted or interest-based — and it is not sold or rented to anyone.
- Never for training a model. It is not used to develop, improve or train any AI or machine-learning model, and it is not sent to anyone for that purpose. A model receives it only to answer the request you just made, as described in section 4.
- No routine human reading. Nobody at Tartini AI reads your Google data as a matter of course. A person may reach it only when you ask us to look into something specific, when security, fraud or the law requires it, or in an aggregated form that identifies no one.
We pass it on only to the processors named in section 7, each for the purpose named there; where the law requires it; or, if Tartini AI is ever merged or acquired, to the acquirer after we have told you. Revoking a connection — from Tartini AI, or from your own Google Account security page — ends our access to it immediately, and section 9 describes what is deleted.
10. Deleting things
Deleting a project erases the state belonging to it: its conversations, runs, dashboards, tables, saved queries, stored images and published artifacts. This is a real deletion of those records, not a flag.
To delete your account and everything in it, or to ask what we hold about you, write to the contact address in section 1. We do not publish a fixed turnaround time here because we would rather not state one we have not committed to.
Disconnecting an integration revokes our stored token for it. Revoking Tartini AI's access from your own Google Account security page or from GitHub has the same effect immediately.
11. Retention
We keep your account and its content while your account exists, and delete it when you ask. Operational backups of our databases are kept for 30 days and are then discarded, so a deleted record can persist in a backup for up to that long. Billing records are kept as long as accounting and tax rules require.
12. Security
Traffic is served over HTTPS. Connection tokens are encrypted before storage. Provider keys live in Secret Manager rather than in our database. Access to your resources is checked against your workspace membership on every request, not hidden in the interface.
We do not claim any security certification, and this page will not tell you that your data cannot be compromised.
13. Children
Tartini AI is not intended for anyone under 16, and we do not knowingly collect their data.
14. Changes
If this policy changes materially we will update the date at the top and tell signed-in users. Continuing to use Tartini AI after that means the updated policy applies.