RaykoLabs · Trust
What we collect when someone uses our Voice Agent widget or Demo Agent, where it lives, and who else touches it.
RaykoLabs operates an AI Demo Agent and an embeddable Voice Agent widget that runs on customer websites. When a visitor interacts with either, we process their chat messages, voice audio, and the resulting transcripts. For demos, we also record the on-screen demo session. Visitors to the RaykoLabs marketing site may submit a contact or pricing form, which collects a name, email, and company.
Voice audio is processed live by our model provider, Google Gemini Live, to enable speech-to-text and text-to-speech. We do not retain raw audio. Only the resulting text transcripts are stored.
Raw IP addresses are never stored. They are hashed or truncated at the point of collection.
The widget does not collect a visitor's name or email.
Core product data, including transcripts, form leads, and recording metadata, is stored in AWS us-east-1 (N. Virginia, United States) via Supabase. Demo session recordings are stored with Browserbase in the United States. Analytics events and CRM lead records run on our self-hosted servers in the Netherlands (EU).
Where personal data is transferred outside the European Economic Area or the United Kingdom, RaykoLabs relies on Standard Contractual Clauses with the relevant sub-processor.
| Data type | Retention | Notes |
|---|---|---|
| Demo session recordings | 7 days | Default. Extendable on customer request. |
| Transcripts (chat and voice) | 12 months | |
| Form leads | 12 months | |
| Analytics events | 12 months |
RaykoLabs deletes data earlier on customer request.
RaykoLabs uses a small set of trusted providers to deliver the Services. Each provider is bound by data protection terms with RaykoLabs and is used only for the purpose stated. When a sub-processor is added or replaced, customers under contract receive notice in advance, with a reasonable opportunity to object on data protection grounds.
| Sub-processor | Purpose | Data processed | Location |
|---|---|---|---|
| Vercel | Application hosting (marketing site, demo product) | All visitor traffic in transit | United States |
| Supabase | Primary database, authentication, file storage | Transcripts, leads, recording metadata, widget chat | United States · AWS us-east-1, N. Virginia |
| Hetzner Cloud | Self-hosted VPS: voice and automation backend, in-house analytics, CRM | Voice and automation processing, analytics events, lead records | Netherlands · EU |
| Browserbase | Cloud browser that runs and records the live demo session | Demo session screen recordings | United States |
| Google (Gemini API and Gemini Live) | LLM for demo reasoning and RAG; speech-to-text and text-to-speech for the voice agent | Chat text, voice audio, transcripts | United States · global |
| OpenAI | Post-call transcript analysis and suggested replies (demo product only) | Demo transcripts | United States |
| Microsoft Clarity | Session replay and heatmaps on the marketing site | Visitor behavior, pseudonymous visitor ID | United States · global |
| Google Analytics (GA4) | Marketing-site web analytics | Page views, events, pseudonymous IDs | United States · global |
| Rayko Analytics (in-house) | Self-hosted product and marketing analytics | Page views, device, UTM, truncated IP, pseudonymous visitor and session IDs | Netherlands · EU, self-hosted |
| Google Fonts | Web font delivery for the widget and marketing site | Visitor IP and user-agent (standard font request) | United States · global |
Analytics is primarily handled in-house with Rayko Analytics, self-hosted in the EU. RaykoLabs does not use a third-party error-tracking service. The queue and cache infrastructure is self-hosted.
Both the widget and the demo set cookies and browser storage. All identifiers are randomly generated and contain no personal information. The widget honours the browser's Do-Not-Track signal: when DNT is enabled, the widget sets nothing and sends nothing.
| Key | Type | Purpose | Lifetime |
|---|---|---|---|
rk_visitor | Cookie | Pseudonymous visitor ID | 1 year |
rayko_visitor_id, rk_visitor | localStorage | Pseudonymous visitor ID (backup) | Persistent |
rk_session_id, rk_session_last, rk_session_started, rk_session_utm | sessionStorage | Session and campaign attribution | Per tab, 30-minute idle |
rk_opt_out | localStorage | Opt-out flag | Set only if visitor opts out |
Chat text and microphone audio are streamed to the RaykoLabs backend for processing. They are not stored in the visitor's browser.
| Key | Type | Purpose | Lifetime |
|---|---|---|---|
rk_aff | Cookie | Affiliate attribution code | 90 days |
rk_visitor | Cookie | Pseudonymous visitor ID | 1 year |
rk_session_id | Cookie | Session ID | Session |
rayko_attribution | localStorage | UTM and referrer attribution | Persistent |
_clck, _clsk | Cookie | Microsoft Clarity analytics | Per Clarity policy |
_ga, _ga_* | Cookie | Google Analytics | Up to 2 years |
| Supabase auth cookies | Cookie | Login session, customers and admins only | Session |
Visitors can ask to access, correct, or delete their personal data, or to receive a copy of it. Requests should be raised with the site owner running the widget. RaykoLabs will assist that customer in responding. To reach RaykoLabs directly on a data question, use the contact below.
For any question about how the widget or demo handles visitor data, contact Aayush Verma at contact@raykolabs.com.
RaykoLabs · point of contact Aayush Verma · contact@raykolabs.com
This page is a plain-language reference. The legally binding terms governing data processing for RaykoLabs customers are set out in the Data Processing Agreement (DPA) signed between RaykoLabs and the customer.