Read-only by design
Oskar only reads from Stripe and PostHog, never writes to them, and never contacts your customers. Here is exactly what it reads, stores and shares.
Oskar watches your customers. It doesn't act on them. It reads billing from Stripe and product usage from PostHog, it never changes anything in either tool, and it never sends anything to your customers. Everything Oskar does ends with a note to you, and what happens next is up to you.
This page sets out exactly what that means, so you, your team or an AI assistant reviewing Oskar for you can check it.
At a glance#
| Oskar does | Oskar never does |
|---|---|
Reads customers, subscriptions and invoices from Stripe with Stripe's read_only access |
Creates, changes, refunds, cancels or retries anything in Stripe |
| Receives Stripe's notifications about customers, subscriptions and invoices | Changes prices, plans, coupons or payment methods |
| Runs one read-only query against PostHog each night, for daily event counts per person | Sends events, changes people, flags, dashboards or settings in PostHog |
| Emails people in your Oskar account the digest they chose | Emails, messages, calls or otherwise contacts your customers |
| Suggests a next step for you to take yourself | Takes any action on a customer for you |
| Sends the data each decision needs to its AI providers, which don't train on it | Sells your data, shares it with advertisers or uses it to train AI models |
Stripe: read-only access#
How access is granted#
You connect Stripe through Stripe Connect, using OAuth. Oskar asks for the read_only scope, so Stripe itself only lets Oskar read your account, not change it. You'll see this on Stripe's approval screen before you agree.
What Oskar reads#
Oskar only lists three kinds of record:
- Customers: name and email address.
- Subscriptions (including cancelled ones): plan, price, billing interval, seats, status, start date, current period, whether it's set to cancel, and the reason and comment the customer gave if they cancelled.
- Invoices from the last 90 days: amount due, and when a payment failed or was paid.
It reads these once when you connect, every night after that, and whenever you choose Sync now on Integrations. Every request it makes to Stripe's API is a read.
What Stripe tells Oskar#
Stripe also sends Oskar notifications (webhooks) as things happen. Oskar checks that each one really came from Stripe, then uses only these:
customer.createdandcustomer.updatedcustomer.subscription.created,customer.subscription.updatedandcustomer.subscription.deletedinvoice.payment_failed,invoice.paidandinvoice.payment_succeededaccount.application.deauthorized, which tells Oskar you've disconnected it
Everything else Stripe sends is ignored.
PostHog: one read-only query#
How access is granted#
You give Oskar your PostHog region, project id and a personal API key. The key only needs PostHog's read-only query scope, and we recommend creating one with just that scope for Oskar.
What Oskar reads#
Oskar runs one query each night through PostHog's query API. For the last 28 days, it asks for:
- each person's email address
- the day
- each event name
- how many times that person triggered that event that day
- the person's company group key, if you match customers by PostHog company group
It only includes people who have an email address in PostHog. It doesn't read event properties, session recordings, feature flags, surveys, dashboards or anything else.
What Oskar keeps#
Oskar matches each person to a paying customer using the rule you confirmed (see Connecting PostHog). It then keeps daily totals for each customer: events, events by name, and how many people were active. Usage from people who don't match a paying customer is dropped.
Oskar never contacts your customers#
Oskar has no way to email, message or otherwise reach your customers, and it doesn't try. The only emails it sends are:
- The digest, to people in your Oskar account who chose to get it. See Talk to Oskar and email digests.
- Account emails to you, such as password resets.
When Oskar suggests a next step, such as "check in with them about the drop in usage", that's for you. Oskar doesn't draft, schedule or send anything to the customer.
What AI tools connected to Oskar can do#
You can connect AI assistants such as Claude, ChatGPT, Cursor or Claude Code to Oskar. See Connect AI tools. They get the same boundaries as Oskar itself, and only for the workspaces in your accounts:
- They can read your attention list, customers, decision records and what Oskar knows about your business.
- They can record things inside Oskar: feedback on a decision, a fact about your business that you stated, or a request to reassess your customers now.
- They can't reach Stripe or PostHog through Oskar, change anything there, or contact your customers. Oskar has no tool that does any of these.
Talk to Oskar, the chat inside the product, works the same way. It can find and look up customers, remember what you tell it, record facts about your business and create watches, all inside Oskar.
Switching Oskar off#
You stay in control of access in your own tools:
- Stripe: remove Oskar from the connected applications in your Stripe dashboard. Stripe tells Oskar straight away, and Oskar marks the connection as disconnected and stops receiving data from that account.
- PostHog: delete the personal API key you gave Oskar. Its nightly query will then fail, and it gets nothing more.
To delete a workspace, or your whole Oskar account, email hello@infinitestack.co. Deleting a workspace deletes the data that came from your connected tools along with it.
How your data is stored#
- Your Stripe and PostHog access tokens and keys are encrypted when stored.
- Only people in your Oskar account can see your workspaces.
- Customers' timeline events, and anything they wrote themselves (such as cancellation comments), are deleted after 13 months.
- Daily metrics and Oskar's decision records are kept for as long as your workspace exists, so you can see how things have changed.
Who else handles it#
- Anthropic provides the Claude models that work out your business profile, explain decisions and answer your messages. The relevant data and your conversations are sent to Anthropic for this. Under its commercial terms, Anthropic doesn't train on this data.
- TypeSafe AI provides Jev, the model that decides which customers need attention. It receives each customer's signals and the evidence behind them.
- AgentPing helps us monitor the cost and reliability of Oskar's AI. It receives usage details only: which part of Oskar ran, your workspace's ID, the model used, token counts, timings and whether it worked. It never receives your data, your customers' data or your conversations.
The privacy policy has the full picture, including your rights and how long we keep everything else.