Privacybeleid
Laatst bijgewerkt: 3 oktober 2026
Deze pagina is een vertaling, zodat je het document in je eigen taal kunt lezen. De Engelse versie is het origineel, en waar de twee van elkaar afwijken, geldt de Engelse tekst.
Whisprompt is gebouwd met privacy voorop. Dit beleid legt uit wat we doen en, net zo belangrijk, wat we niet verzamelen. Het geldt voor elke Whisprompt-app — op telefoon, tablet, horloge, televisie en Mac — en voor deze website. Waar iets maar voor één ervan geldt, staat dat erbij.
De korte versie: Je teksten blijven op je apparaten en bereiken ons nooit; niets stuurt er een ergens anders heen, tenzij je zelf een dienst koppelt (paragraaf 3). De spraakherkenning wordt gedaan door de motor van je telefoon zelf, en die stuurt daarvoor mogelijk audio naar Apple of Google — installeer een offline taalpakket en dan verlaat de audio het apparaat nooit. Bij ons komt hij hoe dan ook nooit. Een account is niet nodig, en we verkopen je gegevens niet. De app kan meten hoe goed hij het doet — aantallen en tijden, nooit een woord van wat je schrijft of zegt — maar alleen als je ja zegt: tot dan wordt er niets gemeten, de vraag komt pas nadat je de app hebt gebruikt, en je antwoord geldt voor de apparaten die je als je eigen apparaten koppelt (paragraaf 6).
1. Wie verantwoordelijk is (verwerkingsverantwoordelijke)
Leonid Kabanov (autónomo), Spanje. Contact: support@whisprompt.app. De volledige identificatiegegevens staan in het colofon. We zijn gevestigd in Spanje en dus binnen de Europese Unie, waardoor artikel 27 AVG — dat een vertegenwoordiger in de Unie voorschrijft — niet op ons van toepassing is. We hebben geen functionaris voor gegevensbescherming aangesteld en zijn dat ook niet verplicht: Whisprompt is geen overheidsinstantie, het observeert mensen niet regelmatig en stelselmatig op grote schaal, en bijzondere categorieën van gegevens bereiken ons in het geheel niet. De toezichthoudende autoriteit van onze vestiging is de Agencia Española de Protección de Datos (AEPD), aepd.es.
2. Gegevens die op je apparaat worden verwerkt
- Audio van de microfoon. Wordt live opgevangen voor de stemvolging en (als je opneemt) voor video. Hij gaat naar de spraakherkenningsmotor die in je telefoon zit — die van Apple op iOS, die van Google op Android — en die kan hem, afhankelijk van het apparaat, de taal en je instellingen, verwerken op de servers van dat platform, onder de eigen privacyvoorwaarden van dat platform. Installeer een offline taalpakket en de herkenning gebeurt volledig op het apparaat, zonder dat er een netwerk aan te pas komt. In beide gevallen bereikt de audio ons nooit: we hebben geen spraakservers, en op geen enkele server van ons staat een opname. De videobestanden die je zelf besluit te bewaren blijven op je apparaat of in je eigen cloudopslag staan.
- Je teksten en je instellingen. Worden lokaal op je apparaat bewaard (en, als je dat aanzet, in je persoonlijke cloudopslag, waarvoor de privacyvoorwaarden van die aanbieder gelden). Cast je de teleprompter naar je andere apparaten, dan reist de tekst er versleuteld tussen — zie paragraaf 5.
- Gedownloade taalmodellen. Staan op je apparaat. Een model downloaden is een rechtstreeks verzoek aan de host van dat model; wij hangen er geen identiteit aan.
3. Gegevens die worden verwerkt door diensten die jij koppelt
Een paar optionele functies maken verbinding met diensten waarvoor jij toestemming geeft. Wij treden alleen op als jouw client; elke aanbieder is een zelfstandige verwerkingsverantwoordelijke onder zijn eigen beleid:
- Notion en documenten die je opent. Koppel je Notion, dan leest Whisprompt de pagina’s die je uitkiest als een alleen-lezen spiegel, met de toegang die jij verleent. Open je een bestand van je apparaat of van een clouddienst, dan wordt het gelezen om de tekst te tonen. Kopieën van die toegangsgegevens bereiken geen enkele server van ons.
- De AI-assistent in het operatorstation op de Mac. De assistent doet niets zolang je hem geen eigen sleutel voor een AI-aanbieder geeft. Heb je dat gedaan, dan draagt elk verzoek de hele open tekst mee, het fragment dat je hebt geselecteerd, je instructie en het gesprek tot dan toe — rechtstreeks van je Mac naar die aanbieder, Anthropic of OpenAI, afhankelijk van de sleutel, onder jouw sleutel en jouw eigen account bij hem, op zijn voorwaarden en met zijn bewaartermijnen. Het gaat door geen enkele server van ons: wij zien de sleutel niet en de tekst niet. De sleutel wordt bewaard in de macOS Keychain, wordt niet gesynchroniseerd en gaat niet mee naar je andere apparaten. De apps voor telefoon en tablet hebben geen assistent.
- Apple & Google (appstores & abonnementen). Aankopen, een eventuele gratis proefperiode en de facturering van het abonnement worden afgehandeld door Apple of Google. Je betaalgegevens zien we nooit; het enige wat wij krijgen is de status van je abonnement — paragraaf 4 legt precies uit hoe.
4. Abonnement en Pro
Whisprompt heeft geen accounts. Er is niets om je bij aan te melden en niets om aan te maken, aan geen enkele aanbieder wordt ooit om je e-mailadres gevraagd, en we hebben van jou geen naam en geen adres. De teleprompter, het opnemen en het casten werken zoals ze zijn, en een abonnement wordt gekocht en hersteld zonder account. De code voor een optioneel account zit nog wel in de app — Sign in with Apple, met Supabase als verwerker — en die ligt stil: hij wordt aangezet door sleutels waarmee de app niet gebouwd is, dus er is geen aanmeldscherm, er bereikt niets Supabase en er wordt geen e-mailadres verzameld. Mocht er ooit een account komen, dan beschrijft deze pagina wat die verwerkt vóór de release die hem brengt, niet erna.
- RevenueCat (abonnementsbeheer). Onze verwerker om vast te stellen of een abonnement actief is, of je het nu in de App Store of op Google Play hebt gekocht. Hij krijgt je aankoopgeschiedenis in deze app, een id voor de klant, en de apparaat- of installatie-id die het besturingssysteem aan de app geeft (op Apple-apparaten de IDFV), samen met technische details over het apparaat en de versie van het besturingssysteem. De klant-id is nergens uit jou afgeleid: vóór je eerste aankoop is het er een die RevenueCat voor zichzelf aanmaakt, en vanaf die aankoop is het een willekeurige die je apparaat zelf aanmaakt en bewaart — dezelfde die je andere apparaten dragen, en zo dekt één abonnement ze allemaal (paragraaf 5). Dat is wat Pro ontgrendelt en je aankoop op al je apparaten herstelt. We verzamelen geen advertentie-id’s en we zetten in RevenueCat geen advertentie- of attributie-integraties aan; deze gegevens worden niet gebruikt om je te volgen en worden niet gecombineerd met gegevens van andere bedrijven.
- Verwijderen wat wij bewaren. Er is geen account om te verwijderen, en de app heeft er ook geen knop voor. Wat we op een server van ons bewaren is de lijst van apparaten die je abonnement dekt, en die kun je op elk moment in de app verwijderen, onder Instellingen → Gegevens op onze servers (paragraaf 11). Dat zegt je abonnement niet op: dat hoort bij je App Store- of Google Play-account en wordt opgezegd waar je het hebt gekocht. Je teksten en je opnames blijven hoe dan ook op je apparaat; wil je een apparaat zelf leegmaken, zie paragraaf 7.
5. Casten naar je andere apparaten
Whisprompt kan de teleprompter op meerdere van je eigen apparaten tegelijk draaien. Op hetzelfde lokale netwerk verbinden ze rechtstreeks. Is er geen gedeeld netwerk, dan loopt de verbinding via onze relayserver op Cloudflare Workers:
- Een bibliotheek delen tussen je eigen apparaten. Apparaten die je als je eigen apparaten koppelt spiegelen elkaars bibliotheek: een tekst die op het ene wordt geschreven verschijnt op de andere, en een bewerking op het ene bereikt ze ook. De kopieën staan op je apparaten en reizen ertussen op dezelfde versleutelde manier als al het andere hier — geen server van ons houdt een kopie, en buiten je eigen apparaten krijgt niemand er een, tenzij je een tekst bewust deelt.
- Elk sessieframe wordt versleuteld op het verzendende apparaat (ChaCha20-Poly1305), en de sleutel reist alleen mee in de uitnodiging — een QR-code of een toegangscode. De relayserver ziet alleen versleutelde frames: hij kan je tekst, audio of video niet lezen.
- De relayserver bewaart geen sessie-inhoud. Een ruimte leeft hoogstens vier uur en wordt daarna verwijderd. De brievenbus waarmee je apparaten elkaar vinden bevat alleen een servicesleutel en een tijdstempel van het laatste contact — niet langer dan 30 dagen, en zonder enige inhoud.
- Gebruik je Pro op meer dan één apparaat, dan bewaart de relayserver ook de lijst van die apparaten, zodat één abonnement er tot zes kan dekken. Daarin staan een id die de app per apparaat aanmaakt, de naam die dat apparaat van zichzelf doorgeeft, en de datums waarop het is toegevoegd en voor het laatst is gezien — geen teksten, geen audio, geen video. Het hele record wordt verwijderd na een jaar waarin geen van je apparaten het heeft gebruikt, en je kunt het op elk moment zelf vanuit de app verwijderen.
- Zoals elke webdienst ziet de relayserver bij het verbinden een IP-adres. Dat wordt in het voorbijgaan gebruikt, om het tempo van verzoeken te begrenzen en misbruik tegen te gaan, en het wordt niet gekoppeld aan je abonnement of aan de lijst apparaten die dat abonnement dekt.
6. Gebruiksgegevens
Whisprompt kan meten hoe goed hij het doet en ons die metingen sturen — aantallen, tijdsduren en codes, nooit een woord van wat je schrijft of zegt. Niets daarvan gebeurt tenzij je ja zegt. Tot dan wordt er niet gemeten, is er geen id, en staat er niets op je apparaat voor. De app vraagt het één keer, en nooit op het moment dat je hem voor het eerst opent, want een vraag die wordt gesteld voordat de app iets heeft gedaan is een vraag die je onmogelijk kunt beantwoorden. Hij komt nadat je eerste leessessie ergens is gekomen — of, als je vóór dat moment een tweede apparaat koppelt, aan het eind van dat koppelen, op één kaart samen met de vraag hieronder over het tellen van je apparaten. Die kaart heeft twee antwoorden en geen derde uitweg: hij gaat niet dicht als je ernaast tikt of op terug drukt, want een kaart die door een verdwaalde tik dichtgaat zou een weigering hebben vastgelegd die je nooit hebt gegeven. Er wordt niets weggeschreven zolang je hem niet beantwoordt, dus haalt iets anders hem eerst van het scherm — de app sluit, een ander scherm neemt zijn plaats in — dan staat de vraag gewoon nog open, en komt hij terug na je volgende leessessie. Heb je eenmaal geantwoord, wat je ook antwoordde, dan komt hij helemaal niet meer terug. Je antwoord geldt voor de apparaten die je als je eigen apparaten koppelt, en dat staat op de kaart waar je het geeft: een apparaat dat je later koppelt neemt dat antwoord over zodra het de volgende keer verbindt, en zegt dat ook gewoon, in plaats van dezelfde vraag een tweede keer te stellen. Het werkt in beide richtingen — zet het meten uit op een van je apparaten en de andere stoppen ook. Een antwoord dat op een apparaat is gegeven wordt nooit overschreven door een antwoord dat van een ander apparaat binnenkomt, dus het hier uitzetten kan niet ongedaan worden gemaakt door een apparaat dat het nog niet heeft gehoord. Zeg je nee, dan verandert er verder niets aan de app, en dat apparaat vraagt het niet nog eens. Zeg je ja, dan zit de schakelaar in de instellingen van de app, onder “Gebruiksgegevens”, zodat je hem op elk moment weer uit kunt zetten zonder een reden op te geven. Waar dit juridisch op rust staat in paragraaf 9; de manieren om je toestemming in te trekken staan aan het eind van deze paragraaf. Uitzetten stopt het meten zelf, niet alleen het versturen, en wist van het apparaat de id hieronder, alles wat nog op verzending stond, en het notitietje over een lopende leessessie dat onder “Wat er gemeten wordt” beschreven staat.
- Wat er gemeten wordt. Aantallen, tijdsduren en codes — en wat hierna komt is alles, geen selectie. Over een leessessie: of die op stemvolging of op automatisch scrollen liep, hoe lang die duurde, hoeveel woorden de tekst had, hoe ver je kwam, als percentage, hoe vaak je de tekst zelf ter hand moest nemen, de taalcode, welke spraakmotor er draaide, of het apparaat offline was, of de leessessie tegelijk op een tweede scherm te zien was, of een deel ervan vanaf een horloge is aangestuurd, en of een deel ervan vanaf een fysieke afstandsbediening is aangestuurd — een bluetooth-clicker, een pageturner en een gewoon toetsenbord net zo goed, want het systeem meldt ons alle drie als dezelfde toetsaanslagen en geeft ons geen manier om ze uit elkaar te houden; geen van beide zegt welke knop is ingedrukt of hoe vaak, alleen dát de leessessie zo is aangestuurd, hoeveel hoorbaar geluid de controle op een kapotte spraakherkenner hieronder heeft weten op te vangen — een van vier bereiken (helemaal niets, minder dan tien seconden, minder dan een minuut, een minuut of meer), nooit een aantal seconden, en alleen wanneer er überhaupt spraakherkenning liep: het is de eigen doorlopende telling van die controle en geen meting van hoe lang je hebt gesproken, want geluid dat zachter is dan het niveau waar hij naar luistert telt er niet in mee, elke luidheidsmeting die de motor stuurt telt hooguit een halve seconde mee, en de eerste meting na elke start telt helemaal niet mee — dus bij een motor die zijn niveau één keer per seconde meldt, komt het uit op een fractie van de tijd dat je werkelijk aan het praten was; wat het ons vertelt is of die controle op jouw apparaat had kunnen werken, en het zegt niets over wat er is gezegd, en hoe die afliep: dat er niets misging, dat de leessessie nergens is gekomen, of dat de spraakherkenning het begaf — en als die het begaf, op welke van de vier manieren hieronder. Krijgt een leessessie nooit een einde — het systeem sluit de app terwijl die op de achtergrond staat, de batterij raakt leeg, de app valt om, of je veegt hem halverwege weg — dan valt daar niets van te meten, want het deel van de app dat het gemeten zou hebben is met de rest verdwenen. Daarom ligt er, zolang een leessessie loopt, een kort notitietje op je apparaat met wat er bij het begin bekend was, en niets meer: stemvolging of automatisch scrollen, de taalcode, hoeveel woorden de tekst had, en welke spraakmotor er draaide. Het notitietje wordt verwijderd op het moment dat de leessessie normaal eindigt. Treft de app er bij de volgende start nog een aan, dan stuurt hij die vier gegevens door, wist hij het notitietje en stuurt hij ze nooit nog eens — één afgebroken leessessie wordt één keer gemeld. Verder wordt er over zo’n leessessie niets gemeld: niet hoe lang die duurde, niet hoe ver je kwam, niet hoe die afliep, want er was niets meer over om het mee te meten. Het notitietje wordt alleen geschreven zolang het meten aanstaat, bevat niets buiten die vier gegevens, en wordt samen met al het andere gewist zodra je het meten uitzet. Als de stemvolging je kwijtraakt: de taalcode, de motor, of hij je überhaupt weer heeft ingehaald, en hoe lang dat duurde als hij dat deed. Als de spraakherkenning zelf het begeeft: de taalcode, de motor, hoeveel seconden die motor al draaide, of hij was gestart doordat de tekst halverwege van taal wisselde in plaats van doordat jij op afspelen drukte, en welke van vier dingen er gebeurde — hij bleef geluid horen maar gaf geen woorden meer terug, hij zei helemaal niets meer, zodat zelfs de microfoonmeting wegviel, hij viel om en een andere motor nam het over, of hij viel om zonder dat er nog iets was om het over te nemen. Als de app je iets vraagt wat het systeem bewaakt — de microfoon of de camera — welke van de twee hij vroeg, en welke van drie antwoorden er terugkwam: je stond het toe, je weigerde het, of het systeem had de weigering al afgehandeld en liet je helemaal geen dialoogvenster zien. En als hij op zoek gaat naar een bluetooth-afstandsbediening, of hem de toestemming is geweigerd om apparaten in de buurt te vinden — daar alleen de weigering, want een systeem dat akkoord is gegaan begint gewoon te zoeken en zegt niets wat wij zouden kunnen vastleggen. Alleen daar waar hij het vraagt. Het teruglezen van een antwoord dat je al hebt gegeven gebeurt voortdurend en is geen meting; daarvan wordt niets verstuurd. Eén keer per installatie: of je eerste leessessie de helft voorbijkwam binnen een uur na het installeren, binnen een dag, een week, een maand, of later dan dat — een bereik, geen tijdstip. Bij het downloaden van een taalmodel: de taalcode, de omvang in bytes, en of het begon, klaar kwam of mislukte. Bij een verbinding met een ander apparaat: hoe die afliep en hoe de twee apparaten elkaar hebben gevonden. Bij een uitzending naar een scherm: naar wat voor scherm die ging (telefoon, tablet, computer, tv, horloge, of een soort die de app niet herkende), hoe lang die duurde, en of die eindigde doordat de verbinding wegviel. Bij elke poging om de tekst op een scherm te krijgen, of die nu lukte of niet: op wat voor scherm die gericht was — voor zover dit apparaat dat wist voordat het het probeerde, wat vaak helemaal niet is — en welke van zes dingen er gebeurde: het scherm nam hem aan; het nam hem aan, maar een van de twee apps loopt een versie achter, zodat de nieuwere onderdelen uitgeschakeld draaien; op geen van beide routes kwam er antwoord; het scherm weigerde de claimcode; de twee liggen te ver uit elkaar in versie om überhaupt te kunnen praten; of dit apparaat kon de poging om te beginnen al niet doen. Niets over de tekst, en geen adres van een van beide apparaten. Bij de melding die verschijnt wanneer een tekst meer dan één taal bevat: of je hem hebt gesloten of er verder bent gegaan naar het abonnementsscherm. Niets over de tekst zelf, en niets over welke talen erin zaten. Bij het abonnementsscherm: bij welke van de vergrendelde functies je stond toen het verscheen, of dat je het zelf vanuit de instellingen hebt geopend in plaats van dat iets je tegenhield, of dat je bij je eigen berichten op de regel hebt getikt die zegt dat een abonnee als eerste antwoord krijgt. Bij een poging tot kopen: welke van vier soorten plan het was — per maand, per jaar, lifetime, of een waarvan de app de periode niet herkende — en of die is voltooid, door jou is geannuleerd, door de store in behandeling is gehouden, niet beschikbaar was, of is mislukt. Bij een herstel: of er iets is hersteld, of er niets te herstellen viel, of dat het is geannuleerd of is mislukt. Twee gegevens over het abonnement staan ook naast de id hieronder en worden bijgewerkt zodra ze veranderen: of Whisprompt Pro op dit moment actief is op dit apparaat, en of het hier is gekocht en niet op een ander apparaat van jou. Bij alle metingen bovendien: het moment waarop het gebeurde, de versie van de app, het platform, en hoe lang deze installatie al meet — een bereik, nooit een datum en nooit een aantal dagen: de eerste dag, de eerste week, de eerste maand, een tot drie maanden, drie tot zes, zes tot twaalf, een tot twee jaar, of langer. Dat bereik wordt geteld vanaf de dag dat je het meten hebt toegestaan, want daarvóór wordt hier niets voor bewaard, en anders dan het bereik van de eerste leessessie hierboven reist het met elke meting mee in plaats van één keer. En over het apparaat waarop de meting is gedaan: wat voor apparaat het is — telefoon, tablet, computer, tv of horloge, en niets specifiekers dan dat — welk besturingssysteem erop draait, het hoofdversienummer van dat systeem en alleen dat (“18”, nooit “18.3.1”), de taal waarin de interface van de app zelf staat, en het land waarop je apparaat is ingesteld. Over twee daarvan is het de moeite waard precies te zijn. Het land wordt gelezen uit de eigen regio-instelling van je apparaat: het is het land dat jij in je instellingen hebt gekozen, niet een land dat wordt afgeleid uit het netwerkadres waarmee je toevallig verbonden bent — zie “Wie het verwerkt” hieronder. En van de versie alleen het hoofdnummer, omdat juist dat ons vertelt of een oud systeem kan vervallen; de rest zou meer zeggen over jouw specifieke apparaat dan over het systeem. Nog meer over een leessessie. Waar de tekst vandaan kwam, als een van zeven antwoorden: de starttekst die we bij de eerste start voor je schrijven; diezelfde starttekst nadat je hem hebt bewerkt; een tekst van jezelf — hier getypt, hier gedicteerd, ingeplakt, of gesynchroniseerd vanaf een ander apparaat dat je hebt gekoppeld, en dat is één antwoord omdat het allemaal jouw eigen schrijfwerk is; een bestand; of een document dat is gesynchroniseerd vanuit Notion, vanuit Google Docs of vanuit iCloud. Nooit de titel, nooit de bestandsnaam, nooit het adres, en nooit een woord eruit. Welke van de vijf leesstijlen op het scherm stond, en op welke kleuren de tekst is gelezen: op een van de zes leesthema’s die de app meelevert, of — bij een thema dat je zelf in de thema-editor hebt gemaakt — alleen dát het een van je eigen thema’s was. Nooit de naam ervan, en nooit de id die de app eraan heeft gegeven. Een thema dat de naam van een persoon of van een gelegenheid draagt, is hetzelfde soort schrijfwerk als de titel van een tekst, en de id is die naam, één stap verderop. En of er voor die tekst een doeltijd was ingesteld voordat de leessessie begon — dat er een was, nooit hoe lang die was, want een tijdsduur naast het aantal woorden op dezelfde regel zou één bepaald document beschrijven. Over een tekst die in je bibliotheek terechtkomt, langs welke weg dan ook: waar hij vandaan kwam — dezelfde zeven antwoorden plus een achtste: dat je hem hebt gedicteerd —, de taalcode die de tekst opgeeft, en hoeveel woorden erin staan. Dat achtste antwoord is alleen bekend op het moment dat de tekst wordt bewaard en wordt er niet mee opgeslagen: lees je een gedicteerde tekst, dan telt hij zoals hierboven als een van je eigen teksten. Nooit de titel en nooit een woord eruit. De starttekst die we bij de eerste start voor je schrijven wordt niet meegeteld, want die meetellen komt neer op installaties tellen, en dat wordt niet gemeten. Over een opname: of het audio of video was, hoeveel hele seconden die liep, en op welke van drie manieren die eindigde — die is opgeslagen, die kwam leeg terug omdat er niets in het bestand belandde, of die mislukte. Niets over het bestand: niet de naam, niet de grootte, niet de resolutie, niet welke microfoon of welke lens, en geen seconde van wat er is opgenomen. Een opname die er nooit is gekomen omdat je de microfoon of de camera hebt geweigerd, wordt alleen als die weigering hierboven geteld en niet als opname. En over een promocode — een van ons, ingetypt op het inwisselscherm van Whisprompt zelf: dat er een code is ingewisseld, en welke van negen dingen er terugkwam. Hij werkte; zo’n code kennen we niet; hij was al gebruikt; hij was verlopen; de partij waar hij bij hoort was op; deze kopie van de app nam onze codes helemaal niet aan, omdat die route nog niet is gebouwd of is uitgezet; er waren er vanaf dit apparaat te veel achter elkaar geprobeerd; we waren helemaal niet te bereiken; of het mislukte om een reden die geen van de vorige benoemt. Nooit de code zelf en nooit één teken ervan — een promocode is een geheim aan toonder ter waarde van een abonnement, en een code die in een meting staat, staat in de registratie van een derde partij. Als je in plaats daarvan het inwisselscherm van de store zelf opent, dat van Apple of dat van Google: dat het is geopend, en verder niets, want geen van beide stores vertelt de app wat erop is ingetypt of wat ermee is gebeurd. En als je het aantal talen inperkt waartussen de taalherkenning mag kiezen — in het menu “Taal” van de tekst zelf, of in de instellingen voor elke nieuwe tekst — hoeveel talen dat vóór de wijziging waren en hoeveel erna, en of je de keuze weer op “Auto” hebt gezet, waarmee er gekozen wordt uit alles wat de app meelevert. En als je ons vraagt een taal toe te voegen die de app nog niet spreekt: welke taal, aangeduid met de taalcode, en vanaf welke van de drie plekken je dat vroeg — het menu “Taal” van een tekst, de standaard in de instellingen, of de keuzelijst voor de app-taal. Dat is de meting; het verzoek zelf bereikt ons of je nu wel of geen meting hebt toegestaan, en paragraaf 6b zegt wat het meedraagt. En wanneer deze versie van de app verouderd is en moet worden bijgewerkt: welke van vier dingen er met de melding is gebeurd die dat zegt — ze werd getoond; ze werd tegengehouden, omdat je midden in een leessessie zat; ze werd uitgesteld, omdat je “Later” koos; of ze werd ingetrokken voordat ze ooit werd getoond, omdat we de minimumversie weer hebben verlaagd — en een aantal hele seconden: bij een uitgestelde melding hoe lang ze op het scherm had gestaan, anders hoe lang het geleden was dat dit apparaat tijdens deze start van de app voor het eerst hoorde dat de app moest worden bijgewerkt.
- Wat er nooit gemeten wordt. Je teksten, hun titels, de namen van bestanden die je opent, audio, opnames, transcripties, de namen van je apparaten, je contacten. Een taalcode reist mee; de titel van een tekst niet. Van de abonnementsmetingen hierboven: geen prijs, geen valuta, geen bon, geen bestel- of transactienummer, geen productidentificatie van de store, geen betaalgegeven van welke aard ook, en geen fouttekst van de store — wat meereist is welke van acht met name genoemde functies het scherm opende, welke van vier soorten plan het was, en welke uit een vaste reeks uitkomsten. Ook niet op hoeveel apparaten je je abonnement gebruikt. Elke meting is een vaste verzameling getallen, tijden en codes, dus er is nergens plaats waar iets wat je hebt geschreven, benoemd of betaald zou kunnen opduiken.
- Het is niet anoniem, en dat zeggen we liever hardop. De metingen van dit apparaat dragen één blijvende willekeurige id. Die hoort bij deze installatie van de app en bij niets anders: hij wordt gemaakt door de meetcomponent zelf, op de dag dat je het meten toestaat en geen moment eerder, hij wordt voor niets anders dan deze metingen gebruikt, en het is niet de id die je abonnement gebruikt — die gaat nooit met een meting mee, dus de twee registraties blijven uit elkaar en geen van beide draagt de id van de ander. Niets in een meting zegt welke van je apparaten bij elkaar horen: verleen je niet de aparte toestemming hieronder, dan komen je telefoon en je tablet binnen als twee losse installaties en worden ze als twee geteld. De id wordt uiterlijk dertien maanden nadat hij is gemaakt vervangen, of je de app ondertussen nu wel of niet hebt gebruikt, en de nieuwe sluit niet aan op de vorige — zo kan de registratie van een installatie niet langer worden dan dat. Het meten uitzetten wist de id van het apparaat. Willekeurig als hij is, blijft het een id, en daarom staat deze alinea er, in plaats van de bewering dat de metingen anoniem zijn.
- Je apparaten als één persoon tellen — een aparte toestemming, uit tenzij je hem verleent. Gebruik je Whisprompt op meer dan één apparaat, dan kan de app je één keer vragen of de metingen van al die apparaten één gedeelde id moeten dragen, zodat een telefoon en een tablet als één persoon tellen in plaats van als twee. Die vraag verandert alleen de id, en niets aan wat er gemeten wordt: dezelfde lijst hierboven, dezelfde eigenschappen, geen extra gebeurtenis en geen nieuwe ontvanger. Hij staat uit tenzij je ja zegt, nee zeggen verandert verder niets aan de app, en je kunt hem later in hetzelfde deel van de instellingen aan- of uitzetten. Net als bij het meten hierboven wordt dit één keer gevraagd in plaats van op elk apparaat: zeg je ja, dan nemen de andere apparaten op je abonnement dat antwoord over zodra ze de volgende keer verbonden zijn — de gedeelde id bereikt ze via hetzelfde versleutelde kanaal dat je apparaten onderling al gebruiken, en er reist verder niets over het meten met hem mee. Hij bereikt alleen een apparaat waarop je het meten hebt toegestaan, want op elk ander valt er voor hem niets te tellen. Een nee wordt nergens heen gedragen, dus een apparaat dat je later koppelt kan de telvraag zelf stellen; nog eens weigeren kost één tik en wordt onthouden. Ook die kaart heeft twee antwoorden en geen derde uitweg, en er wordt niets vastgelegd zolang je er geen geeft. Zet je hem aan, dan geldt dat vanaf dat moment vooruit — al verzamelde metingen worden niet opnieuw gelabeld, en de id die deze installatie daarvóór gebruikte wordt niet verstuurd en niet aan de gedeelde gekoppeld. Eén geval is het waard om daarnaast apart te noemen. Draagt deze installatie al een gedeelde id en neemt hij daarna een andere aan — en dat is wat er gebeurt als je hem koppelt aan apparaten die al een eigen gedeelde id hebben — dan draagt de volgende meting één keer de vorige gedeelde id mee, zodat de registraties van één persoon niet als twee worden gelezen: een die ophoudt te bestaan en een die uit het niets opduikt. Alleen een gedeelde id reist ooit op die manier mee; de id per installatie hierboven wordt nooit in dat veld verstuurd, bij geen enkele overgang. Zet je hem uit, dan gaat deze installatie terug naar een eigen id, en dat is een nieuwe en niet de id die hij eerder had. Hij kan niet aanstaan terwijl het meten uitstaat, want dan zou er niets te tellen zijn: zet je het meten uit, dan wordt de gedeelde id samen met de andere van het apparaat gewist. En koppel je een tweede apparaat voordat de meetvraag je überhaupt is gesteld, dan kan de app de twee bij elkaar zetten — één keer in het leven van de app, op één kaart die zegt wat ze allebei zijn. Die kaart is de kaart die over het meten gaat, niet een extra kaart: op dat apparaat wordt geen van beide vragen nog een keer gesteld. Een ja is daar een ja op allebei, want ze werden er allebei op genoemd; een nee weigert ze allebei. Je apparaten koppelen hoe dan ook, en het ene antwoord wordt nooit voor het andere aangezien.
- Wie het verwerkt. Amplitude, onze verwerker, op zijn Europese endpoint. Elk verzoek vraagt Amplitude om niets af te leiden uit het adres waar het vandaan komt, dus er wordt geen stad, geen regio en geen locatie van welke aard ook afgeleid uit waar je verbinding maakte. Het land in de lijst hierboven is daarop geen uitzondering: het is het land dat op je apparaat is ingesteld, meegestuurd omdat wij het erin zetten, en het zou hetzelfde land zijn op welk netwerk je ook zat.
- Hoe je je toestemming intrekt, en wat er dan gebeurt. Twee manieren, en elk van de twee is genoeg. In de app: Instellingen → Gebruiksgegevens → zet de schakelaar uit. Of schrijf naar support@whisprompt.app en zeg het, dan stoppen we ermee. Intrekken kost niet meer tikken dan instemmen kostte, je hoeft geen reden te geven, en wij vragen er ook niet om. Het uitzetten geldt als jouw bezwaar en niet als de instelling van één toestel: je andere gekoppelde apparaten krijgen het te horen, via het versleutelde kanaal dat ze al met dit apparaat delen, en stoppen ook met meten zodra ze de volgende keer verbonden zijn — een apparaat dat slaapt hoort het als het terugkomt, want het bericht wordt herhaald tot het aankomt. Het weer aanzetten reist minder ver: het bereikt een apparaat dat je hebt gekoppeld maar waarop de vraag nooit is gesteld, en dat neemt het antwoord over en vertelt je dat het dat heeft gedaan; het verdringt nooit een antwoord dat een apparaat zelf heeft gegeven — dus een apparaat dat je hier hebt uitgezet blijft uit tot je het daar aanzet. Die asymmetrie is met opzet zo. Bezwaar tegen gemeten worden komt van een mens, en dan reikt het wat ons betreft liever te ver dan niet ver genoeg; een toestemming hoort een antwoord dat iemand al gaf op het apparaat in zijn handen niet te kunnen overrulen. Je antwoord wordt op het apparaat onthouden, over herstarts en app-updates heen, en het overleeft het vervangen van de id na dertien maanden — een nieuwe id begint het meten niet opnieuw voor iemand die het heeft uitgezet. Wil je dat de al verstuurde metingen ook worden verwijderd, vraag het ons: paragraaf 11.
6a. Crashrapporten — een aparte toestemming, uit tenzij je hem verleent
Stopt de app met werken, dan kan hij ons een rapport over die storing sturen. Dit hoort niet bij het meten uit paragraaf 6: het heeft een ander doel, een andere ontvanger, en een eigen schakelaar. Het wordt op een eigen kaart gezet, vlak vóór de meetvraag, en apart beantwoord — een ja op de een is geen ja op de ander, in geen van beide richtingen. Die kaart werkt zoals de kaart over het meten: twee antwoorden, geen derde uitweg, en er wordt niets vastgelegd zolang je er geen geeft.
Het staat uit tenzij je het aanzet. Tot dan wordt er niets voor geïnstalleerd en wordt er niets verstuurd — op die regel bestaat geen enkele uitzondering. Waarop wél uitzonderingen bestaan is opslag, en daarvan staan er hieronder twee. Beide bestaan om je de vraag te kunnen stellen en niet om iets te verzamelen, beide gaan over een crash die jou al is overkomen, en geen van beide stuurt iets voordat je antwoordt.
De eerste is een start die mislukt. Kan Whisprompt helemaal niet starten, dan is er geen later moment om de vraag te stellen, dus stelt het foutscherm hem daar. Heb je crashrapporten al aangezet, dan wordt er één rapport over die storing verstuurd en zegt het scherm je dat het is gebeurd. Heb je ze al uitgezet, dan wordt er niets aangeboden en wordt er niets verstuurd. Is de vraag je nooit gesteld, dan vraagt het scherm het — dit ene rapport versturen, niet versturen, of ze vanaf nu versturen — en er verlaat niets het apparaat tot jij kiest. Een rapport dat zo wordt verstuurd is kleiner dan het rapport dat hieronder wordt beschreven: het draagt geen enkele id, en het zegt waar de app is gestopt, welke versie van de app het was en welk besturingssysteem dit is — verder niets over het apparaat, geen interfacetaal, en geen van de stappen die eraan voorafgingen. Het gaat naar Sentry, dezelfde verwerker en dezelfde Europese servers, en wat hieronder staat over het internetadres waar een rapport vandaan komt geldt ook hiervoor. Kiezen om ze vanaf nu te versturen is hetzelfde antwoord als de schakelaar in de instellingen, en het wordt op dezelfde plek weer uitgezet. Hetzelfde scherm, met dezelfde drie antwoorden, verschijnt ook wanneer één onderdeel van de app omvalt terwijl hij draait in plaats van bij het starten. Dit geldt alleen voor de app op telefoon en tablet: de apps voor Mac en televisie hebben zo’n scherm niet.
De tweede is een crash waarover we je op dat moment niets konden vragen — omdat de app weg was voordat je kon antwoorden, of omdat je hem hebt gesloten in plaats van te antwoorden. Is de vraag je nooit gesteld, dan wordt er één rapport erover op je apparaat bewaard, en de volgende keer dat de app netjes start zegt hij dat onderaan het scherm en biedt hij je de vraag aan. Het is één rapport en geen wachtrij; een tweede crash vervangt het niet. Er wordt niets over verstuurd tenzij je daar ja zegt. Het wordt verwijderd zodra je antwoordt, wat je ook antwoordt, zodra je die melding opdraagt het te verwijderen, zodra crashrapporten worden uitgezet, en in elk geval zeven dagen nadat het is bewaard. Dat bestand is het enige wat er voor crashrapportage op je apparaat wordt opgeslagen voordat je ergens mee hebt ingestemd, en we noemen het liever dan dat we de alinea hierboven laten suggereren dat er niets staat: het bestaat zodat de vraag überhaupt gesteld kan worden. De crashes die het terughaalt zijn de crashes die we anders nooit zouden zien — de eerste starts van een gloednieuwe installatie, en dat zijn de ergste crashes die er bestaan en ze overkwamen precies de mensen die de vraag nog nooit had bereikt. Wat het niet terughaalt is een crash die het besturingssysteem zelf afhandelt, onder de app: daarvoor moet de rapportage nog steeds vooraf aan hebben gestaan.
- Wat er in een rapport staat. Waar de app is gestopt — het technische spoor van de storing — wat voor apparaat het is, het besturingssysteem en zijn versie, de versie van de app, de interfacetaal, en een korte lijst van wat de app daarvoor deed: geopende schermen, waarschuwingen over weinig geheugen, de app die naar de achtergrond gaat.
- En, als de storing in de teleprompter zat, wat de teleprompter aan het doen was. Een herkenner die het begeeft doet dat aan het eind van een keten van gebeurtenissen, en één regel die zegt dat hij is gestopt is niet genoeg om het te repareren — daarom draagt een rapport over een leessessie een korte tijdlijn van die sessie mee: de spraakmotor die start en stopt en waarom, de taal van de alinea waar je was aanbeland, overgangen van de ene taal naar de andere en of die lukten, of de herkenning op het apparaat draaide of via de servers van het platform, hoe lang het duurde voordat hij zijn eerste woorden teruggaf, wanneer de stemvolging je plek kwijtraakte en wanneer hij die weer vond, het scherm dat wisselt tussen wachten, luisteren, pauze en gestopt, hoe ver een taalmodel was gedownload als er een aan het downloaden was, en het moment waarop de storing werd vastgesteld. Het draagt ook de VORM mee van wat je aan het lezen was en waar je daarin zat — hoeveel woorden en alinea’s de tekst had, hoeveel talen die door elkaar gebruikte, bij welk woordnummer je was aanbeland, en de momenten waarop je de tekst zelf ter hand nam met een terugspoeling of een sleep. Die maken dat de rest van de tijdlijn ergens op slaat: een positie zonder lengte om hem tegen af te meten zegt niets, en een sprong die de herkenner niet heeft veroorzaakt leest als een fout, tenzij het rapport zegt dat een hand hem heeft gemaakt. Elke regel is een aantal, een code, een taalcode of een tijdsduur. Eén getal reist er daarnaast mee: hoeveel geheugen de app zelf op dat moment gebruikte, in hele megabytes — het is een aannemelijke oorzaak van de storing en er is geen andere manier om het te zien, en het zegt niets over jou en niets over wat er verder op je apparaat staat. Nooit een woord van de tekst — niet de titel, niet één regel ervan, niet wat de herkenner dacht te horen, en geen naam van jou of van je apparaten. De tijden erin worden gegeven als afstanden — “vier seconden vóór de storing” — en niet als kloktijden, want een kloktijd draagt een tijdzone mee en een tijdzone is een grove locatie.
- Wat eruit wordt gehaald voordat het wordt verstuurd. Een crashrapport wordt samengesteld door de rapportagecomponent en niet door ons geschreven, dus halen we het uit elkaar en strippen we het: bestandsnamen en paden, webadressen voorbij de naam van de dienst, e-mailadressen, netwerkadressen, de naam van je apparaat en je tijdzone. Er wordt nooit een schermafbeelding of een kopie van het scherm bijgevoegd — jouw tekst is wat er op dat scherm staat — en geen enkel rapport draagt een id van jou die wij bewaren. Wat overblijft is een stack trace, het soort storing, en wat voor apparaat het is.
- Het ene wat onze app er niet uit kan halen. Sentry leidt uit het internetadres waar een rapport vandaan komt een globale locatie af — land en stad. Dat gebeurt aan hun kant, na alles wat onze app nog kan bewerken, dus anders dan bij de meting hierboven is er voor ons geen manier om dat per rapport uit te zetten. Twee instellingen op het project gaan erover: de ene voorkomt dat het adres zelf wordt bewaard, de andere verwijdert de locatie die eruit is afgeleid. De eerste staat aan. Waar de tweede dat niet doet, blijven het land en de stad bij het rapport zolang het rapport bewaard blijft, en dat is hoogstens 90 dagen. We noemen het hier, in plaats van de zin hierboven te laten suggereren dat we iets hadden verwijderd wat we niet hadden verwijderd.
- De id. Rapporten van één installatie dragen een willekeurige id die de rapportagecomponent voor zichzelf maakt, zodat tien crashes van één apparaat als één apparaat herkend kunnen worden en niet als tien. Het is niet de id die de metingen gebruiken, en niet de id die je abonnement gebruikt.
- Wie het verwerkt. Sentry, onze verwerker, op zijn Europese servers.
- Hoe je je toestemming intrekt, en wat er dan gebeurt. Instellingen → Crashrapporten → zet de schakelaar uit. Het rapporteren stopt, en wat nog op verzending stond wordt van het apparaat verwijderd. Je antwoord op deze vraag reist zoals je antwoord over het meten: een apparaat dat je koppelt en waarop de vraag nooit is gesteld neemt het antwoord over dat je al gaf en vertelt je dat het dat heeft gedaan, een apparaat dat zelf heeft geantwoord houdt zijn eigen antwoord, en het uitzetten van het rapporteren bereikt je gekoppelde apparaten ook waar die al hebben geantwoord. Waar dit juridisch op rust, en wat intrekken wel en niet ongedaan maakt, staat in paragraaf 9.
We zetten de sleutel van een verwerker niet in een release voordat de verwerkersovereenkomst met die verwerker van kracht is. Wat Sentry naast de rapporten van mensen bewaart, zijn de testrapporten die we zelf vanaf een ontwikkelmachine hebben gestuurd, om te controleren of namen, paden en adressen er werkelijk uit worden gehaald. Die zijn van ons, niet van jou, en we verwijderen ze.
6b. Wat je ons zelf stuurt
De app heeft een scherm “Feedback sturen”. Niets daarop bereikt ons voordat je op versturen tikt, en wat ons dan bereikt is wat je hebt geschreven, plus die van de optionele dingen die je zelf hebt toegevoegd. Het is geen meting en het is geen crashrapport: jij schrijft het, jij bepaalt wat er meegaat, en het wordt gebruikt om je te antwoorden en om te repareren waarover je ons hebt geschreven.
Heb je eenmaal iets gestuurd, dan informeert de app ernaar. Zolang een van je berichten nog openstaat — wacht om gelezen te worden, er wordt aan gewerkt, of wacht op je antwoord op een vraag die we hebben gesteld — of in de afgelopen dertig dagen is gesloten, vraagt de app onze server hoe het ervoor staat, samen met de korte notitie die we er eventueel bij hebben geschreven: bij het starten van de app, wanneer je ernaar terugkeert en eenmaal per uur zolang die openstaat, maar nooit vaker dan eenmaal per vijftien minuten. Wanneer je Mijn berichten opent en nadat je daar details hebt toegevoegd, vraagt ze hetzelfde over elk bericht dat vanaf dit apparaat is verstuurd, ook als het klaar is of niet gepland staat. Die vraag draagt niets anders mee dan de identificaties die de app bij het versturen voor je eigen berichten heeft bewaard: er wordt niets nieuws over je verzameld, en het is het enige hier dat gebeurt zonder dat jij op versturen tikt. De antwoorden worden op je apparaat bewaard, zodat het scherm ook zonder verbinding leesbaar blijft, en ze verdwijnen als de app verdwijnt. Vragen we je om details, dan wordt wat je terugschrijft als een nieuw bericht verstuurd, onder dezelfde regels en met dezelfde dingen erbij als elk ander bericht.
Wat er altijd met een bericht meegaat, omdat een melding die we niet kunnen plaatsen een melding is waar we niets mee kunnen: de versie en het buildnummer van de app, het besturingssysteem en zijn versie, het model van het apparaat, de taal en de regio waarop het apparaat is ingesteld (es_ES is bijvoorbeeld Spaans zoals gebruikt in Spanje), en de taal waarin de app zelf wordt getoond. Hetzelfde geldt voor de willekeurige abonnements-id uit paragraaf 4, telkens als dit apparaat er een heeft — wat het geval is vanaf de eerste aankoop die erop is gedaan, of vanaf het koppelen aan een apparaat dat er een heeft gedaan — voor de ene controle die hieronder wordt beschreven, waarna onze server hem niet bewaart. Het scherm noemt elk hiervan voordat je verstuurt, zodat je al bij het schrijven weet wat je verstuurt.
Wat alleen meegaat als je het zelf toevoegt. Bestanden — maximaal drie, schermafbeeldingen of een korte schermopname, door jou uitgekozen uit je eigen bibliotheek; we krijgen wat je bijvoegt en niets wat je niet hebt bijgevoegd. Een adres om op te antwoorden, als je een antwoord wilt; zonder adres lezen we nog steeds elk woord, en dan hebben we geen enkele manier om te weten wie het schreef. En de meet-id uit paragraaf 6, achter een schakelaar die alleen verschijnt als er een is om bij te voegen: die is wat ons laat zien hoe de app zich gedroeg voordat je schreef.
Het ene wat we zelf uitzoeken is of het bericht van een abonnee kwam, zodat het als eerste beantwoord kan worden. Je apparaat stuurt de willekeurige abonnements-id uit paragraaf 4, onze server vraagt RevenueCat of die recht geeft, en schrijft dat antwoord op — ja of nee — en nooit de id zelf. Zo verbindt niets wat je hebt gezegd met wat je hebt gekocht.
Berichten worden voor ons bewaard door Cloudflare, op servers in West-Europa: de tekst in een database, de bestanden in objectopslag, allebei onder de referentiecode die de app je laat zien zodra hij heeft verstuurd. Ze worden twee jaar bewaard en dan vanzelf verwijderd, en eerder als je erom vraagt — noem die code, of zeg ons iets anders waarmee we het bericht kunnen vinden. Wij lezen ze, en dat doet ook het model dat hierna wordt beschreven; ze worden nergens anders voor gebruikt: niet om te meten, niet om te profileren, niet om de AI van wie dan ook te trainen, en niet om iets over jou te beslissen.
De eerste lezer is een machine, en niet een van ons. Elk nieuw bericht wordt eerst gelezen door een AI-model — Claude, gemaakt door Anthropic — waaraan we één taak hebben gegeven: uitzoeken waar het bericht over gaat, hoe belangrijk het is en waar het in de app thuishoort, en een antwoord opstellen dat we misschien geven. Het beslist niets wat jij te zien krijgt. Een status en een notitie op je scherm “Mijn berichten”, een e-mail aan jou, een melding in ons meldingenregister: elk daarvan gebeurt alleen op ons woord, nadat een van ons heeft gelezen wat het voorstelt. Om dat werk te doen, verwerken vier diensten naast Cloudflare wat je hebt gestuurd, of een deel ervan:
- Anthropic, in de Verenigde Staten, draait het model en ontvangt elk bericht in zijn geheel: wat je hebt geschreven, het antwoordadres als je er een hebt opgegeven, alles hierboven dat altijd met een bericht meegaat, of het van een abonnee kwam, de meet-id als je die hebt bijgevoegd, en elk bestand dat je hebt bijgevoegd — het model opent en bekijkt ze allemaal. De abonnements-id zelf bereikt het nooit. Wat het model heeft gelezen, blijft in het verslag van die aanroep, in ons account bij Anthropic, en dat account is zo ingesteld dat Anthropic het niet gebruikt om zijn modellen te trainen.
- Telegram, een bedrijf gevestigd buiten de Europese Economische Ruimte, brengt ons de samenvatting van het model, en brengt onze instructies terug. Voor elk bericht geeft de samenvatting de referentiecode, om wat voor soort melding het gaat, het apparaat, de app-versie en de taal, een regel of twee over wat je hebt geschreven, die je mogelijk citeert, een regel die een bijgevoegde afbeelding beschrijft, en het antwoord dat het model voorstelt. Nooit je e-mailadres, en nooit de bestanden zelf.
- Google, wiens servers in de Verenigde Staten en elders staan, brengt ons antwoord over als we je per e-mail antwoorden: het verlaat onze Gmail-mailbox naar het adres dat je hebt opgegeven, met de referentiecode in het onderwerp, en de briefwisseling blijft in die mailbox.
- GitHub, in de Verenigde Staten, houdt ons meldingenregister bij, dat privé is. Als wat je hebt gemeld daar een melding wordt, draagt die melding de referentiecode, het apparaat en de app-versie, en het probleem beschreven in onze eigen woorden — nooit je e-mailadres.
Deze vier horen niet bij onze verwerkers uit paragraaf 10: we gebruiken elk van hen onder zijn eigen voorwaarden, zoals elke gebruiker ervan, en geen verwerkersovereenkomst bindt hen aan ons. Ook het nachtelijke verwijderen bereikt hen niet. Dat dekt onze database en onze bestandsopslag bij Cloudflare — waar ook elke samenvatting die naar Telegram is gestuurd wordt bewaard, twee jaar vanaf de dag dat ze werd verstuurd — en niets daarbuiten. Wat de vier bewaren blijft daar tot wij het daar met de hand verwijderen, en wanneer je ons vraagt je bericht te verwijderen, doen we dat: op alle vier de plekken, en in die samenvattingen. Elke kopie draagt de referentiecode; daaraan vinden we hem. Zodra we een aanroep uit ons account hebben verwijderd, geven de voorwaarden van Anthropic het 30 dagen om die ook uit zijn eigen systemen te wissen.
Eén ding om te weten voordat je een afbeelding bijvoegt: een schermafbeelding bevat alles wat er op het scherm stond toen je hem maakte, en daar kan een tekst bij zitten die je aan het lezen was. Voeg alleen bij wat je ons zou willen laten bewaren, dan verwijderen wij wat we niet nodig hebben.
Een taal aanvragen. Waar de app een taal toont die hij nog niet spreekt, kun je ons vragen die toe te voegen. Tikken op “Aanvragen” stuurt onze server twee dingen en niets meer: de code van de taal, en een willekeurige sleutel die deze installatie de eerste keer dat je het vraagt aanmaakt. Die sleutel is er zodat een verzoek dat door een slechte verbinding twee keer wordt verstuurd niet wordt geteld als twee installaties die dezelfde taal willen. Het verzoek gaat door, of je de meting in paragraaf 6 nu wel of niet hebt toegestaan, want het is iets waar je ons zelf om hebt gevraagd, niet iets wat wij hebben gemeten. Het wordt bewaard bij Cloudflare in West-Europa, naast de berichten, twee jaar vanaf de dag dat het binnenkomt, en wordt daarna automatisch verwijderd; niemand behalve wij leest het, en het gaat nergens anders heen. De sleutel wordt nergens getoond, zelfs niet aan jou, en niets wat we ernaast bewaren zegt van wie hij is — wat ook de reden is waarom we die van jou niet kunnen uitpikken om hem eerder te verwijderen. Op je apparaat blijft de sleutel staan tot je het apparaat wist of de app verwijdert.
6c. Vragen die je de AI-hulp stelt
De zoekfunctie bovenaan Instellingen kan een vraag doorgeven aan de AI-hulp. Er wordt niets verzonden totdat je op “AI vragen” tikt, en dan alleen dit: de woorden die je hebt getypt, de taal van de app, de instellingen die de eigen zoekfunctie van de app bij die woorden heeft gevonden, en een willekeurig getal dat de app voor deze installatie aanmaakt. Nooit je teksten, je opnames of iets anders op het apparaat.
De vraag wordt beantwoord op onze server bij Cloudflare, door een open AI-model dat put uit de handleiding van de app zelf. Cloudflare gebruikt wat het ontvangt niet om modellen te trainen, en wij slaan de vraag noch het antwoord op: beide bestaan alleen terwijl het antwoord wordt geschreven. Het antwoord krijg je te zien met een label dat het van een AI komt, omdat het onjuist kan zijn.
Om misbruik tegen te gaan, houdt de server onder dat willekeurige getal tellers bij — hoe vaak het apparaat in de afgelopen minuut een vraag heeft gesteld, en hoe vaak het in het afgelopen uur iets heeft gevraagd wat niet over Whisprompt gaat — en als dat zich blijft herhalen, pauzeert de server de AI-hulp voor dat apparaat: eerst een minuut, daarna telkens twee keer zo lang, maar nooit langer dan een dag. Wat er gevraagd is, wordt nooit vastgelegd. Die tellers worden een uur na de laatste vraag van dit soort verwijderd, of een dag na de laatste pauze. De server telt ook de vragen die van één internetadres (IP) komen, zodat één plek de hulp die voor iedereen bedoeld is niet kan opmaken: boven een vastgesteld aantal per uur of per dag moet dat adres wachten. Het adres zelf wordt nooit opgeslagen — alleen een onomkeerbare, door elkaar gehusselde versie ervan (een hash), die elke dag verandert — en deze tellers worden een dag na de laatste vraag verwijderd. Een pauze beslist niets over jou; ze gaat alleen over de AI-hulp op dat apparaat. Dit rust op jouw toestemming (art. 6, lid 1, onder a, AVG), die je geeft elke keer dat je op “AI vragen” tikt.
7. Een apparaat wissen voordat het je handen verlaat
In de instellingen van de app staat een knop “Dit apparaat wissen”, onder “Gebruiksgegevens”. Dat is de knop om te gebruiken voordat je een apparaat verkoopt, terugstuurt, inruilt of doorgeeft, en de Voorwaarden vragen je dat te doen.
Het haalt van dat apparaat af: je teksten, je opnames, de spraakmodellen die je hebt gedownload, de verbindingen die je hebt verleend aan diensten zoals Notion, de meet-id, en elk privacyantwoord dat je erop hebt gegeven. Het haalt het apparaat ook uit je gekoppelde apparaten, zodat het je bibliotheek niet meer spiegelt en je abonnement niet meer deelt. Op je andere apparaten blijft alles staan.
Je abonnement blijft ongemoeid. Dat hoort bij je App Store- of Google Play-account en wordt hersteld op je volgende apparaat.
Twee grenzen, in gewone woorden gezegd. Is het apparaat offline wanneer je het wist, dan wordt het lokaal wissen wel voltooid, maar krijgen je andere apparaten het niet te horen; de app zegt dat, en je kunt het op elk van die apparaten uit de apparatenlijst verwijderen. En metingen die vóór het wissen al zijn verstuurd worden er niet mee teruggehaald — gebruik daarvoor het verwijderverzoek in paragraaf 11.
8. Wat we NIET verzamelen
- Geen advertentie-id’s en geen advertentie-SDK’s van derden.
- Geen analytics en geen tracking op deze website. In de app helemaal niets, tenzij je ermee hebt ingestemd, en dan de meting die in paragraaf 6 wordt beschreven en niets daarbuiten: geen advertenties, geen profilering, en geen volgen van jou over de apps of sites van andere bedrijven.
- Geen crashrapportage tenzij je die zelf aanzet, en niets in een rapport wat jou identificeert — zie paragraaf 6a.
- Geen verkopen of delen van persoonsgegevens in de zin van de AVG.
Deze website plaatst geen cookies. Hij bewaart twee voorkeuren in je browser: het thema, dat je instelt met de zon-en-maanknop in de kop, en de taal, zodat whisprompt.app de volgende keer opent in de taal waarin je het laatst las. Beide zijn alleen door deze site te lezen, geen van beide identificeert je, geen van beide wordt naar ons of naar iemand anders gestuurd, en de gegevens van deze site wissen in je browser haalt ze weg. De site wordt geserveerd door Cloudflare, dat het adres ziet waarmee je verbinding maakt, zoals elke webserver dat doet, en daar alleen het land uit afleidt dat wordt gebruikt om de prijs voor jouw store te tonen.
9. Rechtsgrondslagen (AVG art. 6)
Het verwerken van je audio en je teksten om de teleprompter te laten draaien gebeurt om de functionaliteit te leveren die jij vraagt (art. 6, lid 1, onder b, uitvoering van een overeenkomst / je verzoek). Optionele gekoppelde bronnen, abonnementsrechten en het herstellen van aankopen rusten op dezelfde grondslag. Het beschermen van de relayserver tegen misbruik rust op ons gerechtvaardigd belang (art. 6, lid 1, onder f).
Alles in paragraaf 6 rust op jouw toestemming (art. 6, lid 1, onder a): het meten zelf, en het tellen van je apparaten als één persoon onder een gedeelde id. De crashrapporten in paragraaf 6a rusten ook op jouw toestemming — een derde toestemming, die bij geen van de twee andere hoort: een crashrapporteur zet dingen op je apparaat en is niet nodig om een teleprompter te laten draaien, dus er is niets om het op te laten rusten behalve jouw ja. Alle drie worden apart gevraagd en apart ingetrokken, op elk moment; intrekken gaat net zo makkelijk als instemmen ging, en kost niet meer tikken. Intrekken werkt vanaf dat moment: het maakt niet onrechtmatig wat we deden zolang je toestemming er was, en het verwijdert uit zichzelf niet wat al was verstuurd — vraag ons daarom, en paragraaf 11 zegt hoe. Het meten en de crashrapporten worden beantwoord voor een persoon en niet voor een toestel: het antwoord dat je geeft vult zichzelf in op een apparaat dat je koppelt en waar de vraag nog niet is gesteld — dat je dan vertelt dat het het heeft overgenomen — en het verdringt nooit een antwoord dat op een apparaat al is gegeven. Het tellen wordt om een verwante reden één keer gevraagd, omdat het een feit is over een groep apparaten en niet over één ervan, en een ja erop wordt naar de andere apparaten op hetzelfde abonnement gedragen. Een intrekking reist verder dan alle drie: die bereikt je apparaten ook waar ze al hebben geantwoord, want bezwaar wordt gemaakt door een mens, en tussen één apparaat te veel bereiken en er één tegen iemands zin laten doormeten, kiezen wij het eerste. We vragen het in plaats van het aan te nemen, en de reden is het waard om gewoon uit te spreken: een app meten door een id op je apparaat te bewaren zou alleen zonder vragen kunnen als onze meetleverancier schriftelijk had toegezegd de gegevens nooit voor eigen doelen te hergebruiken, en het onmogelijk had gemaakt om in zijn eigen tool naar één enkele persoon te kijken. We hebben hem om geen van beide gevraagd, dus vragen we het jou.
Wat we met de metingen doen, noemen we liever bij naam dan dat we het in het abstracte beschrijven: Whisprompt volgt je stem door een tekst in alle ondersteunde talen, hoe goed dat volgen gaat verschilt van taal tot taal, en de enige manier waarop we erachter komen dat een taal slecht wordt gevolgd is tellen hoe vaak mensen de tekst zelf ter hand moesten nemen — per taal, over genoeg installaties om het getal iets te laten betekenen. De metingen rond het abonnementsscherm beantwoorden een kleinere vraag: op welke vergrendelde functie mensen echt worden tegengehouden. Hoe dan ook dragen de metingen niets mee van wat je hebt geschreven of gezegd, wordt het adres waar ze vandaan komen niet in een locatie omgezet, wordt de id na dertien maanden vervangen, en wordt er niets gecombineerd met gegevens van elders of gebruikt om beslissingen over jou te nemen.
Niets hiervan wordt van je verlangd. Geen wet verplicht je ons iets ervan te geven, en niets van wat we verkopen hangt ervan af: de app installeert, de teleprompter draait, en een abonnement wordt gekocht en hersteld zonder account. Eén functie hangt van één toestemming af — je stem volgen kan niet zonder de microfoon — en die weigeren laat de teleprompter uit zichzelf scrollen, en dat is een volwaardige stand en geen noodoplossing. De metingen in paragraaf 6 en de crashrapporten in paragraaf 6a zijn nergens voor nodig: weiger er een of allebei en de app gedraagt zich precies zoals hij anders ook zou doen. De gevolgen van weigeren komen bij ons terecht en niet bij jou — wij hebben die meting dan simpelweg niet.
We nemen geen besluiten over jou langs geautomatiseerde weg, en we bouwen geen profielen. Niets van wat hier staat beoordeelt je, voorspelt iets over je of deelt je bij een groep in, en niets hier heeft rechtsgevolgen voor je of iets wat daarmee vergelijkbaar is. Twee dingen worden door een machine beslist, en beide gaan over apparatuur en niet over jou: de relayserver wijst verzoeken af die te snel binnenkomen, en hij voegt geen zevende apparaat toe aan een abonnement dat er al zes dekt. Geen van beide weegt iets over jou mee — het ene telt verzoeken, het andere telt apparaten. Het model dat je berichten als eerste leest (paragraaf 6b) sorteert ze — waar elk over gaat, en hoe dringend het lijkt — maar het beslist niets over jou: wat je er ook van bereikt, is beslist door een van ons.
Wat je ons zelf stuurt — een bericht vanaf het feedbackscherm of een verzoek voor een taal (allebei in paragraaf 6b), of wat je ons ook per e-mail besluit te sturen — rust op jouw toestemming (art. 6, lid 1, onder a). Er wordt niets verzameld voordat jij het verstuurt, en wat er met een bericht meegaat is jouw keuze terwijl je schrijft. Je antwoorden, repareren wat je hebt gemeld en bijhouden welke talen mensen aanvragen, is precies waar diezelfde daad om vroeg.
10. Verwerkers, en doorgiften buiten de EER
Elke verwerker die hier wordt genoemd is aan ons gebonden door een schriftelijke verwerkersovereenkomst die hem verplicht je gegevens te beschermen op het niveau dat dit beleid stelt, ze alleen op onze instructie te verwerken en alleen voor het hier genoemde doel, en nooit voor zijn eigen doelen. Onze verwerkers — RevenueCat (abonnementen), Cloudflare (de relayserver, de berichten die je vanaf het feedbackscherm stuurt en de vragen die je aan de AI-hulp stelt), Amplitude (gebruiksgegevens) en Sentry (crashrapporten) — kunnen gegevens verwerken buiten de Europese Economische Ruimte, waaronder in de Verenigde Staten. Amplitude ontvangt de metingen op zijn Europese endpoint en Sentry bewaart crashrapporten in zijn Europese regio, maar beide bedrijven zijn Amerikaans, dus rusten die doorgiften evengoed op de bepalingen hieronder. Elke doorgifte gebeurt onder de EU Standard Contractual Clauses, opgenomen in de verwerkersovereenkomst die we met elk van deze verwerkers hebben: het addendum van Amplitude maakt deel uit van zijn servicevoorwaarden en draagt de bepalingen van 2021, en het verwerkingsaddendum van Sentry draagt dezelfde bepalingen samen met het Britse addendum. Wil je een kopie van de bepalingen waarop een van deze doorgiften rust, schrijf dan naar support@whisprompt.app en noem de verwerker waarnaar je vraagt; we sturen je de bepalingen die voor hem gelden. (Wat Amplitude naast jouw metingen bewaart, zijn de testgebeurtenissen die we onszelf vanaf onze eigen apparaten hebben gestuurd, om te controleren dat het adres waar een meting vandaan komt niet in een locatie wordt omgezet. Die zijn van ons, niet van jou, en we verwijderen ze.) De afspraken en bepalingen hierboven gelden voor deze verwerkers en voor niemand anders. De vier diensten die paragraaf 6b noemt als lezers, dragers of bewaarders van wat je vanaf het feedbackscherm stuurt — Anthropic, Telegram, Google en GitHub — zijn geen verwerkers van ons: elk is gevestigd buiten de Europese Economische Ruimte of bewaart wat hij ontvangt daarbuiten, en elk behandelt het onder zijn eigen voorwaarden. Geen van onze verwerkers heeft een naam van jou, en maar één ervan kan een e-mailadres hebben: geef je er een op het feedbackscherm zodat we kunnen antwoorden, dan zit dat in je bericht bij Cloudflare tot dat bericht wordt verwijderd. Verder bewaren ze een willekeurige abonnements-id, id’s per apparaat, de id die de metingen dragen, de naam die elk apparaat van zichzelf doorgeeft, en technische verbindingsgegevens. Daarbuiten leest het model bij Anthropic dat adres samen met de rest van je bericht, en als we je per e-mail antwoorden, staat het ook in onze Gmail-mailbox — paragraaf 6b zegt hoelang.
11. Je rechten
Onder de AVG heb je recht op inzage, rectificatie, wissing, beperking en overdraagbaarheid van je gegevens, en het recht om bezwaar te maken tegen verwerking. We hebben geen naam en geen e-mailadres van jou: Whisprompt heeft geen accounts, en een adres dat je ons met een bericht geeft, blijft bij dat bericht (paragraaf 6b). Eén record bewaren we wel op onze eigen server: gebruik je Whisprompt Pro op meerdere van je apparaten, dan houden we een lijst van die apparaten bij — een id die de app voor elk ervan aanmaakt, de naam die elk apparaat van zichzelf doorgeeft, en wanneer het is toegevoegd en voor het laatst is gezien — onder een willekeurige abonnements-id. Dat record kun je op elk moment vanuit de app verwijderen (Instellingen → Gegevens op onze servers), en al het andere blijft op je apparaat staan: teksten, modellen en de app zelf kun je verwijderen wanneer je maar wilt. Wil je je toestemming voor de gebruiksmetingen intrekken, zet ze dan uit (Instellingen → Gebruiksgegevens) of schrijf ons — paragraaf 6 beschrijft allebei, en elk van beide stopt het verzamelen en wist de id van het apparaat. Wil je dat de al verstuurde metingen ook worden verwijderd, vraag het ons en we verwijderen ze: ze staan onder die ene willekeurige id en onder geen enkele naam van jou. Je abonnementsrecord verwijderen raakt ze niet, en het meten uitzetten raakt dat record niet, want de twee worden met opzet onder verschillende id’s bewaard: vraag ons om wat je weg wilt hebben, of om allebei. Heb je ons vanaf het feedbackscherm geschreven en wil je dat dat bericht en zijn bijlagen verdwijnen, noem dan de referentiecode die de app je heeft laten zien — met die code vinden we het, en ook de kopieën ervan die paragraaf 6b beschrijft, en er is geen naam van jou bij opgeslagen om het aan op te zoeken. Mail voor elk verzoek naar support@whisprompt.app. Je hebt ook het recht een klacht in te dienen bij een toezichthoudende autoriteit — die van de plek waar je woont, die van de plek waar je werkt, of die van de plek waar volgens jou iets is misgegaan. De onze is de Agencia Española de Protección de Datos in Spanje (aepd.es).
12. Bewaartermijnen
Lokale gegevens blijven staan tot je ze verwijdert of de app verwijdert. Abonnementsgegevens verdwijnen samen met je klantprofiel bij RevenueCat, al kunnen geanonimiseerde transactierecords door RevenueCat en de appstore worden bewaard voor de boekhouding. Ruimtes op de relayserver leven hoogstens vier uur, de verbindingsbrievenbus tot 30 dagen, en de lijst van apparaten op je abonnement tot er een jaar voorbij is waarin geen van die apparaten hem heeft gebruikt — of tot je hem vanuit de app verwijdert. Gebruiksmetingen hebben geen vervaldatum; wat bepaalt hoe lang ze bewaard blijven is waar ze voor zijn. Ze blijven zolang ze de vraag nog kunnen beantwoorden waarvoor ze zijn verzameld — of de versie van de app die mensen nu draaien zich gedraagt zoals wij denken dat hij zich gedraagt — en ze worden verwijderd zodra ze dat niet meer kunnen, of eerder als je ons vraagt die van jou te verwijderen. Er wordt niets bewaard op de kans dat het later van pas komt. De id waaronder die metingen staan loopt op een eigen klok, en een korte: hij wordt uiterlijk dertien maanden na zijn aanmaak vervangen, geteld vanaf de dag dat hij is gemaakt en niet verlengd door gebruik, zodat geen enkele registratie onder één id langer kan lopen dan dat. Crashrapporten worden bij Sentry niet langer dan 90 dagen bewaard. Een bericht dat vanaf het feedbackscherm is verstuurd, met alles wat eraan hangt, wordt twee jaar bewaard vanaf de dag dat het binnenkomt en daarna vanzelf verwijderd — dat verwijderen doet het systeem dat het bewaart, elke nacht, en niet iemand die eraan denkt; vraag het ons en dat van jou gaat eerder weg. Dat verwijderen bereikt niet de kopieën die paragraaf 6b beschrijft bij Anthropic, Telegram, Google en GitHub: die blijven staan tot wij ze met de hand verwijderen, wat we doen zodra je het vraagt. E-mails aan support worden alleen bewaard zolang dat nodig is om je vraag af te handelen. Een verzoek voor een taal wordt twee jaar bewaard vanaf de dag dat het binnenkomt en wordt daarna verwijderd door dezelfde nachtelijke ronde.
13. Kinderen
Whisprompt richt zich niet op kinderen onder de 16 en verwerkt hun gegevens niet bewust.
14. Wijzigingen
We werken deze pagina bij wanneer onze werkwijze verandert, en passen de datum hierboven aan. Waar het aan ons is om het moment te kiezen, wordt de pagina bijgewerkt vóór de release die de verandering brengt, niet erna.