Privacy policy
Last updated
This policy explains what data Joinsight handles, why, and what you can do about it. It covers the Joinsight website, the app, the Monday brief, the MCP server and the tracking snippet you install on your own site.
Who we are
Joinsight is operated by [Company legal name], [Registered address] ([Company number and VAT ID]). You can reach us about anything in this policy at hello@joinsight.app.
We play two roles:
- Controller for data about you as a Joinsight user: your account, sign-ins, billing and support messages.
- Processor for data we handle on your behalf: what we read from the sources you connect and what the snippet collects about visitors to your site. For that data, you are the controller and we act on your instructions, which are these terms, this policy and the settings you choose.
Data about you
- Account: your email address, and the name of each workspace you create.
- Sign-in: single-use sign-in links and 6-digit codes, stored only as hashes and valid for 15 minutes; sessions with the browser's user agent, which expire after 30 days or when you sign out.
- Billing: your plan, billing interval and subscription status. Payments are handled by Stripe; we never see or store full card numbers.
- Assistant connections: the AI clients you authorize for the MCP server, their tokens (stored hashed) and an audit log of every call they make.
- Messages you send us, such as support requests.
Data from the sources you connect
Every connection is read-only. Depending on what you connect, we read:
- Stripe and RevenueCat: customers, subscriptions, prices, invoices and subscription events. Customer emails are stored only as a keyed hash plus a masked display form, such as j•••@example.com.
- Google Search Console, GA4 and Plausible: aggregate clicks, impressions, positions, sessions and conversions by page, query and source.
- App Store Connect: aggregate impressions, product page views and downloads by source and campaign.
- Instagram: your professional account's posts and their metrics.
Credentials for these connections are encrypted with a separate data key per value. When you disconnect a source, the data we synced from it is deleted within 30 days.
Data about visitors to your site
The snippet is built to collect as little as attribution needs.
- Before consent, nothing is stored on the visitor's device. The landing page, referrer and campaign parameters are kept in the page's memory only, and sent to us only if the visitor signs up before leaving.
- After consent, the snippet stores a random anonymous ID in local storage (
js_aid, withjs_consentremembering the choice) and a session marker in session storage (js_s). It sends one event per session: the landing page, referrer, UTM parameters, ad click IDs and a timestamp. - At signup, your call to
identify()sends your user ID, the visitor's email (stored as a keyed hash and a masked form) and the anonymous ID or in-memory first touch.
We don't store IP addresses, and we don't build profiles across different customers' sites.
You are responsible for having a legal basis for this collection, for asking for consent where the law requires it (the snippet's consent API is there for that), and for describing Joinsight in your own privacy notice.
AI features
If enabled, we use Anthropic's API to turn alert causes and brief lines into one plain sentence. It receives aggregates and labels only, such as amounts, page paths, query strings and plan names, never customer emails or other records about individual people.
When you connect an AI assistant to the MCP server, that assistant receives the numbers you ask it for. What it does with them is governed by your agreement with its provider.
Cookies on joinsight.app
We set two cookies, both first-party:
| Cookie | Purpose | Lifetime |
|---|---|---|
js_session | Keeps you signed in | 30 days |
js_theme | Remembers light, dark or system theme | 400 days |
We don't use advertising cookies or third-party analytics on joinsight.app.
Why we process data
- To provide the service you signed up for (performance of a contract): accounts, syncing, metrics, emails, the MCP server.
- Legitimate interests: keeping the service secure, preventing abuse with rate limits and audit logs, and fixing problems.
- Legal obligations: keeping billing records for as long as tax law requires.
- Consent, where the law requires it, which you can withdraw at any time.
Who else processes data
We use a small number of providers, each only for the purpose listed:
| Provider | Purpose |
|---|---|
| [Hosting provider and region] | Hosting the app and database |
| Brevo | Sending sign-in emails, the Monday brief and alerts |
| Stripe | Billing for Joinsight subscriptions |
| Anthropic | Optional sentence rewriting, aggregates only |
Google, Stripe, RevenueCat, Apple, Plausible and Meta also see our requests when we read from them on your behalf, under the connection you authorized.
Where a provider processes data outside the European Economic Area, we rely on an adequacy decision or the European Commission's standard contractual clauses.
How long we keep it
- Account data: while your account exists.
- Data from a source: until you disconnect it, then deleted within 30 days.
- A workspace and everything synced into it: deleted when you delete the workspace.
- Billing records: as long as tax and accounting law requires.
Security
Read-only access to every source, envelope encryption for credentials, row-level isolation between workspaces in the database, hashed sign-in tokens with rate limits, and an audit log of every MCP call. No system is perfectly secure; if we learn of a breach affecting your data, we will tell you without undue delay.
Your rights
Under the GDPR and similar laws, you can ask to access, correct, delete, restrict or export your data, object to processing based on legitimate interests, and withdraw consent. Email hello@joinsight.app and we will reply within one month. You can also complain to your local data protection authority.
If you are a visitor to a site that uses Joinsight, contact that site's owner first: they control that data, and we will help them answer you.
Changes
If we change this policy in a way that matters, we will email account owners before the change takes effect. The date at the top shows the latest version.