COOKIE POLICY
Cookie Policy
PersoHR uses cookies and browser storage for sign-in, language preferences, workflow state and interface settings, and cookieless analytics on public pages. We do not use advertising or retargeting cookies. Storage purposes are described below. A first-party origin or lack of cookies does not by itself decide whether consent is required; applicable consent requirements must be assessed for the particular operation.
Inside the PersoHR application
The application uses the entries below in the browser. Cookies, localStorage and sessionStorage have different scopes and lifetimes; localStorage is scoped to the application origin rather than shared across every persohr.eu subdomain. Unless a feature removes an entry, localStorage can persist until you clear site data; sessionStorage normally lasts for the browser tab's page session. Browser settings let you inspect and clear cookies and site storage, but doing so may sign you out or remove preferences and unsaved work.
- persohr_rt: a refresh-token cookie used to renew an authenticated session. It is HttpOnly and configured with Secure and SameSite=Strict for production use, with a normal seven-day lifetime. JavaScript cannot read an HttpOnly cookie, but malicious scripts can still cause other harm in a signed-in session.
- persohr-locale — localStorage entry that remembers your language preference between visits.
- Registration and verification flow state uses localStorage or sessionStorage to coordinate redirects and browser tabs. Entries include persohr-registration-pending, persohr-email-verified and persohr-redirecting. persohr-session-hint is a localStorage sign-in marker, not a token, cleared on logout or failed refresh. Recovery, pending checkout and page-reload recovery also use session-scoped state. Storage lifetimes depend on the entry and browser session.
- Dismissed-banner localStorage entries (persohr-trial-banner-dismissed, persohr-birthday-banner-dismissed and similar): remember which one-off in-product notices you have already dismissed so we don't show them again.
- Feature settings and drafts, including persohr-payroll-export-config and pendingOnboardingTemplate, retain in-progress work in the browser. When you submit a workflow, the relevant content may be sent to the service; browser storage does not mean the content can never leave the device.
- Interface-state localStorage entries remember completed tours and the welcome screen (keyed by user), time-tracking email-prompt dismissal (keyed by user), second-admin reminders (keyed by workspace) and setup-checklist dismissal. Some entries survive logout and remain until cleared in the browser or reset by the relevant feature. Session storage also holds temporary recovery and acknowledgement flags; non-production debug tracing can use session storage when enabled. These entries are not a record of recently viewed items or table-column preferences.
- Stripe operates checkout and may set its own cookies or use similar technologies for payment and security. Its privacy and cookie information describes those operations.
On the public marketing website
On the persohr.eu marketing website (logged-out browsing) we use a much smaller set of entries. Public content pages can also cache content data and version checksums in localStorage entries beginning with content_. These caches support loading public website content and can remain until replaced by the content module or cleared in the browser.
- i18n_locale — a language-preference cookie set when a language is selected or detected from browser preferences. It expires 365 days after being set; selecting or detecting a language can renew it.
- Plausible Analytics counts visits and conversion events on the marketing site and public app authentication and legal pages. Its provider is based in Estonia and states that analytics data is hosted in the EU. It uses no analytics cookies and does not store raw IP addresses. We do not send authenticated workspace pageviews. When enabled, the backend separately sends checkout and payment events containing plan, billing cycle, amount and, for checkout, company country, without names, email addresses or tenant identifiers in those event payloads.
Future optional cookies
Before introducing a storage or tracking operation that requires consent, we will provide a choice and obtain the necessary consent before it runs. We will update this inventory when relevant operations change.