Juuret Labs Oy ("we", "us", "the Provider") operates the Invis Wise SaaS platform for restaurant inventory management. This Privacy Policy explains how we collect, use, store, and protect personal data in connection with the platform.
In the context of GDPR, the Provider acts as a data processor on behalf of the restaurant operator (the data controller). The restaurant operator is responsible for the lawfulness of the processing of their staff's data. This policy also covers the Provider's own data controller activities (e.g. billing contacts, service communications).
The following categories of personal data are processed by Juuret Labs Oy in connection with the Invis Wise platform and the inviswise.fi website:
| Category | Data elements | Purpose | Legal basis GDPR Art. 6 |
|---|---|---|---|
| Account credentials | Email address, name, hashed password (managed by Supabase Auth — passwords never reach application code) | Authentication and account management | Art. 6(1)(b) — performance of contract |
| User profile | Name, email, assigned role (admin / manager pro / manager), restaurant assignments | Access control and role-based permissions within the platform | Art. 6(1)(b) — performance of contract |
| Inventory activity | Counts recorded per product/area, timestamps (counted_at), and the name or email of the staff member who performed the count (counted_by) |
Operational traceability — knowing who counted what is required for inventory auditing and discrepancy resolution | Art. 6(1)(f) — legitimate interests of the controller and the restaurant operator |
| Device telemetry | Device identifier (device_id stored in device localStorage), user name, platform (iOS/Android/Desktop), app version, last active time, offline queue size |
Service reliability: detecting stuck offline queues before data is lost; monitoring app version adoption | Art. 6(1)(f) — legitimate interests (proactive support) |
| Error reports | Unhandled JavaScript errors: error message, stack trace, user ID, user name, device ID, app version, platform | Platform stability and bug resolution. Reports are throttled to max 5 per page load and deduplicated | Art. 6(1)(f) — legitimate interests (service quality) |
| Admin audit log | Email of the acting user, action type (e.g. delete_user, force_close_session, or a restaurant user's own catalog import), timestamp, details | Immutable audit trail of sensitive administrative actions and self-service catalog imports, for accountability and incident investigation | Art. 6(1)(f) — legitimate interests (security and accountability) |
| Website enquiries | Name and email address (required); phone number and company/restaurant name (optional); free-text message — submitted via the contact form on inviswise.fi | Responding to demo requests and enquiries from prospective clients about the platform | Art. 6(1)(f) — legitimate interests (responding to business enquiries) |
Invis Wise is a Progressive Web App (PWA) designed to work offline. To enable offline functionality, the app stores data in your browser's localStorage and IndexedDB. No third-party tracking cookies are used.
| Key / Store | Contents | Reason for storage |
|---|---|---|
inv_auth |
Authentication tokens (JWT access token, refresh token), user ID and email, selected restaurant | Strictly necessary — enables persistent login across sessions |
inv_data_cache |
Full app state: products, areas, categories, active session, counts | Strictly necessary — enables offline counting without internet |
inv_offline_queue |
Count records pending upload when offline | Strictly necessary — ensures no inventory data is lost during connectivity gaps |
inv_device_id |
A randomly generated device identifier (not linked to any personal ID on its own) | Functional — allows the system to distinguish devices for telemetry and support |
inv_lang |
Language preference (en / fi) | Functional — remembers your preferred language |
IndexedDB inviswise |
Mirror of inv_data_cache and inv_offline_queue |
Strictly necessary — backup storage for iOS devices where localStorage may be evicted |
All locally stored data is controlled by you and cleared when you log out or uninstall the app. None of this data is shared with advertising networks or analytics providers.
Under the Finnish Act on Electronic Communications Services (Sähköisen viestinnän palvelulaki), storage of data strictly necessary for a service explicitly requested by the user does not require separate consent. All items listed above fall under this exemption.
We use the following sub-processors to operate the platform. All sub-processors are bound by GDPR-compliant data processing agreements.
| Sub-processor | Role | Data processed | Location |
|---|---|---|---|
| Supabase Inc. | Database, authentication, Edge Functions | All platform data (accounts, sessions, counts, telemetry) | EU — eu-west-1 (Ireland) |
| Vercel Inc. | Application hosting (static delivery) | No personal data stored by Vercel. HTTP request logs (IP, path, timestamp) are retained per Vercel's standard policy | Global CDN — no personal data stored |
| Resend Inc. | Transactional email delivery (operational alerts to Provider's admin, and forwarding of website contact-form submissions to the Provider's inbox) | Recipient email address and alert/enquiry content. Emails are delivered only to the Provider's own team — no email is sent to end users or website visitors through Resend | USA (Resend processes under SCCs / DPA) |
| Zoho Corporation B.V. | Business email hosting — the inbox where support, contract, and website enquiry correspondence is received and stored | Email addresses, names, and message content of individuals who email the Provider directly or submit the website contact form | EU — Netherlands (Zoho's support/debugging staff in India may access data on a need basis, under SCCs) |
| Data category | Retention period | Basis |
|---|---|---|
| Account and profile data | For the duration of the service agreement + 30 days after termination, then deleted upon written request or automatically | Contractual obligation |
Inventory sessions and counts (incl. counted_by) |
For the duration of the service agreement. The restaurant operator may export all data at any time. Data deleted within 30 days of agreement termination upon request | Legitimate interests (business records); contractual |
Device telemetry (device_status) |
Rolling 90 days. Records of inactive devices are purged automatically | Proportionality — no operational need beyond 90 days |
Error logs (app_errors) |
Rolling 90 days. Errors are automatically purged after this period | Proportionality — bugs are fixed or dismissed within this window |
| Audit log | Minimum 3 years (legal accountability for administrative actions) | Legitimate interests (security, fraud prevention, legal defence) |
| Website enquiries (contact form) | 12 months from submission if no service agreement is signed, then deleted from the inbox. If the enquiry converts into a client relationship, the data continues under the account/profile retention terms above | Proportionality — reasonable follow-up window for sales enquiries |
Local device storage (localStorage / IndexedDB) |
Retained until logout, browser data clearance, or app uninstall | Controlled by the user |
As a data subject, you have the following rights regarding your personal data:
We apply the following technical and organisational security measures to protect your data:
sanitize() function before insertion into the DOM.audit_log table. The log is readable only by admin users; a restaurant user's database permissions let them log solely their own action, never read the log or attribute an entry to anyone else.In the event of a personal data breach that is likely to result in a risk to the rights and freedoms of individuals, we will:
We may update this Privacy Policy from time to time. When we make material changes, we will notify active users via the application and/or email at least 14 days before the changes take effect. The updated policy will always be accessible at /docs/privacy-policy.html within the platform.
Continued use of the platform after the effective date constitutes acceptance of the updated policy.
This platform is operated under Finnish law and subject to GDPR. The competent supervisory authority is:
You have the right to lodge a complaint with this authority at any time if you believe that the processing of your personal data violates GDPR.
Rekisterinpitäjä: Juuret Labs Oy, Y-tunnus 3644947-5, Tuulensuunkuja 3A, 00580 Helsinki. Tietosuoja-asioissa: contact@inviswise.fi (otsikkoon "Tietosuoja").
Invis Wise -alustalla käsitellään ravintolahenkilökunnan seuraavia henkilötietoja:
counted_by)Sopimuksen täyttäminen (GDPR 6 art. 1b) ja oikeutettu etu (6 art. 1f) palvelun toimivuuden, turvallisuuden ja jäljitettävyyden varmistamiseksi.
Käyttäjätilit ja inventaariotiedot säilytetään sopimuksen voimassaoloajan + 30 päivää. Virheloki ja laitetelemetria enintään 90 päivää. Hallintaloki vähintään 3 vuotta.
Sinulla on oikeus tarkastaa, oikaista ja poistaa tietosi sekä siirtää ne toiseen järjestelmään. Ota yhteyttä contact@inviswise.fi.
Tietosuojavaltuutetun toimisto · tietosuoja.fi · tietosuoja@om.fi