DocsOverview
Documentation
How to set up Joinsight, and how each number is made.
These pages cover each setup step, each source, and the definitions behind every figure, including where measurement stops and modeling starts.
Start here
- Set up a new workspaceBilling, search, the snippet and identify(), in the order that gets numbers fastest.
- Install the snippetOne script tag, a consent call from your banner, and an optional proxy through your domain.
- Call identify() at signupFrom the browser or your server, with one user ID shared with Stripe and RevenueCat.
- Connect your AI assistantClaude, ChatGPT, Gemini, Copilot, Cursor and others: add one URL and choose the workspace to share.
How the pieces fit
Sources
Stripe and RevenueCat say who pays. Search Console, GA4 or Plausible, the App Store and Instagram say where visitors came from.
Snippet and identify()
The snippet records the page each visitor first landed on. identify() links that visit to your user ID at signup.
One metric layer
Syncs feed stored raw data. MRR, movements and first-touch attribution are recomputed from it with fixed definitions.
Three ways to read
The dashboard, the Monday brief and alerts, and the MCP server all read the same pre-computed numbers.
The full reasoning is in How attribution works, and every metric has one written definition on the definitions page.
Get started
- Quickstart: from sign-up to your first attributed customerCreate a workspace, connect billing and search, install the snippet and call identify(). What appears the same day, and what needs new customers first.
- How attribution worksFirst touch, identity stitching, measured and modeled numbers, the attributed share, and why Joinsight never reaches 100%.
Tracking
- Install the tracking snippetAdd the first-party script, pass consent from your cookie banner, serve it from your own domain and check that it works.
- Link visitors to customers with identify()Call identify() at signup, from the browser or your server, and use one user ID across Stripe, RevenueCat and your app so each person is one customer.
- Channels, UTM tags and campaign linksHow Joinsight classifies each first touch into a channel, how to tag links so social and email traffic is credited, and App Store campaign links.
Sources
- Connect Stripe and RevenueCatThe restricted-key permissions Stripe needs, the RevenueCat key and webhook, how often each syncs, and how a subscription in both is counted once.
- Connect Search Console, GA4 or PlausibleSign in with Google for Search Console and GA4, or add a Plausible Stats API key. Backfill, data delay and what each source adds.
- Connect App Store Connect and InstagramThe two App Store Connect keys, the store funnel by source and campaign, and how Instagram posts are joined to signups and MRR.
Reading the numbers
- Read the dashboardWhat each screen answers: Overview, Revenue and customers, Content and channels, and Connections. Periods, provenance labels and the MRR share card.
- Alerts, the Monday brief and new-customer pingsThe five alert rules and when they fire, what the Monday brief contains, and how to send new-customer pings to Slack or Discord.
- Use Joinsight in your AI assistantAdd the remote MCP server to Claude, ChatGPT, Gemini, Copilot, Le Chat, Perplexity, Cursor, VS Code or Windsurf, choose a workspace, and ask questions. The tools, what the model sees, and how to revoke access.
Workspace
- Workspaces, team, settings and billingWorkspaces and plan limits, inviting teammates, reporting currency and time zone, the MRR goal, annotations, keys and the trial.
- Security, privacy and your dataRead-only access, credential encryption, what is and isn't stored about visitors and customers, consent, and what happens when you disconnect.
- TroubleshootingThe snippet shows no sessions, customers aren't matched, MRR differs from Stripe, the attributed share is low, a sync is failing: causes and fixes.