Cloud-tilauksen elinkaari
Tarkoitus
Asiakas voi ostaa VeraFrame Cloudin itse verkosta, ottaa sen käyttöön ilman myyjän apua, hallinnoida laskutustaan ja lopettaa halutessaan — ja VeraFramen puolella jokainen näistä muuttaa automaattisesti sitä, mitä asiakas saa tehdä. Sama koneisto vastaa myös siitä, mitä tapahtuu asiakkaan datalle lopettamisen jälkeen.
Tämä on ainoa prosessi projektissa, joka tuottaa maksavan asiakkuuden ilman ihmisen työtä.
Toimijat ja laukaisin
- Kuka/mikä käynnistää: ostaja itse verkkosivun ilmoittautumislomakkeelta. Myöhemmissä vaiheissa laukaisijana on Stripe (laskutustapahtuma), asiakkaan admin (käyttäjähallinta, lopettaminen) tai operaattori (armonajan jälkeinen poisto).
- Lopputulos: maksava tenantti, jolla on oma tietovarasto, admin-käyttäjä ja paketin mukaiset oikeudet — tai peruutettu tenantti, jonka data on poistettu.
- Kuinka usein: yksi paketti myynnissä (VeraFrame Cloud, 1 490 €/kk, 3 000
ajoa/kk,
saas_onboarding.py:621).> TODO: substanssiosaajan vahvistus — onko hinta ajan tasalla julkisen hinnoittelun kanssa.
Prosessin vaiheet
| Vaihe | Mitä tapahtuu (substanssi) | Tekninen kohta | Käytettävissä oleva data |
|---|---|---|---|
| 1 | Ostaja täyttää yrityksen nimen ja sähköpostin, valitsee paketin ja hyväksyy käyttöehdot | Itsepalvelutilauksen aloitus #vaihe-1 (ei näytteessä) · handler_api.py:838 |
lomakkeen kentät |
| 2 | Järjestelmä varmistaa, että kyse on uudesta asiakkaasta — olemassa oleva tili ohjataan laskutusportaaliin | Itsepalvelutilauksen aloitus #vaihe-3 (ei näytteessä) · saas_onboarding.py:696 |
Tenanttikonfiguraatio (ei näytteessä) |
| 3 | Ostaja siirtyy Stripen maksusivulle ja maksaa. Verot, laskutusosoite ja ALV-tunnus kerätään Stripessä | Itsepalvelutilauksen aloitus #vaihe-5 (ei näytteessä) · saas_onboarding.py:736 |
Stripen Checkout-kuorma |
| 4 | Maksu onnistuu → tenantti syntyy: oma tietovarasto, konfiguraatio ja omistajan tunnistetiedot | Tenantin provisiointi (ei näytteessä) · saas_onboarding.py:1133 |
Tenantin saas-lohko (ei näytteessä) · SaaS-käyttäjätietue (ei näytteessä) |
| 5 | Ostaja asettaa salasanan aktivointilinkistä ja saa admin-tunnuksen | Tilin aktivointi (ei näytteessä) · saas_onboarding.py:458 |
SaaS-käyttäjätietue (ei näytteessä) |
| 6 | Admin kutsuu tenanttiin muita käyttäjiä ja antaa heille roolit | Tenantin käyttäjähallinta (ei näytteessä) · saas_onboarding.py:374 |
SaaS-käyttäjätietue (ei näytteessä) |
| 7 | Käyttö: kirjautuminen tarkistaa laskutustilan Stripestä ja avaa vain ne toiminnot, jotka pakettiin kuuluvat | Tuoteominaisuuksien ratkaisu (ei näytteessä) · Täsmäytys | Tuoteominaisuudet ja compliance (ei näytteessä) |
| 8 | Maksu epäonnistuu → kaikki toiminnot sulkeutuvat, myös hallintapaneeli | Stripe-tapahtuman käsittely #vaihe-4 · saas_onboarding.py:1253 |
Tenantin saas-lohko (ei näytteessä) |
| 9 | Asiakas hallinnoi maksutapaa tai peruu tilauksen Stripen laskutusportaalissa | Laskutusportaali ja tilauksen lopetus #vaihe-1 (ei näytteessä) · saas_onboarding.py:789 |
Tenantin saas-lohko (ei näytteessä) |
| 10 | Peruutus voimaan kauden lopussa → tenantti siirtyy lukutilaan: raportit ja vienti toimivat, työkalut eivät | Tilauksen tilan päivitys #vaihe-4 (ei näytteessä) · saas_onboarding.py:1244 |
Tuoteominaisuudet ja compliance (ei näytteessä) |
| 11 | 60 vrk armonaika: asiakas voi palata (tila palautuu ja poistoaikataulu peruuntuu) tai data poistetaan | Tilauksen tilan päivitys #vaihe-3 (ei näytteessä) · saas_onboarding.py:951 |
Tenantin saas-lohko, elinkaarikentät (ei näytteessä) |
| 12 | Lopullinen poisto: tilaus lopetetaan Stripessä ja tenantin data, käyttäjät ja tunnukset poistetaan | Laskutusportaali ja tilauksen lopetus #vaihe-4 (ei näytteessä) · saas_onboarding.py:1338 |
Tenanttikonfiguraatio (ei näytteessä) |
Liiketoimintasäännöt
- Vain uusi asiakas voi ostaa itse. Olemassa olevan tenantin laskutus aktivoidaan uudelleen Stripen portaalista, ei uudella ostolla. Syy on tekninen mutta seuraus liiketoiminnallinen: tenantti-identiteetti (ja siten asiakkaan data) säilyy peruutuksen yli.
- Käyttöehdot on hyväksyttävä ennen maksua. Hyväksyntä on pakollinen
kenttä. Mutta hyväksytty ehtoversio ei jää talteen — selain lähettää
accepted_terms_version-kentän, jota backend ei lue eikä tallenna (datavirta, vaihe 1→2 (ei näytteessä)).> TODO: substanssiosaajan vahvistus — onko ehtoversion todistaminen vaatimus? Jos on, tämä on korjattava. - Kolme oikeustasoa, ei kaksi. Aktiivinen (kaikki), peruutettu (lukutila: hallintapaneeli, raportit ja pohjat), maksuhäiriö (ei mitään). Maksuhäiriö on siis ankarampi kuin peruutus.
- Maksuhäiriössä asiakas ei pääse korjaamaan maksutapaansa VeraFramessa.
Laskutusportaali on hallintapaneelin takana, joka sulkeutuu
past_due-tilassa. Korjaus tapahtuu Stripen omasta sähköpostista tai tuen kautta.> TODO: substanssiosaajan vahvistus — onko tämä haluttu käytös? - Peruutus antaa 60 vrk aikaa saada data ulos. Vienti- ja raporttitoiminnot pidetään auki tarkoituksella juuri tästä syystä.
- Tenantin omistajaa ei voi poistaa. Admin ei voi poistaa omistajaa eikä itseään. Omistaja määräytyy ostohetken sähköpostista.
- Yksi sähköpostiosoite kuuluu yhteen tenanttiin. Osoitetta ei voi lisätä kahteen tenanttiin, ja käytetyllä osoitteella ei voi tehdä uutta itsepalveluostoa.
- REST API ei kuulu Cloud-pakettiin. Se on
integration-paketin ominaisuus, jota ei myydä itsepalveluna lainkaan — vain operaattori voi luoda sellaisen tenantin.
Poikkeukset ja virhetilanteet substanssin kannalta
Aktivointilinkki vanhenee kolmessa vuorokaudessa. Aika lasketaan maksusivulle siirtymisestä, ei maksun hetkestä. Jos ostaja keskeyttää ja viimeistelee maksun päiviä myöhemmin, linkki voi olla jo vanhentunut. Silloin tenantti on olemassa ja laskutus käynnissä, mutta asiakas ei pääse sisään — eikä itsepalvelupolkua ulos ole. Tuen on luotava tunnus operaattoriskriptillä.
Aktivointi voi tulla ennen tenanttia. Maksun jälkeinen paluu selaimeen ja tenantin syntyminen ovat eri tapahtumia. Jos asiakas on nopeampi kuin Stripen webhook, hän näkee viestin "Maksun jälkeinen käyttöönotto on vielä kesken. Yritä hetken kuluttua uudelleen." Se on odotettu tilanne, ei virhe.
Laskutustila voi olla hetken vanha. Kirjautuminen tarkistaa tilan Stripestä, mutta enintään 15 minuutin välein. Juuri maksettu lasku voi siis näkyä oikeuksissa viiveellä; uudelleenkirjautuminen ei nopeuta sitä.
Armonajan päättyminen ei poista mitään itsestään. Ilmoitettu poistopäivä on merkintä, jonka toteuttaa vain operaattorin ajama skripti. Jos sitä ei ajeta, peruutetun asiakkaan data säilyy määräämättömän ajan. Tämä on ero asiakaslupauksen ja toteutuksen välillä, ja se on syytä tietää ennen kuin säilytysaikaa käytetään myynti- tai tietosuoja-argumenttina (havainto (ei näytteessä)).
Poisto voi jättää sähköpostiosoitteen varatuksi. Jos poiston aikana yksittäinen askel epäonnistuu, osoitteen tenanttiviittaus voi jäädä jäljelle. Käytännön seuraus: sama asiakas ei voi palata itsepalveluostolla samalla osoitteella. Vastaus näyttää onnistuneelta, joten vika havaitaan vasta kun asiakas yrittää uudelleen.
Liittyvät
- Järjestelmäprosessit (end-to-end): ei vielä kuvattu
- Tekniset prosessit: Itsepalvelutilauksen aloitus (ei näytteessä) · Stripe-tapahtuman käsittely · Tenantin provisiointi (ei näytteessä) · Tilin aktivointi (ei näytteessä) · Tilauksen tilan päivitys (ei näytteessä) · Laskutusportaali ja tilauksen lopetus (ei näytteessä)
- Datamallit: Tenanttikonfiguraatio (ei näytteessä)
- Moduuli: Tilaukset ja laskutus