Tietosuojaseloste
Voimaantulopäivä: 19. lokakuuta 2025
Viimeksi päivitetty: 19. lokakuuta 2025
Johdanto
Satunissa otamme sinun ja lastesi yksityisyyden vakavasti. Tämä tietosuojaseloste selittää, miten keräämme, käytämme, jaamme ja suojaamme henkilötietojasi, kun käytät tekoälypohjaista personoitua lastentarinoiden luomispalveluamme osoitteessa app.satuni.ai.
Palveluntarjoajan tiedot
Satuni
Veikko Laitinen
hello@satuni.ai
Oivaltajantie 10, 60100 Seinäjoki
Tietosuojavastaava: Veikko Laitinen, veikko@satuni.ai, +358 40 7193838
Sovellettava lainsäädäntö
Tämä tietosuojaseloste noudattaa: EU:n yleistä tietosuoja-asetusta (GDPR), Suomen tietosuojalakia, Suomen kuluttajansuojalakia.
Kerättävät tiedot
Keräämme seuraavat henkilötietokategoriat:
1. Käyttäjätilin tiedot
Data collected: Autentikointi hoidetaan Clerk-palvelun (https://clerk.com) kautta. Keräämme: Sähköpostiosoite (pakollinen), Nimi (valinnainen, mutta suositeltu), Salasana (hashattu, ei koskaan tallennettu selkokielisenä), Profiilikuva (valinnainen), Tilin luomisen aikaleima, Viimeisin kirjautuminen, IP-osoite (kirjautumishistoriaa varten), Käyttölaite ja selain (teknistä tukea varten).
Purpose: Käyttäjän tunnistaminen ja autentikointi, Tilin turvallisuus (salasanan palauttaminen, epäilyttävän toiminnan havaitseminen), Yhteydenotto tarvittaessa (ilmoitukset, tuki).
Retention: Niin kauan kuin tilisi on aktiivinen. Voit poistaa tilisi milloin tahansa.
Third parties: Clerk (https://clerk.com) - Autentikointipalvelun tarjoaja. Tietojen käsittely: EU/US (katso Clerkin tietosuojaseloste). Privacy Shield / Standard Contractual Clauses.
2. Organisaatiotiedot (perheet)
Data collected: Keräämme: Clerk Organization ID (automaattisesti generoitu), Perheen nimi, Perheen kuvaus (valinnainen), Luomisen aikaleima, Jäsenyyssuhteet (kuka kuuluu mihinkin perheeseen).
Purpose: Perhekohtaisen sisällön ryhmittely, Pääsyhallinnan mahdollistaminen (vain perheen jäsenet näkevät sisällön).
Retention: Niin kauan kuin perhe on olemassa. Perheen omistaja voi poistaa perheen milloin tahansa.
3. Perheenjäsenten tiedot
Data collected: Keräämme: Nimi (pakollinen), Kuvaus (valinnainen, esim. '6-vuotias poika, tykkää dinosauruksista'), Syntymävuosi (valinnainen), Syntymäkuukausi (valinnainen, 1-12), Sukupuoli (valinnainen: poika, tyttö, muu, en halua kertoa), Rooli perheessä (valinnainen: vanhempi, lapsi, isovanhempi, täti/setä, kummi, muu), Harrastukset (valinnainen lista), Lelut (lista: nimi, kuvaus), Kaverit (lista: nimi, kuvaus), Viitekuva (valinnainen, tallennettu Supabase Storageen), Ääniprofiili-ID (valinnainen, ElevenLabs voice ID).
LASTEN TIEDOT: Palvelu kerää tietoja lapsista (nimiä, syntymävuosia, kuvauksia, kuvia). Nämä tiedot ovat välttämättömiä palvelun toiminnalle (personoidut tarinat). Tietojen kerääminen tapahtuu vain vanhemman/huoltajan suostumuksella. Lasten tiedot eivät ole julkisia; vain perheen jäsenet näkevät ne. Lasten tietoja ei jaeta kolmansille osapuolille (paitsi tekniset kumppanit, ks. alla).
Purpose: Personoitujen tarinoiden luominen, Hahmojen visuaalinen johdonmukaisuus tarinoissa, Ääniprofiilien valitseminen.
Retention: Niin kauan kuin perhe on olemassa. Perheen omistaja voi poistaa jäsenen milloin tahansa.
Third parties: Supabase (https://supabase.com) - Kuvien tallennus. Tietojen käsittely: EU (Frankfurtin palvelinkeskus). GDPR-yhteensopiva. OpenRouter/Google Gemini - Avatar-kuvien generointi. Kuvat lähetetään AI:lle väliaikaisesti, ei tallenneta pysyvästi AI:n puolella. Katso OpenRouterin ja Googlen tietosuojaselosteet.
4. Lemmikkitiedot
Data collected: Keräämme: Eläinlaji (esim. 'koira', 'kissa'), Nimi, Kuvaus (valinnainen), Viitekuva (valinnainen, tallennettu Supabase Storageen).
Purpose: Lemmikkien sisällyttäminen tarinoihin hahmoina.
Retention: Niin kauan kuin perhe on olemassa.
5. Fiktiiviset hahmot
Data collected: Keräämme: Nimi, Kuvaus, Viitekuva (valinnainen, tallennettu Supabase Storageen).
Purpose: Fiktiivisten hahmojen lisääminen tarinoihin.
Retention: Niin kauan kuin perhe on olemassa.
6. Päiväkirjamerkinnät
Data collected: Keräämme: Päivämäärä, Vapaa tekstimuotoinen kuvaus päivän tapahtumista, 0-5 kuvaa (tallennettu Supabase Storageen), Luoneen käyttäjän ID (Clerk User ID), AI:n siistimiä versio tekstistä (valinnainen, luodaan vain käyttäjän pyynnöstä), Viite luotuun tarinaan (jos päiväkirjamerkinnästä luodaan tarina).
Purpose: Käyttäjän muistiinpanojen tallentaminen, Tarinan luomisen helpottaminen (käyttäjä voi valita päiväkirjatapahtumia tarinan pohjalle).
Retention: Niin kauan kuin perhe on olemassa. Käyttäjä voi poistaa yksittäisiä merkintöjä.
Third parties: OpenRouter/OpenAI GPT-4o - Tekstin 'siistiminen' (valinnainen toiminto). Teksti lähetetään AI:lle väliaikaisesti, ei tallenneta pysyvästi AI:n puolella.
7. Luodut tarinat
Data collected: Keräämme: Otsikko, Kieli (fi/en), Tarinatyyppi (real/fiction), Päähenkilö (viite perheenjäseneen/lemmikkiin), Sivuhahmot (viitteet perheenjäseniin/lemmikkeihin/kavereihin), Tapahtumat (3-5 käyttäjän kirjoittamaa kuvausta, jos real-tarina), Opetus/moraali (valinnainen), Aihe (jos fiction-tarina), Hahmot (snapshot-kopio hahmon tiedoista tarinan luontihetkellä), 8 kohtausta, jokainen sisältää: Otsikko, Teksti, Viitteet kohtauksessa esiintyviin hahmoihin, Kuvan generointi-prompt (englanniksi), Kuvan avain (Supabase Storage), Kansikuva (Supabase Storage), AI-generoitu ääniraita (Supabase Storage), Timing-tiedosto (JSON, Supabase Storage), Äänen kesto sekunteina, Käyttäjän nauhoittamat ääniraidat (lista): Kertojan nimi, Äänitiedosto (Supabase Storage), Äänen kesto, Nauhoituksen aikaleima, Luoneen käyttäjän ID, Suosikkimerkintä (boolean), Moderointi (isBanned, bannedReason, bannedAt), Krediittiveloitustieto (periodKey, source, chargedAt).
TARINAN SISÄLTÖ: Tarinat luodaan AI:lla käyttäjän syöttämien tietojen perusteella. Tarinoiden teksti, kuvat ja ääniraidat tallennetaan Supabase Storageen. Tarinat ovat yksityisiä; vain perheen jäsenet näkevät ne. Tarinoita ei jaeta palvelun ulkopuolelle ilman käyttäjän lupaa.
Purpose: Tarinoiden tallentaminen ja toisto, Tarinakirjaston ylläpito, Krediittien seuranta.
Retention: Niin kauan kuin käyttäjä haluaa (voi poistaa yksittäisiä tarinoita).
Third parties: OpenRouter/OpenAI GPT-4o - Tarinan tekstin generointi. OpenRouter/Google Gemini - Kuvien generointi. ElevenLabs (https://elevenlabs.io) - Äänen generointi (Text-to-Speech). Tietojen käsittely: katso ElevenLabsin tietosuojaseloste. Supabase - Kuvien ja äänien tallennus.
8. Tunnetarinat
Data collected: Keräämme: Samat kuin tavalliset tarinat, plus: Aina 2 hahmoa (protagonist + supporting), Teema (esim. 'ystävyys', 'pelko', 'uusi tilanne'), Moraali/opetus, Aina 8 kohtausta, 2 interaktiivista dialogia: Sijainti tarinassa (keskellä ja lopussa), Kohtauksen konteksti, Fokushahmo (kenen tunteista keskustellaan), Pääkysymys, Tunnevaihtoehdot (2-4 kpl, esim. 'iloinen', 'surullinen', 'peloissaan'), Syventävät kysymykset aikuiselle.
Purpose: Sosio-emotionaalisen oppimisen tukeminen, Vuorovaikutteinen tarinankerronta vanhemman ja lapsen välillä.
Retention: Sama kuin tavalliset tarinat.
9. Maksutiedot
Data collected: Keräämme (MongoDB:ssä): Tilaustyyppi (none, mini, basic, pro), Tilaustila (none, incomplete, active, past_due, canceled, unpaid), Laskutuspalveluntarjoaja (stripe), Stripe Customer ID, Stripe Subscription ID, Stripe Price ID, Stripe Product ID, Laskutusjakson alku- ja loppupäivä, Käyttöjakson avain, Käytössä olevat krediitit (storiesUsed, subscriptionCreditsLeft), Lisäkreditit (extraCredits.stories). HUOM: Varsinaiset maksukortit ja maksuhistoria tallennetaan Stripeen, ei omalle palvelimelle.
Purpose: Tilausten hallinta, Krediittien seuranta ja resetointi, Laskutuksen mahdollistaminen.
Retention: Niin kauan kuin perhe on olemassa. Stripe säilyttää maksuhistorian omien sääntöjensä mukaisesti.
Third parties: Stripe (https://stripe.com) - Maksuprosessointi. Tietojen käsittely: EU/US (katso Stripen tietosuojaseloste). PCI DSS -yhteensopiva. Stripe Customer Portal asiakkaiden tilausten hallintaan.
10. Tekninen data
Data collected: Keräämme: IP-osoite (lyhytaikainen, vain tietoturvaa varten), Käyttölaite ja selain (User-Agent), Käyttöjärjestelmä, Näytön koko (responsiivisen suunnittelun optimointiin), Kieliasetukset (fi/en), Käyttöajan leimoja (createdAt, updatedAt), Virhelokit (vain teknisten ongelmien selvittämiseen).
Purpose: Palvelun tekninen ylläpito, Tietoturvan valvonta (epäilyttävän toiminnan havaitseminen), Käyttökokemuksen parantaminen.
Retention: Tekniset lokit: enintään 90 päivää. User-Agent ja kieliasetukset: session ajan.
Third parties: Vercel Analytics (https://vercel.com) - Analytiikka. Tietojen käsittely: EU/US. Anonyymi analytiikka, ei evästeitä.
11. Lapsilukko
Data collected: Keräämme: 4-merkkinen PIN-koodi (tallennettu perheeseen MongoDB:ssä), Lapsilukko-tila (localStorage käyttäjän laitteella).
Purpose: Lasten pääsyn rajoittaminen asetuksiin ja laskutustietoihin, Vanhemman apuväline.
Retention: PIN-koodi: niin kauan kuin perhe on olemassa (voi nollata). Lapsilukko-tila: localStorage (vanhempi voi poistaa milloin tahansa). HUOM: PIN-koodi tallennetaan selkokielisenä (ei hashattu), koska se on vain käyttöliittymän suoja, ei tietoturvamekanismi.
Tietojen käsittelyn oikeusperusteet (GDPR)
Suostumus (Art. 6(1)(a) GDPR)
Käyttäjä antaa nimenomaisen suostumuksen tietojen käsittelyyn rekisteröityessään. Lasten tietojen osalta vanhempi/huoltaja antaa suostumuksen.
Sopimuksen täytäntöönpano (Art. 6(1)(b) GDPR)
Tietojen käsittely on välttämätöntä palvelun tarjoamiseksi. Ilman perheenjäsenten tietoja personoituja tarinoita ei voida luoda.
Oikeutettu etu (Art. 6(1)(f) GDPR)
Tekninen data (IP, User-Agent) kerätään tietoturvan ja palvelun kehittämisen vuoksi.
Tietojen jakaminen kolmansille osapuolille
Jaamme tietoja vain teknisille kumppaneille (data processors), jotka ovat välttämättömiä palvelun tarjoamiseksi:
Clerk (https://clerk.com)
Purpose: Käyttäjien autentikointi ja organisaatiohallinta
Location: EU/US
Protection: GDPR-yhteensopiva, Standard Contractual Clauses
MongoDB Atlas (https://www.mongodb.com)
Purpose: Tietokanta
Location: EU (Frankfurt)
Protection: GDPR-yhteensopiva
Supabase (https://supabase.com)
Purpose: Kuvien ja äänien tallennus
Location: EU (Frankfurt)
Protection: GDPR-yhteensopiva
OpenRouter (https://openrouter.ai)
Purpose: AI-mallit (tekstin ja kuvien generointi). Mallit: OpenAI GPT-4o, Google Gemini 2.5 Flash Image
Location: US
Protection: Katso OpenRouterin, OpenAI:n ja Googlen tietosuojaselosteet. HUOM: Käyttäjän syöttämät tiedot (nimiä, kuvauksia) lähetetään AI:lle tarinan luomista varten. AI-mallit eivät tallenna käyttäjän dataa pysyvästi (ks. OpenAI:n ja Googlen Data Processing Agreements).
ElevenLabs (https://elevenlabs.io)
Purpose: Text-to-Speech -äänisynteesi
Location: US/EU
Protection: Katso ElevenLabsin tietosuojaseloste. HUOM: Tarinan teksti lähetetään ElevenLabsille äänen generointia varten.
Stripe (https://stripe.com)
Purpose: Maksuprosessointi
Location: EU/US
Protection: GDPR-yhteensopiva, PCI DSS -yhteensopiva. HUOM: Maksukortit tallennetaan Stripeen, ei omalle palvelimelle.
Vercel (https://vercel.com)
Purpose: Hosting ja analytiikka
Location: EU/US
Protection: GDPR-yhteensopiva
Emme jaa tietoja: Markkinointikumppaneille, Mainostajille, Tiedonvälittäjille, Muille kolmansille osapuolille (paitsi yllä mainituille teknisille kumppaneille).
Poikkeukset: Viranomaispyynnöt (jos laki sitä vaatii), Oikeudelliset velvoitteet (esim. rikostutkinta).
Tietojen siirto EU:n ulkopuolelle
Kolmannet osapuolet, jotka käsittelevät tietoja Yhdysvalloissa:
Clerk, OpenRouter (OpenAI, Google), ElevenLabs, Stripe (osittain), Vercel (osittain).
Suojatoimet: Standard Contractual Clauses (SCC), EU-US Data Privacy Framework (jos sovellettavissa), Data Processing Agreements (DPA) kaikkien kumppaneiden kanssa.
Käyttäjän oikeudet: Käyttäjä voi vastustaa tietojen siirtoa EU:n ulkopuolelle. Tämä voi rajoittaa palvelun käyttöä (AI-palvelut eivät toimi ilman tietojen siirtoa).
Sinun oikeutesi (GDPR)
Sinulla on seuraavat oikeudet henkilötietoihisi liittyen:
1. Tarkastusoikeus (Art. 15 GDPR)
Voit pyytää kopion kaikista tallentamistamme tiedoista. Vastaamme 30 päivän kuluessa. Ensimmäinen kopio on maksuton.
2. Oikeus tietojen oikaisemiseen (Art. 16 GDPR)
Voit korjata virheelliset tiedot milloin tahansa. Useimmat tiedot ovat muokattavissa suoraan palvelun kautta (asetukset, perheenjäsenet).
3. Oikeus tietojen poistamiseen (Art. 17 GDPR, 'oikeus tulla unohdetuksi')
Voit poistaa kaikki tietosi milloin tahansa. Poistaminen koskee: Käyttäjätili (Clerk), Perhetiedot (MongoDB), Tarinat (MongoDB), Kuvat ja ääniraidat (Supabase), Päiväkirjamerkinnät (MongoDB). Poistaminen on pysyvää ja peruuttamatonta. Maksuhistoria säilyy Stripessä kirjanpitovaatimusten vuoksi (7 vuotta).
4. Oikeus käsittelyn rajoittamiseen (Art. 18 GDPR)
Voit pyytää tietojen käsittelyn rajoittamista tietyissä tilanteissa. Esim. jos kiistät tietojen oikeellisuuden.
5. Oikeus siirrettävyyteen (Art. 20 GDPR)
Voit pyytää tietosi koneluettavassa muodossa (JSON). Tarjoamme vientitoiminnon (tulossa).
6. Oikeus vastustaa käsittelyä (Art. 21 GDPR)
Voit vastustaa tietojen käsittelyä. Tämä johtaa yleensä palvelun käytön loppumiseen (tiedot ovat välttämättömiä palvelun toiminnalle).
7. Oikeus olla joutumatta automatisoitujen päätösten kohteeksi (Art. 22 GDPR)
Palvelu käyttää AI:ta sisällön luomiseen, mutta ei automatisoiduista päätöksistä käyttäjästä. Sisällön moderointi (tarinan bännääminen) voidaan tehdä automaattisesti, mutta käyttäjä voi valittaa.
Oikeuksien käyttäminen: Sähköposti: hello@satuni.ai. Vastaamme 30 päivän kuluessa. Ensimmäiset pyynnöt ovat maksuttomia. Toistuvat tai ilmeisen perusteettomat pyynnöt voivat olla maksullisia.
Valitusoikeus: Voit tehdä valituksen valvontaviranomaiselle: Tietosuojavaltuutetun toimisto, https://tietosuoja.fi, Käyntiosoite: Lintulahdenkuja 4, 00530 Helsinki, Postiosoite: PL 800, 00531 Helsinki, Puhelinvaihde: 029 566 6700, Kirjaamo: 029 566 6768, Sähköposti: tietosuoja@om.fi
Tietoturva
Tekniset suojatoimet:
- Salaus: Kaikki tiedonsiirto salattu (HTTPS/TLS), Tietokanta salattu levossa (MongoDB encryption at rest), Supabase Storage salattu
- Pääsyhallinta: Clerk-autentikointi (OAuth 2.0), Organisaatiotason pääsyrajoitukset, Private Supabase buckets (ei julkista pääsyä), Signed URLs aikarajalla (1 tunti)
- Salasanat: Clerkin hallitsemia (bcrypt/Argon2 hashing), Salasanavaatimukset (vähintään 8 merkkiä)
- API-suojaus: Clerk middleware autentikointiin, Organisaatio-ID tarkistus jokaisessa pyynnössä, Rate limiting (tulossa)
- Tietokannat: MongoDB Atlas (hallittu palvelu), Supabase (hallittu palvelu), Automaattiset varmuuskopiot
- Lokitus ja valvonta: Virhelokit (ei sisällä arkaluontoisia tietoja), Pääsylokit (IP-osoitteet, aikalemat), Epäilyttävän toiminnan havaitseminen (Clerk)
Organisatoriset suojatoimet:
- Henkilöstö: Vain valtuutettu henkilöstö pääsee tuotantotietoihin, Salassapitosopimukset, Tietosuojakoulutus
- Tietoturvavälikohtaukset: Ilmoitamme käyttäjille 72 tunnin kuluessa, Ilmoitamme valvontaviranomaiselle (GDPR Art. 33), Dokumentoimme ja analysoimme välikohtaukset
- Kehitysprosessit: Koodin tarkistukset (code reviews), Riippuvuuksien tarkistukset (npm audit), Säännölliset tietoturvapäivitykset
Käyttäjän vastuu:
- Salasanan turvallisuus: Käyttäjä vastaa salasanansa turvallisuudesta, Käytä vahvaa salasanaa, Älä jaa salasanaasi
- Lapsilukko-PIN: PIN-koodi on vain käyttöliittymän suoja, ei tietoturvamekanismi, Älä jaa PIN-koodia lasten kanssa (jos haluat rajoittaa pääsyä)
- Laitteiden turvallisuus: Käyttäjä vastaa omista laitteistaan, Kirjaudu ulos julkisilta laitteilta
Evästeet
Välttämättömät evästeet:
- Clerk-istunto: Tarkoitus: Käyttäjän pitäminen kirjautuneena. Kesto: Sessio tai 'muista minut' (30 päivää). Tyyppi: First-party cookie
- Child Mode: Tarkoitus: Lapsilukko-tilan muistaminen. Kesto: Kunnes käyttäjä poistaa. Tyyppi: localStorage (ei eväste)
Ei-välttämättömät evästeet: Palvelu EI käytä ei-välttämättömiä evästeitä (esim. mainonta, seuranta).
Analytiikka: Vercel Analytics - Anonyymi analytiikka (ei evästeitä), Ei henkilötietoja, Ei vaadi suostumusta.
Lasten tietosuoja
Ikäraja: Palvelu on tarkoitettu 18-vuotiaille ja sitä vanhemmille. Alaikäiset voivat käyttää palvelua vanhemman/huoltajan luvalla.
Lasten tiedot: Palvelu kerää tietoja lapsista vain vanhemman/huoltajan suostumuksella. Tiedot (nimet, syntymävuodet, kuvaukset, kuvat) ovat välttämättömiä palvelun toiminnalle. Lasten tietoja ei jaeta palvelun ulkopuolelle (paitsi tekniset kumppanit, ks. yllä). Vanhempi voi poistaa lapsen tiedot milloin tahansa.
COPPA (Children's Online Privacy Protection Act): Palvelu ei ole ensisijaisesti suunnattu alle 13-vuotiaille. Vanhemmat käyttävät palvelua luodakseen sisältöä lapsilleen. Jos palvelua käytetään Yhdysvalloissa, vanhemman suostumus vaaditaan (COPPA).
EU:n suositukset: GDPR Art. 8: Alle 16-vuotiaiden osalta vanhemman suostumus vaaditaan (Suomessa 13 vuotta). Vanhemmat vastaavat lastensa tietojen käsittelystä.
Tietosuojaselosteen muutokset
Voimme päivittää tietosuojaselostetta ajoittain. Merkittävät muutokset ilmoitetaan käyttäjille sähköpostitse tai palvelun kautta. Uusin versio on aina saatavilla osoitteessa: https://app.satuni.ai/privacy.
Yhteystiedot
Tietosuojakyselyt: Sähköposti: hello@satuni.ai, Osoite: Oivaltajantie 10, 60100 Seinäjoki
Tietosuojavastaava: Veikko Laitinen, Sähköposti: veikko@satuni.ai, Puhelin: +358 40 7193838
Valvontaviranomainen: Tietosuojavaltuutetun toimisto, https://tietosuoja.fi, Käyntiosoite: Lintulahdenkuja 4, 00530 Helsinki, Postiosoite: PL 800, 00531 Helsinki, Puhelinvaihde: 029 566 6700, Kirjaamo: 029 566 6768, Sähköposti: tietosuoja@om.fi