Legal
Cookie Policy
1. Short version
The Korps marketing site sets no cookies at all. It measures itself, and only itself: which sections of a page were seen, which button was clicked and how long the page took to load are sent to our own servers. That measurement is off by default and runs only after you accept it in the privacy banner every page shows on your first visit; declining keeps it off. It sets no cookie, stores no IP address, involves no advertising and no third party, honours Global Privacy Control and Do Not Track as a decline, and is deleted after 90 days. It is described in section 3 and in the Privacy Policy.
The Korps web app stores two values in your browser's local storage so you stay signed in, and the operator console stores one more for the same reason. All three are strictly necessary to provide a service you asked for, so no consent banner is required for them. The measurement choice itself is stored the same way, described below.
2. What is stored
| Name | Type | Purpose | Lifetime |
|---|---|---|---|
korpsAccess |
Local storage, first party | Short-lived access token that authorises API calls for your session. | Valid 15 minutes; replaced on renewal, removed on sign-out. |
korpsRefresh |
Local storage, first party | Refresh token used to get a new access token so you are not signed out mid-visit or on return. | Valid 30 days; removed on sign-out or when the server rejects it. |
korpsPlan |
Session storage, first party | The plan code you pressed on the pricing page, so that "Start with Team" still means Team once the sign-up form has loaded and the account has been created. It is a preference and never an entitlement: the server decides what an account is actually on. | This browser tab only. Removed when the tab closes, and as soon as the choice has been shown on the plan page it was made for. |
korpsWorkspaceCreate |
Session storage, first party | A random key for one attempt at creating your organisation in the account portal, sent as an idempotency key so that a retry after a lost response does not make a second organisation. It identifies nothing about you. | This browser tab only. Removed as soon as the organisation exists or the tab closes. |
korpsConsoleTokens |
Local storage, first party | The operator console's session: its access token and its refresh token, kept together as one entry. Written at sign-in. | The access token inside is valid 15 minutes and is replaced on renewal; the refresh token lives until you sign out or it is rotated. The whole entry is removed on sign-out, or when the browser clears site data. |
korps.consent |
Local storage, first party | Your choice about the first-party measurement in section 3: accepted or declined, and when you chose it. Read by every page before it decides whether to measure anything, and by the privacy banner so it does not ask you again. | Kept until you change your choice from the Your Privacy Choices link in the footer, or clear site data for korps.ai. |
These are local and session storage entries rather than cookies, so they are never attached automatically to requests and are not sent to any third party.
The app also writes a single entry called korpsProbe when it starts, and deletes it in the same moment. It is not stored and it holds nothing about you. Its only purpose is to find out whether this browser will let Korps keep a session at all, so that if site data is switched off the app can say so plainly instead of accepting your password and quietly failing to sign you in.
3. Your privacy choices
Every page on korps.ai shows a banner titled "Your privacy choices" the first time you visit. It names the one thing that can be measured, the first-party analytics described below, and gives you two buttons: Accept turns it on, Decline keeps it off. Your choice is written to korps.consent and the banner does not ask again.
If your browser sends Global Privacy Control, or Do Not Track, we already know the answer: nothing is measured, whatever was chosen before, and the banner shows a shorter notice with a single "Got it" button instead of asking. Turning either signal off later does not silently turn measurement back on; your stored choice, or a fresh Accept, decides that.
To change your mind later, use Your Privacy Choices in the footer of any page, which reopens the same banner. Do Not Sell or Share My Personal Information, next to it, opens the same banner too: Korps does not sell or share personal information, so there is nothing separate to opt out of, and the banner says so.
4. What we do not use
- No third-party analytics. The only measurement is our own, described below.
- No advertising, retargeting or conversion pixels.
- No session-recording or heatmap tools.
- No social media embeds or share widgets that phone home.
- No fingerprinting, and no cross-site identifiers.
What we do use is one first-party measurement on our own marketing pages, and only once you accept it. The page sends, to our own servers and nowhere else, which sections were seen, which button was clicked, how long the page took to load, the viewport size, whether reduced motion was on, and the message of any script error. It sets no cookie and reads none, stores no IP address and no account, is never sent when you have declined or when Global Privacy Control or Do Not Track is on, and is deleted after 90 days.
The app, the API and the marketing pages load nothing from third parties: the site ships its own fonts and loads nothing from anyone else. The page's motion is drawn locally in your browser.
5. Server-side logs
Independently of browser storage, our reverse proxy and API record request method, path, status, timing and source IP address in order to run and secure the service. That is described in the Privacy Policy, not here.
6. How to clear the stored values
- Use Sign out in the app or the console. That removes the stored values and also ends the session on our side.
- Use Your Privacy Choices in the footer to change your measurement choice without clearing anything else.
- Or clear site data for korps.ai in your browser settings. You will be asked to sign in again, and the banner will ask about measurement again too.
- Blocking local storage for korps.ai will stop sign-in from working, because there is nowhere to keep the session.
7. Changes
If we ever add third-party analytics, or any storage that is not strictly necessary, we will update this page and ask for consent before setting it, the same way section 3 already asks for the one first-party measurement that exists today.