Stand: 10. Oktober 2026 · English version
E-Mail, auch für Datenschutzanfragen: support@voicehook.ai
voicehook.ai ist ein Sprachanruf im Browser. Du sprichst mit einem Sprach-Bot, dessen Antworten entweder ein KI-Sprachmodell oder ein von dir eingeladener KI-Agent liefert. Ein Gratis-Kontingent kannst du ohne Anmeldung nutzen. Für bezahlte Minuten lädst du ein Guthaben auf; dafür gibt es ein Konto, an dem optional deine E-Mail-Adresse hängt. Unsere Seiten setzen bei Besuchern keine Cookies und binden keine Analyse-, Tracking- oder Werbedienste ein.
Webseite, Programmierschnittstelle (API), Datenbanken und der Sprachserver laufen auf einem eigenen Server bei der Hetzner Online GmbH, Industriestr. 25, 91710 Gunzenhausen, im Rechenzentrum Nürnberg, Deutschland. Hetzner verarbeitet die Daten als Auftragsverarbeiter.
Beim Aufruf von voicehook.ai protokolliert der Webserver (Caddy) jeden Zugriff mit:
Zusätzlich protokollieren der Anwendungsserver und der Sprachdienst technische Ereignisse: Raumname, Teilnehmerkennungen, Beginn, Ende und Dauer eines Anrufs, Buchungs- und Fehlermeldungen. Gesprächsinhalte protokollieren wir nicht: weder was du sagst noch was der Bot oder ein eingeladener Agent sagt, sondern nur technische Angaben wie Länge, Zeitpunkt und Zustand einer Äußerung.
Für die Reichweitenstatistik zählen wir je Tag, Kampagnen-Quelle und Schritt (Seitenaufruf, Call gestartet, Einladung kopiert, KI beigetreten, Call ab einer Minute, Anmeldung, Aufladung, erneuter Call an einem späteren Tag). Die Kampagnen-Quelle (utm_source und utm_campaign aus dem Link) hält die geöffnete Seite nur im Arbeitsspeicher; sie wird nicht in deinem Browser gespeichert. Bei Calls über einen Einladungslink oder einen von einem KI-Agenten erzeugten Call-Link gilt die Art des Links als Quelle, ohne Kampagnen-Quelle gilt „direct“. Beim Anlegen eines Raums schickt die Seite die Quelle einmal mit, und der Server speichert sie als Etikett zum Raumnamen (Raumname, Quelle, Kampagne, Zeitpunkt; eigene Tabelle room_source in funnel.sqlite, nicht im Kostenprotokoll), ohne IP-Adresse, Konto oder Gerätekennung. Ob in diesem Raum eine Einladung kopiert wurde oder eine KI beigetreten ist, vermerkt der Server ebenfalls zum Raum. Die übrigen Schritte ordnet er nur über den Raumnamen zu: Call ab einer Minute und Anmeldung aus dem Kostenprotokoll (Abschnitt 7.1), Aufladung aus den Buchungen des Kontos, das an diesem Raum hängt. Diese Zuordnung ist pseudonym, nicht anonym, denn über den Raum sind die Buchungen eines Kontos erreichbar. Ausgewertet und ausgegeben werden aber nur Summen je Tag, Quelle und Schritt; die Statistik verknüpft die Schritte nicht mit deiner Person und enthält keine IP-Adressen und keine Kennungen deines Geräts. Ob jemand wiederkommt, werten wir nur bei angemeldeten Konten aus, anhand der ohnehin gespeicherten Call-Buchungen; auch dabei entstehen nur Summen. Die Zählanfragen erscheinen wie jeder Aufruf für höchstens 7 Tage im Server-Log, ohne den Inhalt der Anfrage. Etiketten und Vermerke zum Raum löschen wir nach 35 Tagen, die Tageszähler ohne Personenbezug nach 25 Monaten (Abschnitt 14). Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse an einer Reichweitenmessung ohne Tracking).
Zweck: Betrieb, Fehlersuche und Abwehr von Missbrauch. Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse an einem sicheren und funktionsfähigen Dienst).
Zum Schutz vor Missbrauch hält der Server die IP-Adresse beim Starten eines Anrufs bis zu 10 Minuten im Arbeitsspeicher (höchstens 5 Anrufstarts je 10 Minuten und IP-Adresse). Diese Liste wird nicht auf die Festplatte geschrieben.
Audio wird per WebRTC in Echtzeit über einen selbst betriebenen LiveKit-Server auf unserem Server in Nürnberg übertragen (rtc.voicehook.ai). Wir zeichnen Anrufe nicht auf. Für den Beitritt stellt der Server ein Zugangstoken aus, das standardmäßig nach einer Stunde abläuft. Einladungslinks sind an einen Raum gebunden und laufen ebenfalls ab. Der Anruf endet, wenn niemand mehr im Raum ist oder das Guthaben aufgebraucht ist. Der Raum wird danach gelöscht.
Damit der Bot dich versteht, wird dein Mikrofon-Audio an Deepgram, Inc. (USA) zur Spracherkennung übertragen. Ein Sprachfilter auf unserem Server schickt nur Abschnitte, in denen Sprache erkannt wurde; Stille wird nicht übertragen.
Im normalen Modus erhält die Gemini API von Google den erkannten Text des Gesprächs und die Anweisungen für den Bot, um Antworten zu erzeugen. Im Live-Modus wird dein Audio direkt an Gemini Live (Google) übertragen, das Spracherkennung, Antwort und Sprachausgabe in einem Schritt übernimmt.
Die Sätze, die der Bot spricht, werden von Google Cloud Text-to-Speech in Audio umgewandelt. Google erhält dabei nur den zu sprechenden Text.
Das Transkript (was der Bot gehört und gesagt hat) wird live an die Teilnehmenden des Raums übertragen und im Browser angezeigt. Unser Code speichert Transkripte und Audio nicht dauerhaft. Lädst du einen eigenen KI-Agenten in den Anruf ein (zum Beispiel Claude Code oder Codex), erhält dieser Agent die Transkripte. Für die Verarbeitung durch deinen Agenten und dessen Anbieter sind wir nicht verantwortlich.
Rechtsgrundlage für die Verarbeitung im Anruf: Art. 6 Abs. 1 lit. b DSGVO (Bereitstellung des von dir gestarteten Dienstes).
Ein eingeladener Agent tritt dem Anruf entweder direkt per WebRTC bei (zum Beispiel mit dem
Kommandozeilenprogramm voicehook-agent) oder über unsere HTTPS-Schnittstelle
(/api/bridge/*), etwa wenn er in einer Cloud-Umgebung ohne WebRTC läuft. Beim
Beitritt über HTTPS hält unser Server die Verbindung zum Raum stellvertretend für den Agenten.
Er leitet das Transkript, die Sätze anderer Teilnehmender und Ereignisse im Raum (wer beitritt,
wer gerade spricht) per HTTPS an den Agenten weiter und gibt die Sätze, die der Agent sprechen
lässt, an den Bot weiter. Diese Inhalte hält der Server nur im Arbeitsspeicher, solange die
Sitzung läuft.
Für jeden Beitritt stellt der Server einen zufälligen Sitzungsschlüssel aus, der nur für diesen einen Raum gilt. Auf dem Server liegt davon nur ein SHA-256-Hashwert. Der Schlüssel verfällt, wenn der Anruf endet oder der Agent den Raum verlässt, außerdem nach einer Zeit ohne Aktivität (standardmäßig 10 Minuten; der Agent kann diese Frist auf bis zu 60 Minuten setzen oder abschalten). Damit eine laufende Sitzung einen Neustart unseres Servers übersteht, speichern wir je Sitzung in einer Datenbank auf unserem Server (bridge.sqlite): Raumname, Teilnehmerkennung, IP-Adresse des Agenten, den vom Agenten angegebenen Namen und das Modell, die gewünschte Stimme, den Namen des Nutzers, falls der Agent ihn mitschickt, sowie die Zeitpunkte von Beginn, letzter Aktivität und Ende. Einladungen, Persona-Texte und Transkripte speichern wir dort nicht. Der Eintrag wird spätestens 5 Minuten nach dem Ende der Sitzung gelöscht. Beim Beitritt protokolliert der Server Raumname, Teilnehmerkennung und IP-Adresse des Agenten (siehe Abschnitt 4).
Welchen Agenten du einlädst, entscheidest du selbst; betrieben wird er von dir oder einem Anbieter deiner Wahl. Für die Verarbeitung durch deinen Agenten und dessen Anbieter sind wir nicht verantwortlich (siehe 5.5). Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO.
Seite und Anruf gibt es auf Deutsch und auf Englisch. Deine Wahl speichert dein Browser lokal
(siehe Abschnitt 11). Beim Anlegen eines Raums hinterlegt der Server die Sprache als
Eigenschaft des Raums (Raum-Metadaten auf unserem LiveKit-Server), damit Bot und eingeladene
Agenten dieselbe Sprache verwenden; Einladungslinks zu englischen Räumen tragen den Zusatz
lang=en. Diese Angabe gehört zum Raum, nicht zu einer Person, und verschwindet
mit dem Raum. Das Etikett mit der Kampagnen-Quelle speichert der Server dagegen getrennt vom
Raum (siehe Abschnitte 4 und 14).
Ohne Guthaben gibt es ein begrenztes Gratis-Kontingent pro Tag. Um es zuzuordnen, nutzen wir eine zufällige Kennung, die dein Browser im lokalen Speicher anlegt (anon-id), und deine IP-Adresse (bei IPv6 das /64-Netz); bist du angemeldet, zusätzlich die interne Kennung deines Kontos, damit das Kontingent einmal je Konto und Tag gilt. Gespeichert werden davon nur SHA-256-Hashwerte, nie die Kennung oder IP-Adresse im Klartext. Den Hash der IP-Adresse bilden wir mit einem täglich wechselnden geheimen Schlüssel, der nirgends gespeichert wird, sodass Hashwerte verschiedener Tage nicht zusammengeführt werden können. Dazu kommen Tag, Modus, Verbrauch und der Raumname. Diese Einträge werden nach 7 Tagen automatisch gelöscht.
Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO (Bereitstellung des Gratis-Angebots) und lit. f (berechtigtes Interesse, Missbrauch des kostenlosen Angebots zu verhindern).
Wenn du Guthaben auflädst, legt der Server ein Konto an und gibt deinem Browser ein geheimes Wallet-Token, das im lokalen Speicher deines Browsers liegt. Auf dem Server wird davon nur ein SHA-256-Hashwert gespeichert. In der Kontodatenbank (billing.sqlite) speichern wir:
Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO (Vertrag über das Guthaben) und lit. c (handels- und steuerrechtliche Aufbewahrungspflichten für Buchungen).
Am Ende jedes Anrufs schreibt der Server einen Eintrag in ein Kostenprotokoll (Tabelle call_ledger in billing.sqlite), auch bei Anrufen über das Gratis-Kontingent. Ein Eintrag enthält:
Transkripte, Audio, E-Mail-Adressen und IP-Adressen enthält das Protokoll nicht. Zweck: Abrechnung, Nachvollziehbarkeit der Buchungen und Kontrolle unserer Kosten. Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO.
Deine eigenen Styles (Name, Farb- und Reglerwerte, Vorschaubild) speichert dein Browser im lokalen Speicher (siehe Abschnitt 11). Bist du angemeldet, speichern wir sie zusätzlich an deinem Konto (in billing.sqlite), damit sie auf allen deinen Geräten verfügbar sind. Teilst du einen Style, legen wir eine unveränderliche Kopie an, die jeder mit dem Link abrufen kann; Konto und E-Mail-Adresse sind dabei nicht sichtbar. Rechtsgrundlage: Art. 6 Abs. 1 lit. b DSGVO. Speicherdauer: solange das Konto besteht.
Gibst du deine E-Mail-Adresse ein, schicken wir dir einen Anmeldelink. Der Versand läuft über Resend (Resend, Inc., USA), das dafür deine E-Mail-Adresse und den Inhalt der Mail erhält. Der Link ist 15 Minuten gültig und nur einmal verwendbar; auf dem Server liegt davon nur ein Hashwert zusammen mit der E-Mail-Adresse. Zum Schutz vor Missbrauch begrenzen wir die Zahl der Anfragen je IP-Adresse und E-Mail-Adresse.
Du kannst dich auch mit deinem Google- oder GitHub-Konto anmelden (OAuth). Dabei wirst du zum jeweiligen Anbieter weitergeleitet und meldest dich dort an. Wir fragen nur deine E-Mail-Adresse ab und übernehmen sie nur, wenn der Anbieter sie als bestätigt meldet. Gespeichert werden die bestätigte E-Mail-Adresse und die Kennung deines Kontos beim Anbieter (Anbieter-ID) mit dem Zeitpunkt der ersten und letzten Anmeldung. Für die Verarbeitung bei der Anmeldung auf ihren Seiten sind Google bzw. GitHub selbst verantwortlich.
Rechtsgrundlage für die Anmeldung: Art. 6 Abs. 1 lit. b DSGVO.
Zum Aufladen leiten wir dich auf die Bezahlseite von Stripe weiter (Stripe Payments Europe, Ltd., 1 Grand Canal Street Lower, Dublin 2, Irland). Deine Zahlungsdaten (zum Beispiel Kartendaten) gibst du direkt bei Stripe ein; wir erhalten sie nicht. Ist zu deinem Konto schon eine E-Mail-Adresse gespeichert, geben wir sie an Stripe weiter, damit sie vorausgefüllt ist. Von Stripe erhalten wir die bei der Zahlung angegebene E-Mail-Adresse, den Betrag und Kennungen der Zahlung sowie Meldungen über Erstattungen und Rückbuchungen. Stripe kann Daten auch in die USA übermitteln. Rechtsgrundlage: Art. 6 Abs. 1 lit. b und lit. c DSGVO.
Die Anrufseite lädt die Bibliotheken livekit-client und three.js vom Content Delivery Network jsDelivr. Dabei erhält der CDN-Betreiber deine IP-Adresse und Browser-Kopfzeilen. Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO (schnelle, zuverlässige Auslieferung).
Besuchern setzen wir keine Cookies. Ausnahme: Geräte des Betreibers tragen ein technisches
Cookie (vh_int), damit deren Aufrufe nicht in der Statistik zählen. Besucher
erhalten dieses Cookie nie. Unsere Seiten speichern einige Werte im lokalen Speicher deines
Browsers (localStorage). Die Kampagnen-Quelle aus einem Link speichern wir nicht in deinem
Browser. Die meisten verlassen deinen Browser nie; Teilnehmerkennung, anon-id,
Wallet-Token und Anmelde-Nonce gehen bei der jeweiligen Anfrage an unseren Server. Du kannst
alles jederzeit über die Browser-Einstellungen löschen.
| Schlüssel | Inhalt |
|---|---|
vh-wallet-v1 | Wallet-Token: Zugang zu deinem Guthaben |
vh_login_nonce | Einmalwert, der eine Anmeldung an diesen Browser bindet |
vh-anon-v1 | Zufällige Kennung für das Gratis-Kontingent (anon-id) |
vh-free-seen-v1 | Ob der Hinweis zum Gratis-Kontingent heute schon gezeigt wurde |
vh-seen-v1 | Ob du schon einmal einen Call hattest (steuert den Hinweis für Erstbesucher) |
vh-theme-v1 | Helles oder dunkles Design |
vh-hd-v1 | HD-Darstellung an/aus |
vh-tr-mode-v1 | Position bzw. Anzeige des Transkripts |
vh-music-state-v2 | Einstellungen der Visualisierung (Regler, Farbpalette) |
vh-mode-v1 | Gewählter Anzeigemodus |
vh-live-mode-v1 | Normaler Modus oder Live-Modus |
vh.lang | Gewählte Sprache für Seite und Anruf (Deutsch oder Englisch) |
vh-mic-v1, vh-mic-v1-label | Gewähltes Mikrofon (Geräte-ID und Name) |
vh-id:v1:<raum> | Zufällige Teilnehmerkennung je Raum, damit ein Neuladen dich nicht als neue Person zeigt |
Ein früher verwendeter Schlüssel vh-recent-invites:v1 wird beim Aufruf gelöscht.
Die Bezahlseite von Stripe sowie die Anmeldeseiten von Google und GitHub können eigene Cookies
setzen; dafür gelten die Datenschutzhinweise dieser Anbieter.
E-Mails an Adressen unter voicehook.ai werden über den Weiterleitungsdienst ImprovMX an unser Postfach weitergeleitet. Wir verarbeiten deine Nachricht nur, um sie zu beantworten. Rechtsgrundlage: Art. 6 Abs. 1 lit. b bzw. lit. f DSGVO.
| Empfänger | Zweck | Sitz |
|---|---|---|
| Hetzner Online GmbH | Server-Hosting | Deutschland |
| Deepgram, Inc. | Spracherkennung | USA |
| Google (Gemini API, Gemini Live, Cloud Text-to-Speech) | Sprachmodell, Sprachausgabe | Irland / USA |
| Stripe Payments Europe, Ltd. | Zahlungsabwicklung | Irland |
| Resend, Inc. | Versand der Anmelde-Mails | USA |
| Google, GitHub, Inc. | Anmeldung (OAuth), nur wenn du sie wählst | Irland / USA |
| jsDelivr | Auslieferung von Programmbibliotheken | siehe Betreiber |
| ImprovMX | E-Mail-Weiterleitung | siehe Betreiber |
Werden Daten in die USA oder ein anderes Land außerhalb der EU übermittelt, stützt sich das auf einen Angemessenheitsbeschluss der EU-Kommission (für zertifizierte US-Unternehmen das EU-US Data Privacy Framework) oder auf Standardvertragsklauseln der EU-Kommission.
Wir speichern personenbezogene Daten, solange es für den jeweiligen Zweck erforderlich ist, und darüber hinaus, soweit gesetzliche Aufbewahrungsfristen (etwa für Buchungen) es verlangen. Wo der Code feste Fristen vorgibt:
Du hast nach der DSGVO das Recht auf:
Wende dich dafür an support@voicehook.ai.
Du kannst dich bei einer Datenschutz-Aufsichtsbehörde beschweren, insbesondere in dem Land, in dem du wohnst oder arbeitest. Für uns zuständig ist die Landesbeauftragte für Datenschutz und Informationsfreiheit Nordrhein-Westfalen (LDI NRW), Kavalleriestr. 2-4, 40213 Düsseldorf.